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