You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2015/08/07 13:00:28 UTC

svn commit: r1694653 - /jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java

Author: chetanm
Date: Fri Aug  7 11:00:28 2015
New Revision: 1694653

URL: http://svn.apache.org/r1694653
Log:
OAK-3194 - Provide a way for embedding application to control which all bundles are started

Modified:
    jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java

Modified: jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java?rev=1694653&r1=1694652&r2=1694653&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java (original)
+++ jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/OakOSGiRepositoryFactory.java Fri Aug  7 11:00:28 2015
@@ -74,6 +74,9 @@ import static com.google.common.base.Pre
  *
  *      <dt>org.apache.jackrabbit.repository.home</dt>
  *      <dd>Used to specify the absolute path of the repository home directory</dd>
+ *
+ *      <dt>org.apache.jackrabbit.oak.repository.bundleFilter</dt>
+ *      <dd>Used to specify the bundle filter string which is passed to ClasspathScanner</dd>
  *  </dl>
  */
 public class OakOSGiRepositoryFactory implements RepositoryFactory {
@@ -104,6 +107,9 @@ public class OakOSGiRepositoryFactory im
      */
     public static final String REPOSITORY_CONFIG_FILE = "org.apache.jackrabbit.oak.repository.configFile";
 
+    public static final String REPOSITORY_BUNDLE_FILTER
+            = "org.apache.jackrabbit.oak.repository.bundleFilter";
+
     /**
      * Default timeout for repository creation
      */
@@ -179,7 +185,7 @@ public class OakOSGiRepositoryFactory im
         PojoServiceRegistry registry = createServiceRegistry(config);
         startConfigTracker(registry, config);
         preProcessRegistry(registry);
-        startBundles(registry);
+        startBundles(registry, (String)config.get(REPOSITORY_BUNDLE_FILTER));
         postProcessRegistry(registry);
 
         return registry;
@@ -278,9 +284,9 @@ public class OakOSGiRepositoryFactory im
     }
 
 
-    private void startBundles(PojoServiceRegistry registry) {
+    private void startBundles(PojoServiceRegistry registry, String bundleFilter) {
         try {
-            List<BundleDescriptor> descriptors = new ClasspathScanner().scanForBundles();
+            List<BundleDescriptor> descriptors = new ClasspathScanner().scanForBundles(bundleFilter);
             descriptors = Lists.newArrayList(descriptors);
             descriptors = processDescriptors(descriptors);
             registry.startBundles(descriptors);