You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by bd...@apache.org on 2011/04/07 10:38:46 UTC

svn commit: r1089776 - in /incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src: main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/

Author: bdelacretaz
Date: Thu Apr  7 08:38:46 2011
New Revision: 1089776

URL: http://svn.apache.org/viewvc?rev=1089776&view=rev
Log:
STANBOL-146 - ClasspathDataFileProvider should not interfere with other providers

Modified:
    incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ClasspathDataFileProvider.java
    incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/NamedEntityExtractionEnhancementEngine.java
    incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/TestNamedEntityExtractionEnhancementEngine.java

Modified: incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ClasspathDataFileProvider.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ClasspathDataFileProvider.java?rev=1089776&r1=1089775&r2=1089776&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ClasspathDataFileProvider.java (original)
+++ incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/ClasspathDataFileProvider.java Thu Apr  7 08:38:46 2011
@@ -21,20 +21,39 @@ import java.io.InputStream;
 import java.util.Map;
 
 import org.apache.stanbol.commons.stanboltools.datafileprovider.DataFileProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /** DataFileProvider that looks in our class resources */
 public class ClasspathDataFileProvider implements DataFileProvider {
 
+    private final Logger log = LoggerFactory.getLogger(getClass());
+    public static final String RESOURCE_BASE_PATH = "org/apache/stanbol/defaultdata/opennlp/";
+    
+    private final String symbolicName;
+    
+    ClasspathDataFileProvider(String bundleSymbolicName) {
+        symbolicName = bundleSymbolicName;
+    }
+    
     @Override
     public InputStream getInputStream(String bundleSymbolicName,
             String filename, Map<String, String> comments) 
     throws IOException {
+        
+        if(!symbolicName.equals(bundleSymbolicName)) {
+            log.debug("Requested bundleSymbolicName {} does not match mine ({}), request ignored",
+                    bundleSymbolicName, symbolicName);
+            return null;
+        }
+        
         // load default OpenNLP models from classpath (embedded in the defaultdata bundle)
-        final String resourcePath = "org/apache/stanbol/defaultdata/opennlp/" + filename;
+        final String resourcePath = RESOURCE_BASE_PATH + filename;
         final InputStream in = getClass().getClassLoader().getResourceAsStream(resourcePath);
-        if (in == null) {
-            throw new IOException("Resource not found in my classpath: " + resourcePath);
-        }
+        log.debug("Resource {} found: {}", (in == null ? "NOT" : ""), resourcePath);
+        
+        // Returning null is fine - if we don't have the data file, another
+        // provider might supply it
         return in;
     }
 }

Modified: incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/NamedEntityExtractionEnhancementEngine.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/NamedEntityExtractionEnhancementEngine.java?rev=1089776&r1=1089775&r2=1089776&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/NamedEntityExtractionEnhancementEngine.java (original)
+++ incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/main/java/org/apache/stanbol/enhancer/engines/opennlp/impl/NamedEntityExtractionEnhancementEngine.java Thu Apr  7 08:38:46 2011
@@ -56,7 +56,7 @@ public class NamedEntityExtractionEnhanc
         // Need our DataFileProvider before building the models
         dfpServiceRegistration = ctx.getBundleContext().registerService(
                 DataFileProvider.class.getName(), 
-                new ClasspathDataFileProvider(), null);
+                new ClasspathDataFileProvider(ctx.getBundleContext().getBundle().getSymbolicName()), null);
         
         engineCore = new EngineCore(dataFileProvider, ctx.getBundleContext().getBundle().getSymbolicName());
     }

Modified: incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/TestNamedEntityExtractionEnhancementEngine.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/TestNamedEntityExtractionEnhancementEngine.java?rev=1089776&r1=1089775&r2=1089776&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/TestNamedEntityExtractionEnhancementEngine.java (original)
+++ incubator/stanbol/trunk/enhancer/engines/opennlp-ner/src/test/java/org/apache/stanbol/enhancer/engines/opennlp/impl/TestNamedEntityExtractionEnhancementEngine.java Thu Apr  7 08:38:46 2011
@@ -58,10 +58,12 @@ public class TestNamedEntityExtractionEn
             + "A new paragraph is being written. This paragraph has two sentences.";
 
     static EngineCore nerEngine;
+    
+    public static final String FAKE_BUNDLE_SYMBOLIC_NAME = "FAKE_BUNDLE_SYMBOLIC_NAME";
 
     @BeforeClass
     public static void setUpServices() throws IOException {
-        nerEngine = new EngineCore(new ClasspathDataFileProvider(), "TEST_BUNDLE_SYMBOLIC_NAME");
+        nerEngine = new EngineCore(new ClasspathDataFileProvider(FAKE_BUNDLE_SYMBOLIC_NAME), FAKE_BUNDLE_SYMBOLIC_NAME);
     }
 
     public static ContentItem wrapAsContentItem(final String id,