You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2012/05/04 14:37:04 UTC

svn commit: r1333911 - in /jackrabbit/oak/trunk/oak-mk: pom.xml src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java

Author: thomasm
Date: Fri May  4 12:37:04 2012
New Revision: 1333911

URL: http://svn.apache.org/viewvc?rev=1333911&view=rev
Log:
OAK-67 OSGi Bundle Setup - add an OSGi service for (in-memory and persisted) MicroKernel instances

Added:
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java
      - copied, changed from r1333794, jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java
Removed:
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java
Modified:
    jackrabbit/oak/trunk/oak-mk/pom.xml

Modified: jackrabbit/oak/trunk/oak-mk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/pom.xml?rev=1333911&r1=1333910&r2=1333911&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-mk/pom.xml Fri May  4 12:37:04 2012
@@ -47,12 +47,22 @@
               org.apache.jackrabbit.mk.client,
               org.apache.jackrabbit.mk.blobs
             </Export-Package>
-            <Bundle-Activator>
-              org.apache.jackrabbit.mk.osgi.Activator
-            </Bundle-Activator>
           </instructions>
         </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>
       <plugins>
@@ -78,10 +88,22 @@
       <optional>true</optional>
     </dependency>
     <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <scope>provided</scope>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>biz.aQute</groupId>
       <artifactId>bndlib</artifactId>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.scr.annotations</artifactId>
+        <scope>provided</scope>
+    </dependency>
+    
 
     <!-- commons dependency -->
     <dependency>

