You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2012/04/19 14:43:25 UTC
svn commit: r1327929 - in /tika/trunk: tika-bundle/
tika-bundle/src/test/java/org/apache/tika/bundle/ tika-core/
tika-core/src/main/java/org/apache/tika/config/ tika-parsers/
tika-parsers/src/main/java/org/apache/tika/parser/internal/
Author: jukka
Date: Thu Apr 19 12:43:24 2012
New Revision: 1327929
URL: http://svn.apache.org/viewvc?rev=1327929&view=rev
Log:
TIKA-896: OSGi deployment without declarative services
Patch by Joerg Ehrlich.
Modified:
tika/trunk/tika-bundle/pom.xml
tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java
tika/trunk/tika-core/pom.xml
tika/trunk/tika-core/src/main/java/org/apache/tika/config/TikaActivator.java
tika/trunk/tika-parsers/pom.xml
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiDetector.java
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiParser.java
Modified: tika/trunk/tika-bundle/pom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-bundle/pom.xml?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-bundle/pom.xml (original)
+++ tika/trunk/tika-bundle/pom.xml Thu Apr 19 12:43:24 2012
@@ -109,6 +109,9 @@
<extensions>true</extensions>
<configuration>
<instructions>
+ <Bundle-Activator>
+ org.apache.tika.parser.internal.TikaActivator
+ </Bundle-Activator>
<Embed-Dependency>
tika-parsers;inline=true,
commons-compress, commons-codec,
@@ -135,9 +138,6 @@
!org.apache.tika.parser.external,
org.apache.tika.parser.*
</Export-Package>
- <Service-Component>
- OSGI-INF/serviceComponents.xml
- </Service-Component>
</instructions>
</configuration>
</plugin>
Modified: tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java (original)
+++ tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java Thu Apr 19 12:43:24 2012
@@ -20,7 +20,6 @@ import static junit.framework.Assert.ass
import static junit.framework.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.bundle;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import java.io.File;
import java.io.FileInputStream;
@@ -52,7 +51,6 @@ public class BundleIT {
File base = new File(TARGET, "test-bundles");
return CoreOptions.options(
junitBundles(),
- mavenBundle("org.apache.felix", "org.apache.felix.scr", "1.6.0"),
bundle(new File(base, "tika-core.jar").toURL().toURI().toString()),
bundle(new File(base, "tika-bundle.jar").toURL().toURI().toString()));
}
Modified: tika/trunk/tika-core/pom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/pom.xml?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-core/pom.xml (original)
+++ tika/trunk/tika-core/pom.xml Thu Apr 19 12:43:24 2012
@@ -44,6 +44,13 @@
<optional>true</optional>
</dependency>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>4.0.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
<groupId>biz.aQute</groupId>
<artifactId>bndlib</artifactId>
<scope>provided</scope>
@@ -92,6 +99,7 @@
</goals>
<configuration>
<excludes>
+ <exlude>org/apache/tika/config/TikaActivator</exlude>
<exlude>org/apache/tika/metadata/Property$PropertyType</exlude>
<exlude>org/apache/tika/metadata/Property$ValueType</exlude>
<exlude>org/apache/tika/metadata/MSOffice</exlude>
Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/config/TikaActivator.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/config/TikaActivator.java?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/config/TikaActivator.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/config/TikaActivator.java Thu Apr 19 12:43:24 2012
@@ -16,11 +16,13 @@
*/
package org.apache.tika.config;
+import org.apache.tika.detect.Detector;
+import org.apache.tika.parser.Parser;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
/**
* Bundle activator that adjust the class loading mechanism of the
@@ -33,36 +35,42 @@ import org.osgi.framework.ServiceReferen
*
* @since Apache Tika 0.9
*/
-public class TikaActivator
- implements BundleActivator, ServiceListener {
+public class TikaActivator implements BundleActivator, ServiceTrackerCustomizer {
- private BundleContext bundleContext;
+ private ServiceTracker detectorTracker;
+ private ServiceTracker parserTracker;
+
+ private BundleContext bundleContext;
//-----------------------------------------------------< BundleActivator >
- public void start(BundleContext context) throws Exception {
- bundleContext = context;
- bundleContext.addServiceListener(this,
- "(|(objectClass=org.apache.tika.detect.Detector)"
- + "(objectClass=org.apache.tika.parser.Parser))");
+ public void start(final BundleContext context) throws Exception {
+ bundleContext = context;
+
+ detectorTracker = new ServiceTracker(context, Detector.class.getName(), this);
+ parserTracker = new ServiceTracker(context, Parser.class.getName(), this);
+
+ detectorTracker.open();
+ parserTracker.open();
}
public void stop(BundleContext context) throws Exception {
- bundleContext.removeServiceListener(this);
+ parserTracker.close();
+ detectorTracker.close();
}
- //-----------------------------------------------------< ServiceListener >
-
- public synchronized void serviceChanged(ServiceEvent event) {
- if (event.getType() == ServiceEvent.REGISTERED) {
- ServiceReference reference = event.getServiceReference();
- Object service = bundleContext.getService(reference);
- ServiceLoader.addService(reference, service);
- } else if (event.getType() == ServiceEvent.UNREGISTERING) {
- ServiceReference reference = event.getServiceReference();
- ServiceLoader.removeService(reference);
- bundleContext.ungetService(reference);
- }
- }
+ public Object addingService(ServiceReference reference) {
+ Object service = bundleContext.getService(reference);
+ ServiceLoader.addService(reference, service);
+ return service;
+ }
+
+ public void modifiedService(ServiceReference reference, Object service) {
+ }
+
+ public void removedService(ServiceReference reference, Object service) {
+ ServiceLoader.removeService(reference);
+ bundleContext.ungetService(reference);
+ }
}
Modified: tika/trunk/tika-parsers/pom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/pom.xml?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-parsers/pom.xml (original)
+++ tika/trunk/tika-parsers/pom.xml Thu Apr 19 12:43:24 2012
@@ -42,6 +42,15 @@
</properties>
<dependencies>
+ <!-- Optional OSGi dependency, used only when running within OSGi -->
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>4.0.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tika-core</artifactId>
@@ -201,6 +210,9 @@
<configuration>
<instructions>
<Bundle-DocURL>${project.url}</Bundle-DocURL>
+ <Bundle-Activator>
+ org.apache.tika.parser.internal.TikaActivator
+ </Bundle-Activator>
<Import-Package>
org.w3c.dom,
org.apache.tika.*,
@@ -219,19 +231,6 @@
</excludes>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- <version>1.7.2</version>
- <executions>
- <execution>
- <id>generate-scr-scrdescriptor</id>
- <goals>
- <goal>scr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
</plugins>
<pluginManagement>
Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiDetector.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiDetector.java?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiDetector.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiDetector.java Thu Apr 19 12:43:24 2012
@@ -16,12 +16,8 @@
*/
package org.apache.tika.parser.internal;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.tika.detect.DefaultDetector;
-import org.apache.tika.detect.Detector;
-@Component @Service(Detector.class)
public class OSGiDetector extends DefaultDetector {
/** Serial version UID */
Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiParser.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiParser.java?rev=1327929&r1=1327928&r2=1327929&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiParser.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/internal/OSGiParser.java Thu Apr 19 12:43:24 2012
@@ -16,12 +16,8 @@
*/
package org.apache.tika.parser.internal;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.tika.parser.DefaultParser;
-import org.apache.tika.parser.Parser;
-@Component @Service(Parser.class)
public class OSGiParser extends DefaultParser {
/** Serial version UID */