You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2012/10/17 15:25:34 UTC

svn commit: r1399229 - in /stanbol/trunk/commons/web/sparql: pom.xml src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java

Author: rwesten
Date: Wed Oct 17 13:25:33 2012
New Revision: 1399229

URL: http://svn.apache.org/viewvc?rev=1399229&view=rev
Log:
STANBOL-774 changes; added an own SERVICE_RANKING_COMPARATOR to avoid dependency to commons.solr.core (STANBOL-773)

Modified:
    stanbol/trunk/commons/web/sparql/pom.xml
    stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java

Modified: stanbol/trunk/commons/web/sparql/pom.xml
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/web/sparql/pom.xml?rev=1399229&r1=1399228&r2=1399229&view=diff
==============================================================================
--- stanbol/trunk/commons/web/sparql/pom.xml (original)
+++ stanbol/trunk/commons/web/sparql/pom.xml Wed Oct 17 13:25:33 2012
@@ -56,8 +56,13 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
+            <Import-Package>
+              org.apache.stanbol.commons.web.base; provide:=true,
+              *;
+            </Import-Package>
             <Export-Package>
-              org.apache.stanbol.commons.web.sparql.*
+              org.apache.stanbol.commons.web.sparql;version=${project.version},
+              org.apache.stanbol.commons.web.sparql.*;version=${project.version}
             </Export-Package>
             <Import-Package>*</Import-Package>
           </instructions>
@@ -67,12 +72,6 @@
   </build>
 
   <dependencies>
-    <!-- To be able use ServiceReferenceRankingComparator -->
-    <dependency>
-      <groupId>org.apache.stanbol</groupId>
-      <artifactId>org.apache.stanbol.commons.solr.core</artifactId>
-      <version>0.9.0-incubating</version>
-    </dependency>
     <dependency>
       <groupId>org.apache.stanbol</groupId>
       <artifactId>org.apache.stanbol.commons.web.base</artifactId>

Modified: stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java?rev=1399229&r1=1399228&r2=1399229&view=diff
==============================================================================
--- stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java (original)
+++ stanbol/trunk/commons/web/sparql/src/main/java/org/apache/stanbol/commons/web/sparql/resource/SparqlEndpointResource.java Wed Oct 17 13:25:33 2012
@@ -23,6 +23,7 @@ import static org.apache.stanbol.commons
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.LinkedHashMap;
 import java.util.List;
 
@@ -49,7 +50,6 @@ import org.apache.clerezza.rdf.core.spar
 import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
 import org.apache.clerezza.rdf.core.sparql.query.DescribeQuery;
 import org.apache.clerezza.rdf.core.sparql.query.Query;
-import org.apache.stanbol.commons.solr.utils.ServiceReferenceRankingComparator;
 import org.apache.stanbol.commons.web.base.ContextHelper;
 import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 import org.osgi.framework.BundleContext;
@@ -81,6 +81,29 @@ import com.sun.jersey.api.view.Viewable;
 @Path("/sparql")
 public class SparqlEndpointResource extends BaseStanbolResource {
 
+    private static final Comparator<ServiceReference> SERVICE_RANKING_COMPARATOR = new Comparator<ServiceReference>() {
+        
+        public int compare(ServiceReference ref1, ServiceReference ref2) {
+            int r1,r2;
+            Object tmp = ref1.getProperty(Constants.SERVICE_RANKING);
+            r1 = tmp != null ? ((Integer)tmp).intValue() : 0;
+            tmp = (Integer)ref2.getProperty(Constants.SERVICE_RANKING);
+            r2 = tmp != null ? ((Integer)tmp).intValue() : 0;
+            if(r1 == r2){
+                tmp = (Long)ref1.getProperty(Constants.SERVICE_ID);
+                long id1 = tmp != null ? ((Long)tmp).longValue() : Long.MAX_VALUE;
+                tmp = (Long)ref2.getProperty(Constants.SERVICE_ID);
+                long id2 = tmp != null ? ((Long)tmp).longValue() : Long.MAX_VALUE;
+                //the lowest id must be first -> id1 < id2 -> [id1,id2] -> return -1
+                return id1 < id2 ? -1 : id2 == id1 ? 0 : 1; 
+            } else {
+                //the highest ranking MUST BE first -> r1 < r2 -> [r2,r1] -> return 1
+                return r1 < r2 ? 1:-1;
+            }
+        }        
+        
+    };
+    
     private ServletContext servletContext;
 
     protected TcManager tcManager;
@@ -192,7 +215,7 @@ public class SparqlEndpointResource exte
             getFilter(graphUri));
         if (refs != null) {
             if (refs.length > 1) {
-                Arrays.sort(refs, ServiceReferenceRankingComparator.INSTANCE);
+                Arrays.sort(refs, SERVICE_RANKING_COMPARATOR);
             }
             for (ServiceReference ref : refs) {
                 registeredGraphs.put(ref, (TripleCollection) bundleContext.getService(ref));