Author: bdelacretaz
Date: Wed Sep 10 08:41:28 2008
New Revision: 693869

URL: http://svn.apache.org/viewvc?rev=693869&view=rev
Log:
SLING-646 - folder names regexp can be set using 
'jcrinstall.folder.name.regexp' property

Modified:
    
incubator/sling/trunk/extensions/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/RepositoryObserver.java

Modified: 
incubator/sling/trunk/extensions/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/RepositoryObserver.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/RepositoryObserver.java?rev=693869&r1=693868&r2=693869&view=diff
==============================================================================
--- 
incubator/sling/trunk/extensions/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/RepositoryObserver.java
 (original)
+++ 
incubator/sling/trunk/extensions/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/jcr/impl/RepositoryObserver.java
 Wed Sep 10 08:41:28 2008
@@ -75,6 +75,9 @@
     public static final String DEFAULT_FOLDER_NAME_REGEXP = ".*/install$";
     public static final String DEFAULT_FILENAME_REGEXP = 
"[a-zA-Z0-9].*\\.[a-zA-Z][a-zA-Z][a-zA-Z]?";
     
+    /** ComponentContext property that overrides the folder name regepx */
+    public static final String FOLDER_NAME_REGEXP_PROPERTY = 
"sling.jcrinstall.folder.name.regexp";
+    
     /** Scan delay for watched folders */
     protected long scanDelayMsec = 1000L;
     
@@ -85,11 +88,25 @@
      */
     protected void activate(ComponentContext context) throws 
RepositoryException {
        
-       // TODO make this configurable
+       // TODO make this more configurable?
        final String [] roots = DEFAULT_ROOTS; 
-       folderNameFilter = new RegexpFilter(DEFAULT_FOLDER_NAME_REGEXP);
        filenameFilter = new RegexpFilter(DEFAULT_FILENAME_REGEXP);
        
+       String regexp = 
(String)context.getProperties().get(FOLDER_NAME_REGEXP_PROPERTY);
+       if(regexp != null) {
+           log.info("Using folder name regexp '{}' from ComponentContext {} 
property", regexp, FOLDER_NAME_REGEXP_PROPERTY);
+           folderNameFilter = new RegexpFilter(regexp);
+       } else {
+           regexp = 
context.getBundleContext().getProperty(FOLDER_NAME_REGEXP_PROPERTY);
+           if(regexp != null) {
+                log.info("Using folder name regexp '{}' from BundleContext {} 
property", regexp, FOLDER_NAME_REGEXP_PROPERTY);
+                folderNameFilter = new RegexpFilter(regexp);
+           } else {
+                log.info("Using default folder name regexp '{}'", 
DEFAULT_FOLDER_NAME_REGEXP);
+               folderNameFilter = new RegexpFilter(DEFAULT_FOLDER_NAME_REGEXP);
+           }
+       }
+        
         // Listen for any new WatchedFolders created after activation
         session = 
repository.loginAdministrative(repository.getDefaultWorkspace());
         final int eventTypes = Event.NODE_ADDED;


Reply via email to