Author: rwesten
Date: Mon Jun 27 09:29:21 2011
New Revision: 1140073

URL: http://svn.apache.org/viewvc?rev=1140073&view=rev
Log:
STANBOL-240: adds the changes as requested by this issue

Added:
    
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/
    
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/
    
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties
   (with props)
Modified:
    incubator/stanbol/trunk/enhancer/engines/opencalais/pom.xml
    
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/java/org/apache/stanbol/enhancer/engines/opencalais/impl/OpenCalaisEngine.java
    
incubator/stanbol/trunk/enhancer/engines/opencalais/src/test/java/org/apache/stanbol/enhancer/engines/opencalais/impl/TestOpenCalaisEngine.java
    
incubator/stanbol/trunk/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java

Modified: incubator/stanbol/trunk/enhancer/engines/opencalais/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opencalais/pom.xml?rev=1140073&r1=1140072&r2=1140073&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/opencalais/pom.xml (original)
+++ incubator/stanbol/trunk/enhancer/engines/opencalais/pom.xml Mon Jun 27 
09:29:21 2011
@@ -90,6 +90,11 @@
       <groupId>org.apache.stanbol</groupId>
       <artifactId>org.apache.stanbol.enhancer.servicesapi</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.stanbol</groupId>
+      <artifactId>org.apache.stanbol.commons.stanboltools.offline</artifactId>
+      <scope>provided</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.felix</groupId>

Modified: 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/java/org/apache/stanbol/enhancer/engines/opencalais/impl/OpenCalaisEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/java/org/apache/stanbol/enhancer/engines/opencalais/impl/OpenCalaisEngine.java?rev=1140073&r1=1140072&r2=1140073&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/java/org/apache/stanbol/enhancer/engines/opencalais/impl/OpenCalaisEngine.java
 (original)
+++ 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/java/org/apache/stanbol/enhancer/engines/opencalais/impl/OpenCalaisEngine.java
 Mon Jun 27 09:29:21 2011
@@ -71,6 +71,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.stanboltools.offline.OnlineMode;
 import org.apache.stanbol.enhancer.servicesapi.ContentItem;
 import org.apache.stanbol.enhancer.servicesapi.EngineException;
 import org.apache.stanbol.enhancer.servicesapi.EnhancementEngine;
@@ -78,6 +79,7 @@ import org.apache.stanbol.enhancer.servi
 import org.apache.stanbol.enhancer.servicesapi.ServiceProperties;
 import org.apache.stanbol.enhancer.servicesapi.helper.EnhancementEngineHelper;
 import org.osgi.framework.BundleContext;
+import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -148,6 +150,12 @@ public class OpenCalaisEngine implements
 
     @Reference
     TcManager tcManager;
+    /**
+     * Only activate this engine in online mode
+     */
+    @SuppressWarnings("unused")
+    @Reference
+    private OnlineMode onlineMode;
 
     BundleContext bundleContext;
 
@@ -165,7 +173,13 @@ public class OpenCalaisEngine implements
         return licenseKey;
     }
 
-    public void setLicenseKey(String licenseKey) {
+    public void setLicenseKey(String licenseKey) throws ConfigurationException 
{
+        if(licenseKey == null || licenseKey.isEmpty()){
+            throw new ConfigurationException(LICENSE_KEY, String.format(
+                "%s : please configure a OpenCalais License key to use this 
engine (e.g. by" +
+                "using the 'Configuration' tab of the Apache Felix Web 
Console).",
+                getClass().getSimpleName()));
+        }
         this.licenseKey = licenseKey;
     }
 
@@ -173,7 +187,13 @@ public class OpenCalaisEngine implements
         return calaisUrl;
     }
 
