You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by ju...@apache.org on 2011/03/16 14:01:53 UTC

svn commit: r1082141 - /chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java

Author: jukka
Date: Wed Mar 16 13:01:53 2011
New Revision: 1082141

URL: http://svn.apache.org/viewvc?rev=1082141&view=rev
Log:
CMIS-329: Implement support for versioning in opencmis-server-jcr module

Use the javax.imageio.spi.ServiceRegistry class instead of java.util.ServiceLoader to avoid a Java 6 dependency.

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java?rev=1082141&r1=1082140&r2=1082141&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrServiceFactory.java Wed Mar 16 13:01:53 2011
@@ -34,10 +34,11 @@ import javax.jcr.RepositoryFactory;
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.ServiceLoader;
+import javax.imageio.spi.ServiceRegistry;
 
 /**
  * A {@link CmisServiceFactory} implementation which returns {@link JcrService} instances.  
@@ -85,9 +86,10 @@ public class JcrServiceFactory extends A
 
     /**
      * Acquire the JCR repository given a configuration. This implementation used
-     * {@link java.util.ServiceLoader#load(Class)}  for locating <code>RepositoryFactory</code>
-     * instances. The first instance which can handle the <code>jcrConfig</code> parameters
-     * is used to acquire the repository. 
+     * {@link javax.imageio.spi.ServiceRegistry#lookupProviders(Class)} for
+     * locating <code>RepositoryFactory</code> instances. The first instance
+     * which can handle the <code>jcrConfig</code> parameters is used to
+     * acquire the repository. 
      *
      * @param jcrConfig  configuration determining the JCR repository to be returned
      * @return
@@ -95,7 +97,10 @@ public class JcrServiceFactory extends A
      */
     protected Repository acquireJcrRepository(Map<String, String> jcrConfig) {
         try {
-            for (RepositoryFactory factory : ServiceLoader.load(RepositoryFactory.class)) {
+            Iterator factories =
+                ServiceRegistry.lookupProviders(RepositoryFactory.class);
+            while (factories.hasNext()) {
+                RepositoryFactory factory = (RepositoryFactory) factories.next();
                 log.debug("Trying to acquire JCR repository from factory " + factory);
                 Repository repository = factory.getRepository(jcrConfig);
                 if (repository != null) {