Copied: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java (from r1333794, jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java?p2=jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java&p1=jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java&r1=1333794&r2=1333911&rev=1333911&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java Fri May  4 12:37:04 2012
@@ -16,31 +16,44 @@
  */
 package org.apache.jackrabbit.mk.osgi;
 
-import java.util.Properties;
-
+import org.osgi.service.component.ComponentContext;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.core.MicroKernelImpl;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
 
-public class Activator implements BundleActivator {
+@Component
+@Service(MicroKernel.class)
+public class MicroKernelService extends MicroKernelImpl {
+
+    @Property(description="The unique name of this instance")
+    public static final String NAME = "name";
 
-    private ServiceRegistration registration;
+    @Property(description="The home directory (in-memory if not set)")
+    public static final String HOME_DIR = "homeDir";
 
-    //-----------------------------------------------------< BundleActivator >--
+    private String name;
 
     @Override
-    public void start(BundleContext context) throws Exception {
-        registration = context.registerService(
-                MicroKernel.class.getName(),
-                new MicroKernelImpl(),
-                new Properties());
+    public String toString() {
+        return name;
     }
 
-    @Override
-    public void stop(BundleContext context) throws Exception {
-        registration.unregister();
+    @Activate
+    public void activate(ComponentContext context) {
+        Object homeDir = context.getProperties().get(HOME_DIR);
+        name = "" + context.getProperties().get(NAME);
+        if (homeDir != null) {
+            init(homeDir.toString());
+        }
+    }
+
+    @Deactivate
+    public void deactivate() {
+        dispose();
     }
 
 }



Re: svn commit: r1333911 - in /jackrabbit/oak/trunk/oak-mk: pom.xml src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java

Posted by Julian Reschke <ju...@gmx.de>.
On 2012-05-04 14:37, thomasm@apache.org wrote:
> Author: thomasm
> Date: Fri May  4 12:37:04 2012
> New Revision: 1333911
> ...

Over here:

[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project org.apache.jackrabbit:oak-mk:0.3-SNAPSHOT 
(C:\projects\apache\jackrabbit\oak\trunk\oak-mk\pom.xml) has 1 error
[ERROR]     'dependencies.dependency.version' for 
org.apache.felix:org.apache.felix.scr.annotations:jar is missing. @ line 
101, column 17
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the 
-e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, 
please read the following articles:
[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

Re: svn commit: r1333911 - in /jackrabbit/oak/trunk/oak-mk: pom.xml src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On Fri, May 4, 2012 at 3:00 PM, Michael Dürig <md...@apache.org> wrote:
> Hmm this seems to break the build for me.

Thomas forgot to commit the relevant oak-parent/pom.xml change. I
fixed that in revision 1333940.

BR,

Jukka Zitting

Re: svn commit: r1333911 - in /jackrabbit/oak/trunk/oak-mk: pom.xml src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java

Posted by Michael Dürig <md...@apache.org>.
Hmm this seems to break the build for me.
Michael

On 4.5.12 13:37, thomasm@apache.org wrote:
> Author: thomasm
> Date: Fri May  4 12:37:04 2012
> New Revision: 1333911
>
> URL: http://svn.apache.org/viewvc?rev=1333911&view=rev
> Log:
> OAK-67 OSGi Bundle Setup - add an OSGi service for (in-memory and persisted) MicroKernel instances
>
> Added:
>      jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java
>        - copied, changed from r1333794, jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java
> Removed:
>      jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java
> Modified:
>      jackrabbit/oak/trunk/oak-mk/pom.xml
>
> Modified: jackrabbit/oak/trunk/oak-mk/pom.xml
> URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/pom.xml?rev=1333911&r1=1333910&r2=1333911&view=diff
> ==============================================================================
> --- jackrabbit/oak/trunk/oak-mk/pom.xml (original)
> +++ jackrabbit/oak/trunk/oak-mk/pom.xml Fri May  4 12:37:04 2012
> @@ -47,12 +47,22 @@
>                 org.apache.jackrabbit.mk.client,
>                 org.apache.jackrabbit.mk.blobs
>               </Export-Package>
> -<Bundle-Activator>
> -              org.apache.jackrabbit.mk.osgi.Activator
> -</Bundle-Activator>
>             </instructions>
>           </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>
>         <plugins>
> @@ -78,10 +88,22 @@
>         <optional>true</optional>
>       </dependency>
>       <dependency>
> +<groupId>org.osgi</groupId>
> +<artifactId>org.osgi.compendium</artifactId>
> +<scope>provided</scope>
> +<optional>true</optional>
> +</dependency>
> +<dependency>
>         <groupId>biz.aQute</groupId>
>         <artifactId>bndlib</artifactId>
>         <scope>provided</scope>
>       </dependency>
> +<dependency>
> +<groupId>org.apache.felix</groupId>
> +<artifactId>org.apache.felix.scr.annotations</artifactId>
> +<scope>provided</scope>
> +</dependency>
> +
>
>       <!-- commons dependency -->
>       <dependency>
>
> Copied: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java (from r1333794, jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java)
> URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java?p2=jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java&p1=jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java&r1=1333794&r2=1333911&rev=1333911&view=diff
> ==============================================================================
> --- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/Activator.java (original)
> +++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/osgi/MicroKernelService.java Fri May  4 12:37:04 2012
> @@ -16,31 +16,44 @@
>    */
>   package org.apache.jackrabbit.mk.osgi;
>
> -import java.util.Properties;
> -
> +import org.osgi.service.component.ComponentContext;
> +import org.apache.felix.scr.annotations.Component;
> +import org.apache.felix.scr.annotations.Deactivate;
> +import org.apache.felix.scr.annotations.Property;
> +import org.apache.felix.scr.annotations.Service;
> +import org.apache.felix.scr.annotations.Activate;
>   import org.apache.jackrabbit.mk.api.MicroKernel;
>   import org.apache.jackrabbit.mk.core.MicroKernelImpl;
> -import org.osgi.framework.BundleActivator;
> -import org.osgi.framework.BundleContext;
> -import org.osgi.framework.ServiceRegistration;
>
> -public class Activator implements BundleActivator {
> +@Component
> +@Service(MicroKernel.class)
> +public class MicroKernelService extends MicroKernelImpl {
> +
> +    @Property(description="The unique name of this instance")
> +    public static final String NAME = "name";
>
> -    private ServiceRegistration registration;
> +    @Property(description="The home directory (in-memory if not set)")
> +    public static final String HOME_DIR = "homeDir";
>
> -    //-----------------------------------------------------<  BundleActivator>--
> +    private String name;
>
>       @Override
> -    public void start(BundleContext context) throws Exception {
> -        registration = context.registerService(
> -                MicroKernel.class.getName(),
> -                new MicroKernelImpl(),
> -                new Properties());
> +    public String toString() {
> +        return name;
>       }
>
> -    @Override
> -    public void stop(BundleContext context) throws Exception {
> -        registration.unregister();
> +    @Activate
> +    public void activate(ComponentContext context) {
> +        Object homeDir = context.getProperties().get(HOME_DIR);
> +        name = "" + context.getProperties().get(NAME);
> +        if (homeDir != null) {
> +            init(homeDir.toString());
> +        }
> +    }
> +
> +    @Deactivate
> +    public void deactivate() {
> +        dispose();
>       }
>
>   }
>
>