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);
}
}