Author: tommaso
Date: Wed Oct 24 15:38:57 2012
New Revision: 1401735
URL: http://svn.apache.org/viewvc?rev=1401735&view=rev
Log:
[CLEREZZA-651] - UIMAResourcesClassLoaderRepository promoted to OSGi Service
Modified:
incubator/clerezza/trunk/uima/uima.casconsumer/src/main/java/org/apache/clerezza/uima/casconsumer/ClerezzaCASConsumerActivator.java
incubator/clerezza/trunk/uima/uima.metadata-generator/src/main/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGenerator.java
incubator/clerezza/trunk/uima/uima.metadata-generator/src/test/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGeneratorTest.java
incubator/clerezza/trunk/uima/uima.samples/src/main/java/org/apache/clerezza/uima/samples/UIMASamplesBundleActivator.java
incubator/clerezza/trunk/uima/uima.samples/src/test/java/org/apache/clerezza/uima/samples/services/OpenNLPNERAOServiceTest.java
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMABundleActivator.java
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAUtilsBundleActivator.java
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/ClerezzaUIMAExtensionClassLoader.java
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/UIMAResourcesClassLoaderRepository.java
Modified:
incubator/clerezza/trunk/uima/uima.casconsumer/src/main/java/org/apache/clerezza/uima/casconsumer/ClerezzaCASConsumerActivator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.casconsumer/src/main/java/org/apache/clerezza/uima/casconsumer/ClerezzaCASConsumerActivator.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.casconsumer/src/main/java/org/apache/clerezza/uima/casconsumer/ClerezzaCASConsumerActivator.java
(original)
+++
incubator/clerezza/trunk/uima/uima.casconsumer/src/main/java/org/apache/clerezza/uima/casconsumer/ClerezzaCASConsumerActivator.java
Wed Oct 24 15:38:57 2012
@@ -27,6 +27,6 @@ import org.apache.clerezza.uima.utils.cl
public class ClerezzaCASConsumerActivator extends UIMABundleActivator {
@Override
protected void classRegistered() {
-
UIMAResourcesClassLoaderRepository.registerComponent(ClerezzaCASConsumer.class);
+ classLoaderRepository.registerComponent(ClerezzaCASConsumer.class);
}
}
Modified:
incubator/clerezza/trunk/uima/uima.metadata-generator/src/main/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.metadata-generator/src/main/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGenerator.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.metadata-generator/src/main/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGenerator.java
(original)
+++
incubator/clerezza/trunk/uima/uima.metadata-generator/src/main/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGenerator.java
Wed Oct 24 15:38:57 2012
@@ -18,6 +18,12 @@
*/
package org.apache.clerezza.uima.metadatagenerator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import javax.ws.rs.core.MediaType;
+
import org.apache.clerezza.rdf.metadata.MetaDataGenerator;
import org.apache.clerezza.rdf.ontologies.DC;
import org.apache.clerezza.rdf.ontologies.DCTERMS;
@@ -30,26 +36,17 @@ import org.apache.clerezza.uima.utils.UI
import org.apache.clerezza.uima.utils.UIMAUtils;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
-import org.apache.felix.scr.annotations.Services;
import org.apache.uima.UIMAException;
import org.apache.uima.cas.FeatureStructure;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.ws.rs.core.MediaType;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
/**
* An implementation of {@link MetaDataGenerator} generates meta data about
specified data
* depending on its media type using Apache UIMA.
*/
@Component(metatype = true)
-@Services({
- @Service(MetaDataGenerator.class),
- @Service(UIMABaseMetadataGenerator.class)
-})
+@Service(MetaDataGenerator.class)
public class UIMABaseMetadataGenerator implements MetaDataGenerator {
private final static Logger log =
LoggerFactory.getLogger(UIMABaseMetadataGenerator.class);
@@ -60,7 +57,7 @@ public class UIMABaseMetadataGenerator i
public UIMABaseMetadataGenerator() {
this.facade = new ExternalServicesFacade();
- this.textExtractors = new TreeSet<MediaTypeTextExtractor>();
+ this.textExtractors = new HashSet<MediaTypeTextExtractor>();
}
public UIMABaseMetadataGenerator(ExternalServicesFacade facade) {
Modified:
incubator/clerezza/trunk/uima/uima.metadata-generator/src/test/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGeneratorTest.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.metadata-generator/src/test/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGeneratorTest.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.metadata-generator/src/test/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGeneratorTest.java
(original)
+++
incubator/clerezza/trunk/uima/uima.metadata-generator/src/test/java/org/apache/clerezza/uima/metadatagenerator/UIMABaseMetadataGeneratorTest.java
Wed Oct 24 15:38:57 2012
@@ -55,7 +55,7 @@ public class UIMABaseMetadataGeneratorTe
@Test
@Ignore
- public void testGenerateMethodWithsupportedMediaType() throws Exception {
+ public void testGenerateMethodWithSupportedMediaType() throws Exception {
ExternalServicesFacade externalServicesFacade = new
ExternalServicesFacade();
Map<String, Object> parameterSettings = new HashMap<String, Object>();
parameterSettings.put("apikey", YOUR_ALCHEMYAPI_KEY_HERE);
Modified:
incubator/clerezza/trunk/uima/uima.samples/src/main/java/org/apache/clerezza/uima/samples/UIMASamplesBundleActivator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.samples/src/main/java/org/apache/clerezza/uima/samples/UIMASamplesBundleActivator.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.samples/src/main/java/org/apache/clerezza/uima/samples/UIMASamplesBundleActivator.java
(original)
+++
incubator/clerezza/trunk/uima/uima.samples/src/main/java/org/apache/clerezza/uima/samples/UIMASamplesBundleActivator.java
Wed Oct 24 15:38:57 2012
@@ -30,8 +30,8 @@ import org.apache.clerezza.uima.utils.cl
public class UIMASamplesBundleActivator extends UIMABundleActivator {
@Override
protected void classRegistered() {
- UIMAResourcesClassLoaderRepository.registerComponent(Tokenizer.class);
-
UIMAResourcesClassLoaderRepository.registerComponent(SentenceDetector.class);
- UIMAResourcesClassLoaderRepository.registerComponent(NameFinder.class);
+ classLoaderRepository.registerComponent(Tokenizer.class);
+ classLoaderRepository.registerComponent(SentenceDetector.class);
+ classLoaderRepository.registerComponent(NameFinder.class);
}
}
Modified:
incubator/clerezza/trunk/uima/uima.samples/src/test/java/org/apache/clerezza/uima/samples/services/OpenNLPNERAOServiceTest.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.samples/src/test/java/org/apache/clerezza/uima/samples/services/OpenNLPNERAOServiceTest.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.samples/src/test/java/org/apache/clerezza/uima/samples/services/OpenNLPNERAOServiceTest.java
(original)
+++
incubator/clerezza/trunk/uima/uima.samples/src/test/java/org/apache/clerezza/uima/samples/services/OpenNLPNERAOServiceTest.java
Wed Oct 24 15:38:57 2012
@@ -21,6 +21,7 @@ package org.apache.clerezza.uima.samples
import org.apache.clerezza.rdf.core.Graph;
import org.junit.Test;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
/**
@@ -33,5 +34,6 @@ public class OpenNLPNERAOServiceTest {
OpenNLPNERAOService service = new OpenNLPNERAOService();
Graph graph =
service.extractPersons(getClass().getResource("/ner_test_page.html").toURI().toString());
assertNotNull(graph);
+ assertFalse(graph.isEmpty());
}
}
Modified:
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
(original)
+++
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
Wed Oct 24 15:38:57 2012
@@ -20,6 +20,8 @@ package org.apache.clerezza.uima.utils;
import org.apache.clerezza.uima.utils.cl.ClerezzaUIMAExtensionClassLoader;
import org.apache.clerezza.uima.utils.cl.UIMAResourcesClassLoaderRepository;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineDescription;
@@ -40,12 +42,16 @@ import java.util.Map;
* provide the {@link AnalysisEngine} using the default descriptor or using a
custom descriptor (absolute)
* path
*/
+@Component
public class AEProvider {
private final static Logger log = LoggerFactory.getLogger(AEProvider.class);
private static String defaultXMLPath;
private static Map<XMLInputSource, AnalysisEngine> registeredAEs;
+ @Reference
+ private UIMAResourcesClassLoaderRepository classLoaderRepository;
+
public AEProvider() {
defaultXMLPath = "/META-INF/ExtServicesAE.xml"; // if no default is
specified use the bundled ext services descriptor
registeredAEs = new HashMap<XMLInputSource, AnalysisEngine>();
@@ -95,7 +101,7 @@ public class AEProvider {
// try classpath
URL url = getClass().getResource(filePath);
if (url == null) {
- for (ClassLoader c : UIMAResourcesClassLoaderRepository.getComponents())
{
+ for (ClassLoader c : classLoaderRepository.getComponents()) {
url = c.getResource(filePath);
if (url != null)
break;
@@ -137,7 +143,7 @@ public class AEProvider {
if (ae == null) {
try {
ResourceManager rm = UIMAFramework.newDefaultResourceManager();
- rm.setExtensionClassPath(new
ClerezzaUIMAExtensionClassLoader(getClass().getClassLoader()), "*", true);
+ rm.setExtensionClassPath(new
ClerezzaUIMAExtensionClassLoader(getClass().getClassLoader(),
classLoaderRepository.getComponents()), "*", true);
ae = UIMAFramework.produceAnalysisEngine(desc, rm, null);
} catch (Exception e) {
log.warn(new StringBuilder("could not get AE from extended
classpath RM \n ").append(e.getMessage()).toString());
Modified:
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMABundleActivator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMABundleActivator.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMABundleActivator.java
(original)
+++
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMABundleActivator.java
Wed Oct 24 15:38:57 2012
@@ -18,6 +18,8 @@
*/
package org.apache.clerezza.uima.utils;
+import org.apache.clerezza.uima.utils.cl.UIMAResourcesClassLoaderRepository;
+import org.apache.felix.scr.annotations.Reference;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -26,6 +28,9 @@ import org.osgi.framework.BundleContext;
*/
public abstract class UIMABundleActivator implements BundleActivator {
+ @Reference
+ protected UIMAResourcesClassLoaderRepository classLoaderRepository;
+
@Override
public void start(BundleContext context) throws Exception {
classRegistered();
Modified:
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAUtilsBundleActivator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAUtilsBundleActivator.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAUtilsBundleActivator.java
(original)
+++
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAUtilsBundleActivator.java
Wed Oct 24 15:38:57 2012
@@ -28,7 +28,7 @@ import org.apache.uima.annotator.calais.
public class UIMAUtilsBundleActivator extends UIMABundleActivator {
@Override
protected void classRegistered() {
-
UIMAResourcesClassLoaderRepository.registerComponent(TextRankedNamedEntityExtractionAnnotator.class);
-
UIMAResourcesClassLoaderRepository.registerComponent(OpenCalaisAnnotator.class);
+
classLoaderRepository.registerComponent(TextRankedNamedEntityExtractionAnnotator.class);
+ classLoaderRepository.registerComponent(OpenCalaisAnnotator.class);
}
}
Modified:
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/ClerezzaUIMAExtensionClassLoader.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/ClerezzaUIMAExtensionClassLoader.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/ClerezzaUIMAExtensionClassLoader.java
(original)
+++
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/ClerezzaUIMAExtensionClassLoader.java
Wed Oct 24 15:38:57 2012
@@ -25,6 +25,8 @@ import java.util.Collection;
import java.util.Enumeration;
import java.util.Vector;
+import org.apache.felix.scr.annotations.Reference;
+
/**
* An extension {@link ClassLoader} to be used as UIMA extension CL within a
* {@link org.apache.uima.resource.ResourceManager}. This delegates class
loading to
@@ -39,9 +41,9 @@ public class ClerezzaUIMAExtensionClassL
private final Collection<ClassLoader> delegateClassLoaders;
private final ResourceByteReader byteReader;
- public ClerezzaUIMAExtensionClassLoader(ClassLoader parent) {
+ public ClerezzaUIMAExtensionClassLoader(ClassLoader parent,
Collection<ClassLoader> delegateClassLoaders) {
super(parent);
- this.delegateClassLoaders =
UIMAResourcesClassLoaderRepository.getComponents();
+ this.delegateClassLoaders = delegateClassLoaders;
this.byteReader = new ResourceByteReader();
}
Modified:
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/UIMAResourcesClassLoaderRepository.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/UIMAResourcesClassLoaderRepository.java?rev=1401735&r1=1401734&r2=1401735&view=diff
==============================================================================
---
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/UIMAResourcesClassLoaderRepository.java
(original)
+++
incubator/clerezza/trunk/uima/uima.utils/src/main/java/org/apache/clerezza/uima/utils/cl/UIMAResourcesClassLoaderRepository.java
Wed Oct 24 15:38:57 2012
@@ -18,6 +18,7 @@
*/
package org.apache.clerezza.uima.utils.cl;
+import org.apache.felix.scr.annotations.Service;
import org.apache.uima.analysis_component.AnalysisComponent;
import org.apache.uima.resource.Resource;
import org.slf4j.Logger;
@@ -30,22 +31,23 @@ import java.util.Set;
/**
* Repository for UIMA {@link AnalysisComponent}s' {@link ClassLoader}s
*/
+@Service
public class UIMAResourcesClassLoaderRepository {
private final static Logger log =
LoggerFactory.getLogger(UIMAResourcesClassLoaderRepository.class);
private final static Set<ClassLoader> registeredComponents = new
HashSet<ClassLoader>();
- public static <C extends AnalysisComponent> void registerComponent(Class<C>
component) {
+ public <C extends AnalysisComponent> void registerComponent(Class<C>
component) {
log.info(new StringBuilder("Component
").append(component.getName()).append(" registered").toString());
registeredComponents.add(component.getClassLoader());
}
- public static <R extends Resource> void registerResource(Class<R> component)
{
+ public <R extends Resource> void registerResource(Class<R> component) {
log.info(new StringBuilder("Component
").append(component.getName()).append(" registered").toString());
registeredComponents.add(component.getClassLoader());
}
- public static Collection<ClassLoader> getComponents() {
+ public Collection<ClassLoader> getComponents() {
return registeredComponents;
}
}