You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ja...@apache.org on 2013/10/28 22:25:54 UTC
svn commit: r1536534 -
/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java
Author: jawi
Date: Mon Oct 28 21:25:53 2013
New Revision: 1536534
URL: http://svn.apache.org/r1536534
Log:
Play nice in an OSGi-context:
- properly unregister the registered resources when stopping this bundle;
- introduced a proper constant value.
Modified:
ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java
Modified: ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java?rev=1536534&r1=1536533&r2=1536534&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java (original)
+++ ace/trunk/org.apache.ace.webui.vaadin/src/org/apache/ace/webui/vaadin/VaadinResourceHandler.java Mon Oct 28 21:25:53 2013
@@ -27,55 +27,57 @@ import javax.servlet.http.HttpServletRes
import org.osgi.framework.BundleContext;
import org.osgi.service.http.HttpContext;
import org.osgi.service.http.HttpService;
-import org.osgi.service.http.NamespaceException;
public class VaadinResourceHandler {
+ private static final String RESOURCE_PATH = "/VAADIN";
+
+ // Injected by Felix DM...
private volatile HttpService m_http;
- private HttpContext m_context;
- private BundleContext m_bundleContext;
+ private volatile BundleContext m_bundleContext;
+
+ public void start() throws Exception {
+ final HttpContext context = m_http.createDefaultHttpContext();
- public void start() {
- m_context = m_http.createDefaultHttpContext();
- try {
- m_http.registerResources("/VAADIN", "/VAADIN", new HttpContext() {
- public String getMimeType(String name) {
- return m_context.getMimeType(name);
+ m_http.registerResources(RESOURCE_PATH, RESOURCE_PATH, new HttpContext() {
+ public String getMimeType(String name) {
+ return context.getMimeType(name);
+ }
+
+ /**
+ * ACE uses a slightly modified version of the 'reindeer' theme. To avoid having to copy all resources in
+ * the Vaadin jar, we only override the files we changed and do replace the theme name 'ace' with 'reindeer'
+ * before we go looking for the original files.
+ *
+ * When updating to a new Vaadin version, usually you need to copy the styles.css file from the original
+ * archive again and append the ACE changes to the end, as this file tends to change considerably between
+ * versions.
+ */
+ public URL getResource(String name) {
+ URL resource = null;
+ // fix for ACE-156
+ if (!name.startsWith("/")) {
+ name = "/".concat(name);
}
- /**
- * ACE uses a slightly modified version of the 'reindeer' theme. To avoid having to copy all resources
- * in the Vaadin jar, we only override the files we changed and do replace the theme name 'ace' with
- * 'reindeer' before we go looking for the original files.
- *
- * When updating to a new Vaadin version, usually you need to copy the styles.css file from the original
- * archive again and append the ACE changes to the end, as this file tends to change considerably
- * between versions.
- */
- public URL getResource(String name) {
- URL resource = null;
- String prefix = "/VAADIN/";
- // fix for ACE-156
- if (!name.startsWith("/")) {
- name = "/" + name;
- }
- if (name.startsWith(prefix)) {
- String originalName = name.replace("/ace/", "/reindeer/");
- resource = m_bundleContext.getBundle().getEntry(originalName);
- if (resource == null) {
- // try to find the resource in the Vaadin bundle instead
- resource = com.vaadin.Application.class.getResource(originalName);
- }
+ String prefix = RESOURCE_PATH.concat("/");
+ if (name.startsWith(prefix)) {
+ String originalName = name.replace("/ace/", "/reindeer/");
+ resource = m_bundleContext.getBundle().getEntry(originalName);
+ if (resource == null) {
+ // try to find the resource in the Vaadin bundle instead
+ resource = com.vaadin.Application.class.getResource(originalName);
}
- return resource;
}
+ return resource;
+ }
- public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) throws IOException {
- return m_context.handleSecurity(request, response);
- }
- });
- }
- catch (NamespaceException e) {
- e.printStackTrace();
- }
+ public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ return context.handleSecurity(request, response);
+ }
+ });
+ }
+
+ public void stop() throws Exception {
+ m_http.unregister(RESOURCE_PATH);
}
}