Author: rwesten
Date: Thu Apr  7 12:25:48 2011
New Revision: 1089854

URL: http://svn.apache.org/viewvc?rev=1089854&view=rev
Log:
- Changed the default for the DataFileFolder form "datafiles" to 
"sling/datafilde"
- The DataFileFolder is now created if it not already exists
- If the DataFileFolder can not be created a ConfigurationException is thrown
- If the DataFileFolder exists, but is not a Directory a ConfigurationException 
is thrown
- Exceptions of other DataFileProviders do no longer break the processing of 
the MainDataFileProvider

Modified:
    
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java

Modified: 
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java?rev=1089854&r1=1089853&r2=1089854&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
 (original)
+++ 
incubator/stanbol/trunk/commons/stanboltools/datafileprovider/src/main/java/org/apache/stanbol/commons/stanboltools/datafileprovider/impl/MainDataFileProvider.java
 Thu Apr  7 12:25:48 2011
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
 @Property(name=Constants.SERVICE_RANKING, intValue=Integer.MAX_VALUE)
 public class MainDataFileProvider implements DataFileProvider, 
DataFileProviderLog {
 
-    @Property(value="datafiles")
+    @Property(value="sling/datafiles")
     public static final String DATA_FILES_FOLDER_PROP = "data.files.folder";
 
     @Property(intValue=100)
@@ -79,6 +79,13 @@ public class MainDataFileProvider implem
     @Activate
     protected void activate(ComponentContext ctx) throws 
ConfigurationException {
         dataFilesFolder = new File(requireProperty(ctx.getProperties(), 
DATA_FILES_FOLDER_PROP, String.class));
+        if(!dataFilesFolder.exists()){
+            if(!dataFilesFolder.mkdirs()){
+                throw new ConfigurationException(DATA_FILES_FOLDER_PROP, 
"Unable to create the configured Directory "+dataFilesFolder);
+            }
+        } else if(!dataFilesFolder.isDirectory()){
+            throw new ConfigurationException(DATA_FILES_FOLDER_PROP, "The 
configured DataFile directory "+dataFilesFolder+" does already exists but is 
not a directory!");
+        } //else exists and is a directory!
         maxEvents = requireProperty(ctx.getProperties(), MAX_EVENTS_PROP, 
Integer.class).intValue();
         
         providersTracker = new ServiceTracker(ctx.getBundleContext(), 
DataFileProvider.class.getName(), null);
@@ -168,7 +175,14 @@ public class MainDataFileProvider implem
                     continue;
                 }
                 final DataFileProvider dfp = (DataFileProvider)o;
-                result = dfp.getInputStream(bundleSymbolicName, filename, 
comments);
+                try {
+                    result = dfp.getInputStream(bundleSymbolicName, filename, 
comments);
+                } catch (Exception e) {
+                    //Exceptions thrown by an implementation should never
+                    //affect the MainDataFileProvider
+                    log.debug(String.format("Eception while searching DataFile 
%s by using provider %s (ignore)",
+                        filename,dfp),e);
+                }
                 if(result == null) {
                     log.debug("{} does not provide file {}", dfp, filename);
                 } else {


Reply via email to