You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2009/06/08 12:02:36 UTC

svn commit: r782577 - in /cxf/dosgi/trunk/distribution: ./ discovery-single-bundle/ discovery-single-bundle/src/ discovery-single-bundle/src/main/ discovery-single-bundle/src/main/java/ discovery-single-bundle/src/main/java/org/ discovery-single-bundle...

Author: davidb
Date: Mon Jun  8 10:02:35 2009
New Revision: 782577

URL: http://svn.apache.org/viewvc?rev=782577&view=rev
Log:
Initial bits for a convenience singlebundle distribution for Discovery.

Added:
    cxf/dosgi/trunk/distribution/discovery-single-bundle/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml   (with props)
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java   (with props)
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/
    cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/activators.list
Modified:
    cxf/dosgi/trunk/distribution/pom.xml

Added: cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml?rev=782577&view=auto
==============================================================================
--- cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml (added)
+++ cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml Mon Jun  8 10:02:35 2009
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.cxf.dosgi</groupId>
+  <artifactId>cxf-dosgi-ri-discovery-singlebundle-distribution</artifactId>
+  <version>1.1-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <name>Distributed OSGI Zookeeper-Based Discovery Single-Bundle Distribution</name>
+  <url>http://cxf.apache.org</url>
+
+  <parent>
+    <groupId>org.apache.cxf.dosgi</groupId>
+    <artifactId>cxf-dosgi-ri-distribution-parent</artifactId>
+    <version>1.1-SNAPSHOT</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+
+  <properties>
+    <topDirectoryLocation>../..</topDirectoryLocation>
+  </properties>
+  
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>1.2.0</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>org.osgi.foundation</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.configadmin</artifactId>
+      <version>1.0.10</version>
+    </dependency>      
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.fileinstall</artifactId>
+      <version>1.0.0</version>
+    </dependency>      
+
+    <dependency> 
+      <groupId>org.apache.log4j</groupId> 
+      <artifactId>com.springsource.org.apache.log4j</artifactId> 
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cxf.dosgi</groupId>
+      <artifactId>cxf-dosgi-ri-discovery-distributed-zookeeper-wrapper</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cxf.dosgi</groupId>
+      <artifactId>cxf-dosgi-ri-discovery-distributed</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>        
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Bundle-Name>Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution</Bundle-Name>
+            <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+            <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
+            <Bundle-Activator>org.apache.cxf.dosgi.discovery.singlebundle.AggregatedActivator</Bundle-Activator>
+            <Include-Resource>
+              @cxf-dosgi-ri-discovery-distributed-${project.version}.jar!/META-INF/spring/*,
+              {maven-resources}
+            </Include-Resource> 
+            <Import-Package>
+              com.sun.jdmk.comm;resolution:=optional,
+              javax.jms;resolution:=optional,
+              javax.mail.*;resolution:=optional,
+              javax.management;resolution:=optional,
+              javax.naming;resolution:=optional,
+              javax.swing.*;resolution:=optional,
+              javax.xml.*,
+              org.apache.cxf.dosgi.discovery.local;version=${pom.version},
+              org.osgi.framework;version="[1.4.0,2.0.0)",
+              org.osgi.service.cm;version="[1.2.0,2.0.0)",
+              org.osgi.service.discovery;version="[1.0.0,2.0.0)",
+              org.osgi.service.packageadmin;version="[1.2.0,2.0.0)",
+              org.osgi.util.tracker;version="[1.3.0,2.0.0)",
+              org.springframework.beans.factory;version="[2.5.0,3.0.0)",
+              org.springframework.osgi.context;version="[1.2.0,2.0.0)",
+              org.w3c.dom,
+              org.xml.sax.*,
+              !*
+            </Import-Package> 
+            <Export-Package>
+              !*
+            </Export-Package>
+            <Private-Package>org.apache.cxf.dosgi.discovery.singlebundle</Private-Package>
+            <Embed-Dependency>*;scope=compile;inline=false</Embed-Dependency>
+            <Embed-Directory>lib</Embed-Directory>
+            <_exportcontents>
+              !*
+            </_exportcontents>
+            <_removeheaders>
+              Ignore-Package,
+              Include-Resource,
+              Private-Package,
+              Embed-Dependency
+            </_removeheaders>
+          </instructions>
+        </configuration>
+      </plugin> 
+    </plugins>
+  </build>
+</project>

Propchange: cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/dosgi/trunk/distribution/discovery-single-bundle/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java?rev=782577&view=auto
==============================================================================
--- cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java (added)
+++ cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java Mon Jun  8 10:02:35 2009
@@ -0,0 +1,91 @@
+/** 
+  * Licensed to the Apache Software Foundation (ASF) under one 
+  * or more contributor license agreements. See the NOTICE file 
+  * distributed with this work for additional information 
+  * regarding copyright ownership. The ASF licenses this file 
+  * to you under the Apache License, Version 2.0 (the 
+  * "License"); you may not use this file except in compliance 
+  * with the License. You may obtain a copy of the License at 
+  * 
+  * http://www.apache.org/licenses/LICENSE-2.0 
+  * 
+  * Unless required by applicable law or agreed to in writing, 
+  * software distributed under the License is distributed on an 
+  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
+  * KIND, either express or implied. See the License for the 
+  * specific language governing permissions and limitations 
+  * under the License. 
+  */
+package org.apache.cxf.dosgi.discovery.singlebundle;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class AggregatedActivator implements BundleActivator {
+    static final String ACTIVATOR_RESOURCE = "activators.list";
+
+    private List<BundleActivator> activators = new ArrayList<BundleActivator>(); 
+
+    public void start(BundleContext ctx) throws Exception {
+        startEmbeddedActivators(ctx);
+    }
+
+    public void stop(BundleContext ctx) throws Exception {
+        stopEmbeddedActivators(ctx);
+    }
+
+    void startEmbeddedActivators(BundleContext ctx) throws Exception {
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        try {
+            Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+            for (String s : getActivators()) {
+                try {
+                    Class<?> clazz = getClass().getClassLoader().loadClass(s);
+                    Object o = clazz.newInstance();
+                    if (o instanceof BundleActivator) {
+                        BundleActivator ba = (BundleActivator) o;
+                        activators.add(ba);
+                        ba.start(ctx);
+                    }
+                } catch (Throwable th) {
+                    th.printStackTrace();
+                }
+            }
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldClassLoader);
+        }
+    }
+
+    void stopEmbeddedActivators(BundleContext ctx) throws Exception {
+        for (BundleActivator ba : activators) {
+            ba.stop(ctx);
+        }
+    }
+    
+    static Collection<String> getActivators() throws IOException {
+        List<String> bundleActivators = new ArrayList<String>();
+        
+        URL url = AggregatedActivator.class.getResource(ACTIVATOR_RESOURCE);
+        if (url == null) {
+            return Collections.emptyList();
+        }
+        
+        BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
+        String line = null;
+        while ((line = br.readLine()) != null) {
+            bundleActivators.add(line);
+        }
+        
+        return bundleActivators;
+    }
+    
+}