-    public void setCalaisUrl(String calaisUrl) {
+    public void setCalaisUrl(String calaisUrl) throws ConfigurationException {
+        if(calaisUrl == null || calaisUrl.isEmpty()){
+            throw new ConfigurationException(CALAIS_URL_KEY, String.format(
+                "%s : please configure the URL of the OpenCalais Webservice 
(e.g. by" +
+                "using the 'Configuration' tab of the Apache Felix Web 
Console).",
+                getClass().getSimpleName()));
+        }
         this.calaisUrl = calaisUrl;
     }
 
@@ -221,11 +241,12 @@ public class OpenCalaisEngine implements
     }
 
     public int canEnhance(ContentItem ci) throws EngineException {
-        if (getLicenseKey() == null || getLicenseKey().trim().length() == 0) {
-            //do nothing if no license key is defined
-            log.warn("No license key defined. The engine will not work!");
-            return CANNOT_ENHANCE;
-        }
+        //Engine will no longer activate if no license key is set
+//        if (getLicenseKey() == null || getLicenseKey().trim().length() == 0) 
{
+//            //do nothing if no license key is defined
+//            log.warn("No license key defined. The engine will not work!");
+//            return CANNOT_ENHANCE;
+//        }
         UriRef subj = new UriRef(ci.getId());
         String mimeType = ci.getMimeType().split(";", 2)[0];
         if (SUPPORTED_MIMETYPES.contains(mimeType.toLowerCase())) {
@@ -594,7 +615,7 @@ public class OpenCalaisEngine implements
      *
      * @param ce the {@link ComponentContext}
      */
-    protected void activate(@SuppressWarnings("unused") ComponentContext ce) {
+    protected void activate(ComponentContext ce) throws ConfigurationException 
{
         if (ce != null) {
             this.bundleContext = ce.getBundleContext();
             //TODO initialize Extractor

Added: 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1140073&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties
 (added)
+++ 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties
 Mon Jun 27 09:29:21 2011
@@ -0,0 +1,18 @@
+#===============================================================================
+#Properties and Options used to configure OpenCalaisEnhancementEngine
+#===============================================================================
+
+org.apache.stanbol.enhancer.engines.opencalais.impl.OpenCalaisEngine.name=Stanbol
 Enhancement Engine for OpenCalais
+org.apache.stanbol.enhancer.engines.opencalais.impl.OpenCalaisEngine.description=An
 Enhancement Engine that sends ContentItems to OpenCalais and converts the 
results to the Stanbol Enhancement Structure
+
+org.apache.stanbol.enhancer.engines.opencalais.license.name=License Key
+org.apache.stanbol.enhancer.engines.opencalais.license.description=The key 
needed to access the OpenCalais Webservices
+
+org.apache.stanbol.enhancer.engines.opencalais.url.name=Service URL
+org.apache.stanbol.enhancer.engines.opencalais.url.description=The URL of the 
OpenCalais Webservice
+
+org.apache.stanbol.enhancer.engines.opencalais.typeMap.name=Type Map
+#org.apache.stanbol.enhancer.engines.opencalais.typeMap.description=
+
+org.apache.stanbol.enhancer.engines.opencalais.NERonly.name=NER only Mode
+org.apache.stanbol.enhancer.engines.opencalais.NERonly.description=Allows to 
run this engine in an mode that only uses performs Named Entity Recognition 

Propchange: 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/main/resources/OSGI-INF/metatype/metatype.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/test/java/org/apache/stanbol/enhancer/engines/opencalais/impl/TestOpenCalaisEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/opencalais/src/test/java/org/apache/stanbol/enhancer/engines/opencalais/impl/TestOpenCalaisEngine.java?rev=1140073&r1=1140072&r2=1140073&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/test/java/org/apache/stanbol/enhancer/engines/opencalais/impl/TestOpenCalaisEngine.java
 (original)
+++ 
incubator/stanbol/trunk/enhancer/engines/opencalais/src/test/java/org/apache/stanbol/enhancer/engines/opencalais/impl/TestOpenCalaisEngine.java
 Mon Jun 27 09:29:21 2011
@@ -35,6 +35,7 @@ import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.osgi.service.cm.ConfigurationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -57,7 +58,7 @@ public class TestOpenCalaisEngine {
   private static String TEST_TEXT = "Israeli PM Netanyahu pulls out of US 
nuclear summit\nIsraeli PM Benjamin Netanyahu has cancelled a visit to the US 
where he was to attend a summit on nuclear security, Israeli officials say. Mr 
Netanyahu made the decision after learning that Egypt and Turkey intended to 
raise the issue of Israel's presumed nuclear arsenal, the officials said. Mr 
Obama is due to host dozens of world leaders at the two-day conference, which 
begins in Washington on Monday. Israel has never confirmed or denied that it 
possesses atomic weapons. Israel's Intelligence and Atomic Energy Minister Dan 
Meridor will take Netanyahu's place in the nuclear summit, Israeli radio said. 
More than 40 countries are expected at the meeting, which will focus on 
preventing the spread of nuclear weapons to militant groups.";
   
   @BeforeClass
-  public static void oneTimeSetup() {
+  public static void oneTimeSetup() throws ConfigurationException {
     calaisExtractor = new OpenCalaisEngine();
     calaisExtractor.setCalaisTypeMap(new HashMap<UriRef,UriRef>());
     calaisExtractor.tcManager = TcManager.getInstance();

Modified: 
incubator/stanbol/trunk/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java?rev=1140073&r1=1140072&r2=1140073&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java
 (original)
+++ 
incubator/stanbol/trunk/integration-tests/src/test/java/org/apache/stanbol/enhancer/it/EnhancerTestBase.java
 Mon Jun 27 09:29:21 2011
@@ -71,7 +71,7 @@ public class EnhancerTestBase extends St
                     "org.apache.stanbol.*MetaxaEngine",
                     "org.apache.stanbol.*LangIdEnhancementEngine",
                     
"org.apache.stanbol.*NamedEntityExtractionEnhancementEngine",
-                    "org.apache.stanbol.*OpenCalaisEngine",
+                    //"org.apache.stanbol.*OpenCalaisEngine", not available in 
offline mode
                     "org.apache.stanbol.*EntityMentionEnhancementEngine",
                     "org.apache.stanbol.*CachingDereferencerEngine"
                     //removed because not available in offline mode


Reply via email to