You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/01/07 10:21:45 UTC

svn commit: r896812 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java

Author: reto
Date: Thu Jan  7 09:21:07 2010
New Revision: 896812

URL: http://svn.apache.org/viewvc?rev=896812&view=rev
Log:
CLEREZZA-50: teh framework property org.apache.clerezza.web.fileserver.static.extra supported to specify an additional path for files to appear under /static

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java?rev=896812&r1=896811&r2=896812&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.web.fileserver/src/main/java/org/apache/clerezza/web/fileserver/BundleFileServer.java Thu Jan  7 09:21:07 2010
@@ -20,8 +20,10 @@
 
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
@@ -33,11 +35,14 @@
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleListener;
 import org.osgi.service.component.ComponentContext;
+import org.wymiwyg.commons.util.dirbrowser.FilePathNode;
 import org.wymiwyg.commons.util.dirbrowser.MultiPathNode;
 import org.wymiwyg.commons.util.dirbrowser.PathNode;
 
 /**
  * Serves file located under "META-INF/static-web" in bundles at the path "/static".
+ * As well as from the file path specified by the framework property
+ * <code>org.apache.clerezza.web.fileserver.static.extra</code>
  *
  * @author rbn, mir
  */
@@ -49,6 +54,8 @@
 	private volatile FileServer fileServer;
 	private Map<Bundle, PathNode> bundleNodeMap =
 			Collections.synchronizedMap(new HashMap<Bundle, PathNode>());
+	//an option path for addditional static files
+	private String extraPath;
 
 	protected void activate(ComponentContext context) throws IOException,
 			URISyntaxException {
@@ -56,8 +63,9 @@
 		for (Bundle bundle : context.getBundleContext().getBundles()) {
 			registerStaticFiles(bundle);
 		}
+		context.getBundleContext().addBundleListener(this);
+		extraPath = context.getBundleContext().getProperty("org.apache.clerezza.web.fileserver.static.extra");
 		updateFileServer();
-		context.getBundleContext().addBundleListener(this);		
 	}
 
 	@Override
@@ -91,8 +99,12 @@
 	}
 
 	private void updateFileServer() {
-		MultiPathNode multiPathNode = new MultiPathNode(bundleNodeMap.values().
-				toArray(new PathNode[bundleNodeMap.size()]));
+		final Collection<PathNode> nodes = new HashSet<PathNode>(bundleNodeMap.values());
+		if (extraPath != null) {
+			nodes.add(new FilePathNode(extraPath));
+		}
+		MultiPathNode multiPathNode = new MultiPathNode(nodes.
+				toArray(new PathNode[nodes.size()]));
 		fileServer = new FileServer(multiPathNode);
 	}
 }