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,