From: <jbo...@li...> - 2006-05-03 09:02:23
|
Author: adamw Date: 2006-05-03 05:01:59 -0400 (Wed, 03 May 2006) New Revision: 4065 Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgePropertiesWatcher.java labs/jbosslabs/trunk/portal-extensions/forge-file-access/forge-file-access.iml Removed: labs/jbosslabs/trunk/portal-extensions/forge-common/src/etc/mime.types labs/jbosslabs/trunk/portal-extensions/forge-common/src/etc/org/ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeProperties.java Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java labs/jbosslabs/trunk/portal-extensions/forge-file-access/src/java/org/jboss/forge/fileaccess/FileAccessFilter.java Log: http://jira.jboss.com/jira/browse/JBLAB-668 + contributors fix Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/etc/mime.types =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/etc/mime.types 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/etc/mime.types 2006-05-03 09:01:59 UTC (rev 4065) @@ -1,22 +0,0 @@ -application/postscript ai eps ps -application/rtf rtf -application/slate -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -audio/basic au snd -audio/x-aiff aif aiff aifc -audio/x-wav wav -image/gif gif -image/ief ief -image/png png -image/jpeg jpeg jpg jpe -image/tiff tiff tif -image/x-xwindowdump xwd -text/html html -text/plain txt -video/mpeg mpeg mpg mpe -video/quicktime qt mov -video/x-msvideo avi -video/x-sgi-movie movie -text/css css Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeHelper.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -50,6 +50,7 @@ import org.jboss.mx.util.MBeanServerLocator; import org.jboss.portlet.JBossRenderRequest; import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.aop.CacheItem; import org.w3c.dom.Node; /** @@ -108,12 +109,6 @@ */ public final static String LABS_PORTAL = "default"; - private final static String MIME_TYPE_FILENAME = "mime.types"; - - private static ForgeProperties props; - - private static MimetypesFileTypeMap mimeTypes; - private static Vector<String> tempFiles; public static final String FILES_PREFIX = "labsTempFile"; @@ -123,12 +118,7 @@ private static VolatileTempFileRemover vtfRemover; static { - // Reading forge properties. - props = new ForgeProperties(); forgeManagement = null; - - mimeTypes = new MimetypesFileTypeMap(ForgeHelper.class - .getResourceAsStream("/" + MIME_TYPE_FILENAME)); tempFiles = new Vector<String>(); @@ -163,7 +153,14 @@ } } - /** + @CacheItem + private static ForgePropertiesWatcher forgeProperties; + + public static Properties getProperties() { + return forgeProperties.get(""); + } + + /** * In <code>str</code>, replaces each occurence of <code>pattern</code> * with <code>replace</code>. * @@ -308,7 +305,7 @@ String message, String from) throws MessagingException { // Set the host smtp address Properties props = new Properties(); - props.put("mail.smtp.host", ForgeHelper.props.getSmtpServer()); + props.put("mail.smtp.host", getProperties().getProperty("smtpserver")); // Create some properties and get the default Session Session session = Session.getDefaultInstance(props, null); @@ -331,16 +328,7 @@ Transport.send(msg); } - /** - * Gets an instance of read ForgeProperties. - * - * @return An instance of read ForgeProperties. - */ - public static ForgeProperties getForgeProperties() { - return props; - } - - /** + /** * Creates a link to a global freezone page basing on the given parameters. * * @param portalName @@ -486,16 +474,8 @@ return makeAddress(request.getScheme(), request.getServerName(), request.getServerPort()); } - - public static String getContentType(File file) { - return mimeTypes.getContentType(file); - } - - public static String getContentType(String fileName) { - return mimeTypes.getContentType(fileName); - } - - /**Add temporary file. This returns you TempFileDescriptor with opened InputStream to the file and link to access it. + + /**Add temporary file. This returns you TempFileDescriptor with opened InputStream to the file and link to access it. * Remember to close the input after use ! * @param fileSuffix suffix of the temporary file (to get apropriate content_type) and allow deletion for not volatile files. * @param volatileFile If true file will be deleted, if false you have to delete it on your own, by using deleteTempFile with apropriate suffix. Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeProperties.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeProperties.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgeProperties.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -1,69 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ -package org.jboss.forge.common; - -import java.io.IOException; -import java.util.Properties; - -public class ForgeProperties { - /** - * <code>blogPath</code> - path to the local blog content - */ - private String blogPath; - /** - * <code>smtpServer</code> - a smtp server for sending mails - */ - private String smtpServer; - /** - * <code>contribAdmin</code> - e-mail of "contributor's applications" - * administrator. - */ - private String contribAdmin; - - public ForgeProperties() { - /* Reading the properties */ - Properties properties = new Properties(); - - try { - properties.load(ForgeHelper.class - .getResourceAsStream("forge.properties")); - } catch (IOException e) { - throw new RuntimeException("Error loading properties"); - } - - blogPath = properties.getProperty("blogpath"); - smtpServer = properties.getProperty("smtpserver"); - contribAdmin = properties.getProperty("contribadmin"); - } - - String getBlogPath() { - return blogPath; - } - - public String getContribAdmin() { - return contribAdmin; - } - - String getSmtpServer() { - return smtpServer; - } -} Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgePropertiesWatcher.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgePropertiesWatcher.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ForgePropertiesWatcher.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -0,0 +1,42 @@ +package org.jboss.forge.common; + +import org.jboss.shotoku.cache.ShotokuResourceWatcher; +import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; +import org.jboss.logging.Logger; + +import java.util.Properties; +import java.util.Map; +import java.io.IOException; + +/** + * @author Adam Warski (ad...@as...) + */ +public class ForgePropertiesWatcher extends ShotokuResourceWatcher<String, Properties> { + private static final Logger log = Logger.getLogger(ForgePropertiesWatcher.class); + + private Properties getProperties(String key) { + Properties ret = new Properties(); + + try { + ret.load(getContentManager(key).getNode( + "/configuration/forge.properties").getContentInputStream()); + } catch (Exception e) { + log.error("Error while loading forge.properties.", e); + } + + return ret; + } + + public Properties init(String key) { + return getProperties(key); + } + + protected void update(String key, Properties currentObject, Map changes) { + put(key, getProperties(key)); + } + + protected ContentManager initContentManager(String key) { + return ContentManager.getContentManager(); + } +} Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -42,6 +42,7 @@ import org.jboss.shotoku.aop.CacheItem; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; import org.jboss.shotoku.exceptions.SaveException; +import org.jboss.portlet.PortalNodeURL; import org.xml.sax.InputSource; /** @@ -148,17 +149,17 @@ messages.getString("acceptedMailSubject"), getFormattedMessage("acceptedMailText", new Object[] { dataBean.getName() }), - "for...@la..."); + "lab...@la..."); // Posting a notification to the con-admin ForgeHelper.postMail( - ForgeHelper.getForgeProperties().getContribAdmin(), + ForgeHelper.getProperties().getProperty("contribadmin"), messages.getString("acceptedMailSubject"), getFormattedMessage("acceptedMailTextAdmin", new Object[] { dataBean.getName(), dataBean.getEmail(), dataBean.getType(), dataBean.getLogin() }), - "for...@la..."); + "lab...@la..."); return true; } catch (Exception e) { @@ -276,13 +277,13 @@ confirmed.save("Confirming new application"); unconfirmed.save("Confirming new application"); - PortletURL url = ConTools.createRenderURL(); + PortalNodeURL url = ConTools.createRenderURL(); String adminURL = ConTools.getBaseServerAddress() + url.toString(); // Sending an email to the admin. ForgeHelper.postMail( - ForgeHelper.getForgeProperties().getContribAdmin(), + ForgeHelper.getProperties().getProperty("contribadmin"), messages.getString("adminMailSubject"), getFormattedMessage("adminMailText", new Object[] { newXml, adminURL }), @@ -345,7 +346,7 @@ // Values ok, adding application. // Sending the confirmation e-mail. - PortletURL url = ConTools.createRenderURL(); + PortalNodeURL url = ConTools.createRenderURL(); url.setParameter("confirm", confirmationCode); String confirmationURL = ConTools.getBaseServerAddress() + url.toString(); Modified: labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConTools.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -30,10 +30,7 @@ import org.jboss.forge.common.Constants; import org.jboss.forge.common.ForgeHelper; -import org.jboss.portlet.JBossActionRequest; -import org.jboss.portlet.JBossActionResponse; -import org.jboss.portlet.JBossRenderRequest; -import org.jboss.portlet.JBossRenderResponse; +import org.jboss.portlet.*; /** * @author adamw @@ -41,60 +38,68 @@ * faces and external contexts. */ public class ConTools { - static ExternalContext getExternalContext() { - return FacesContext.getCurrentInstance().getExternalContext(); - } - - static String getRequestProperty(String propertyName) { - Object request = getExternalContext().getRequest(); - if (request instanceof JBossActionRequest) { - return (String) - ((JBossActionRequest) request).getPortalContext(). - getProperty(propertyName); - } else if (request instanceof JBossRenderRequest) { - return (String) - ((JBossRenderRequest) request).getPortalContext(). - getProperty(propertyName); - } else return null; - } - - static PortletURL createRenderURL() { - Object response = getExternalContext().getResponse(); - if (response instanceof JBossActionResponse) { - //TODO - //New "feature" of portal 2.2 ... - //return ((JBossActionResponse) response).createRenderURL(); - return null; - } else if (response instanceof JBossRenderResponse) { - return ((JBossRenderResponse) response).createRenderURL(); - } else return null; - } - - static String getBaseServerAddress() { - Object request = getExternalContext().getRequest(); - if (request instanceof JBossActionRequest) { - return ForgeHelper.getBaseServerAddress((JBossActionRequest) request); - } else if (request instanceof JBossRenderRequest) { - return ForgeHelper.getBaseServerAddress((JBossRenderRequest) request); - } else return ""; - } - - static String getPortalName() { - return getRequestProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY); - } - - static boolean hasPermission(String permission) { - Object request = getExternalContext().getRequest(); - if (request instanceof JBossActionRequest) { - return - ((JBossActionRequest) request).hasPermission(permission); - } else if (request instanceof JBossRenderRequest) { - return - ((JBossRenderRequest) request).hasPermission(permission); - } else return false; - } - - static String getRemoteUser() { - return getExternalContext().getRemoteUser(); - } + static ExternalContext getExternalContext() { + return FacesContext.getCurrentInstance().getExternalContext(); + } + + static String getRequestProperty(String propertyName) { + Object request = getExternalContext().getRequest(); + if (request instanceof JBossActionRequest) { + return (String) + ((JBossActionRequest) request).getPortalContext(). + getProperty(propertyName); + } else if (request instanceof JBossRenderRequest) { + return (String) + ((JBossRenderRequest) request).getPortalContext(). + getProperty(propertyName); + } else return null; + } + + static PortalNodeURL createRenderURL() { + Object response = getExternalContext().getResponse(); + if (response instanceof JBossActionResponse) { + System.out.println("ACTION RESPONSE " + + ((JBossActionResponse) response).createRenderURL( + ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode())); + //TODO + //New "feature" of portal 2.2 ... + return ((JBossActionResponse) response).createRenderURL( + ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode()); + //return null; + } else if (response instanceof JBossRenderResponse) { + return ((JBossRenderResponse) response).createRenderURL( + ((JBossActionRequest) getExternalContext().getRequest()).getPortalNode()); + } else { + System.out.println("UNKNOWN RESPONSE"); + return null; + } + } + + static String getBaseServerAddress() { + Object request = getExternalContext().getRequest(); + if (request instanceof JBossActionRequest) { + return ForgeHelper.getBaseServerAddress((JBossActionRequest) request); + } else if (request instanceof JBossRenderRequest) { + return ForgeHelper.getBaseServerAddress((JBossRenderRequest) request); + } else return ""; + } + + static String getPortalName() { + return getRequestProperty(Constants.PROP_SHOTOKU_PORTAL_DIRECTORY); + } + + static boolean hasPermission(String permission) { + Object request = getExternalContext().getRequest(); + if (request instanceof JBossActionRequest) { + return + ((JBossActionRequest) request).hasPermission(permission); + } else if (request instanceof JBossRenderRequest) { + return + ((JBossRenderRequest) request).hasPermission(permission); + } else return false; + } + + static String getRemoteUser() { + return getExternalContext().getRemoteUser(); + } } Added: labs/jbosslabs/trunk/portal-extensions/forge-file-access/forge-file-access.iml =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-file-access/forge-file-access.iml 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-file-access/forge-file-access.iml 2006-05-03 09:01:59 UTC (rev 4065) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module version="4" relativePaths="true" type="JAVA_MODULE"> + <component name="ModuleRootManager" /> + <component name="NewModuleRootManager"> + <output url="file://$MODULE_DIR$/target" /> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="jboss" level="application" /> + <orderEntry type="module" module-name="forge-common" /> + <orderEntry type="module" module-name="shotoku-base" /> + <orderEntry type="module" module-name="shotoku-aop" /> + <orderEntryProperties /> + </component> +</module> + Modified: labs/jbosslabs/trunk/portal-extensions/forge-file-access/src/java/org/jboss/forge/fileaccess/FileAccessFilter.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-file-access/src/java/org/jboss/forge/fileaccess/FileAccessFilter.java 2006-05-03 08:35:20 UTC (rev 4064) +++ labs/jbosslabs/trunk/portal-extensions/forge-file-access/src/java/org/jboss/forge/fileaccess/FileAccessFilter.java 2006-05-03 09:01:59 UTC (rev 4065) @@ -36,6 +36,7 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Node; +import org.jboss.shotoku.tools.Tools; import org.jboss.shotoku.aop.Inject; import org.jboss.forge.common.ForgeHelper; @@ -171,9 +172,9 @@ } - InputStream is = null; - String mimeType = null; - int contentLength = 0; + InputStream is; + String mimeType; + int contentLength; // check if this request is for temp file if (requestedRes.startsWith(ForgeHelper.TMP_FILES_ACCESS)) { @@ -185,7 +186,7 @@ is = new FileInputStream(file); - mimeType = ForgeHelper.getContentType(file); + mimeType = Tools.getNameBasedMimeType(file); contentLength = (int)file.length(); @@ -229,9 +230,8 @@ /** * Method used to resolve portal name to which the download link aims. - * + * * @param link - * @return */ private static String resolvePortalName(String link) { return link.split(File.separator)[0]; |