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,