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;
   }
 }


Reply via email to