You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by re...@apache.org on 2013/02/18 13:54:33 UTC

svn commit: r1447228 - /stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java

Author: reto
Date: Mon Feb 18 12:54:32 2013
New Revision: 1447228

URL: http://svn.apache.org/r1447228
Log:
STANBOL-932: accepting MenuItems as services

Modified:
    stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java

Modified: stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java?rev=1447228&r1=1447227&r2=1447228&view=diff
==============================================================================
--- stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java (original)
+++ stanbol/trunk/commons/web/base.jersey/src/main/java/org/apache/stanbol/commons/web/base/jersey/JerseyEndpoint.java Mon Feb 18 12:54:32 2013
@@ -70,6 +70,9 @@ import org.apache.stanbol.commons.web.ba
     @Reference(name="component", referenceInterface=Object.class, 
         target="(javax.ws.rs=true)", 
 		cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, 
+        policy=ReferencePolicy.DYNAMIC),
+    @Reference(name="navigationLink", referenceInterface=NavigationLink.class, 
+		cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, 
         policy=ReferencePolicy.DYNAMIC)})
 public class JerseyEndpoint {
 
@@ -105,6 +108,7 @@ public class JerseyEndpoint {
 
     protected Set<String> exposedHeaders;
     private Set<Object> components = new HashSet<Object>();
+    private List<NavigationLink> navigationLinks = new ArrayList<NavigationLink>();
 
     public Dictionary<String,String> getInitParams() {
         Dictionary<String,String> initParams = new Hashtable<String,String>();
@@ -183,11 +187,11 @@ public class JerseyEndpoint {
         // incrementally contribute fragment resources
         List<LinkResource> linkResources = new ArrayList<LinkResource>();
         List<ScriptResource> scriptResources = new ArrayList<ScriptResource>();
-        List<NavigationLink> navigationLinks = new ArrayList<NavigationLink>();
         for (WebFragment fragment : webFragments) {
             log.debug("Registering web fragment '{}' into jaxrs application", fragment.getName());
             linkResources.addAll(fragment.getLinkResources());
             scriptResources.addAll(fragment.getScriptResources());
+            navigationLinks.removeAll(fragment.getNavigationLinks());
             navigationLinks.addAll(fragment.getNavigationLinks());
             app.contributeClasses(fragment.getJaxrsResourceClasses());
             app.contributeSingletons(fragment.getJaxrsResourceSingletons());
@@ -263,6 +267,14 @@ public class JerseyEndpoint {
         initJersey();
     }    
     
+    protected void bindNavigationLink(NavigationLink navigationLink) {
+        navigationLinks.add(navigationLink);
+    }
+    
+    protected void unbindNavigationLink(NavigationLink navigationLink) {
+        navigationLinks.remove(navigationLink);
+    }
+    
     public List<WebFragment> getWebFragments() {
         return webFragments;
     }