Propchange: cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/java/org/apache/cxf/dosgi/discovery/singlebundle/AggregatedActivator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/activators.list
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/activators.list?rev=782577&view=auto
==============================================================================
--- cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/activators.list (added)
+++ cxf/dosgi/trunk/distribution/discovery-single-bundle/src/main/resources/org/apache/cxf/dosgi/discovery/singlebundle/activators.list Mon Jun  8 10:02:35 2009
@@ -0,0 +1,4 @@
+org.apache.felix.cm.impl.ConfigurationManager
+org.apache.felix.fileinstall.FileInstall
+org.apache.cxf.dosgi.discovery.zookeeper.Activator
+

Modified: cxf/dosgi/trunk/distribution/pom.xml
URL: http://svn.apache.org/viewvc/cxf/dosgi/trunk/distribution/pom.xml?rev=782577&r1=782576&r2=782577&view=diff
==============================================================================
--- cxf/dosgi/trunk/distribution/pom.xml (original)
+++ cxf/dosgi/trunk/distribution/pom.xml Mon Jun  8 10:02:35 2009
@@ -40,6 +40,7 @@
     <modules>
       <module>multi-bundle</module>
       <module>single-bundle</module>
+      <module>discovery-single-bundle</module>
       <module>sources</module>
     </modules> 
 </project>