http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/distribution/subsystem/pom.xml ---------------------------------------------------------------------- diff --git a/distribution/subsystem/pom.xml b/distribution/subsystem/pom.xml deleted file mode 100644 index bade03c..0000000 --- a/distribution/subsystem/pom.xml +++ /dev/null @@ -1,393 +0,0 @@ -<?xml version='1.0' encoding='UTF-8' ?> -<!-- - 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. ---> -<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"> - - <modelVersion>4.0.0</modelVersion> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-subsystem-distribution</artifactId> - <name>Distributed OSGi Subsystem Distribution</name> - <url>http://cxf.apache.org</url> - - <parent> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-distribution-parent</artifactId> - <version>1.4-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <properties> - <dosgi.version>${project.version}</dosgi.version> - <topDirectoryLocation>../..</topDirectoryLocation> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-annotation_1.0_spec</artifactId> - <version>1.1.1</version> - </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-activation_1.1_spec</artifactId> - <version>1.1</version> - </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-javamail_1.4_spec</artifactId> - <version>1.2</version> - </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-ws-metadata_2.0_spec</artifactId> - <version>1.1.3</version> - </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-servlet_${servlet.version}_spec</artifactId> - <version>1.0</version> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>com.springsource.org.apache.commons.logging</artifactId> - <version>1.1.1</version> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.enterprise</artifactId> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-jcl</artifactId> - </dependency> - - <dependency> - <groupId>org.jdom</groupId> - <artifactId>com.springsource.org.jdom</artifactId> - <version>1.1.0</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.aopalliance</groupId> - <artifactId>com.springsource.org.aopalliance</artifactId> - <version>1.0.0</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-aop</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-asm</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-expression</artifactId> - <version>${spring.version}</version> - </dependency> - <dependency> - <groupId>org.springframework.osgi</groupId> - <artifactId>spring-osgi-io</artifactId> - <version>${spring.osgi.version}</version> - </dependency> - <dependency> - <groupId>org.springframework.osgi</groupId> - <artifactId>spring-osgi-core</artifactId> - <version>${spring.osgi.version}</version> - </dependency> - <dependency> - <groupId>org.springframework.osgi</groupId> - <artifactId>spring-osgi-extender</artifactId> - <version>${spring.osgi.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty.aggregate</groupId> - <artifactId>jetty-all-server</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.ops4j.pax.web</groupId> - <artifactId>pax-web-spi</artifactId> - <version>${pax.web.version}</version> - </dependency> - <dependency> - <groupId>org.ops4j.pax.web</groupId> - <artifactId>pax-web-runtime</artifactId> - <version>${pax.web.version}</version> - </dependency> - <dependency> - <groupId>org.ops4j.pax.web</groupId> - <artifactId>pax-web-jetty</artifactId> - <version>${pax.web.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.specs</groupId> - <artifactId>org.apache.servicemix.specs.saaj-api-1.3</artifactId> - <version>${servicemix.specs.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.specs</groupId> - <artifactId>org.apache.servicemix.specs.stax-api-1.0</artifactId> - <version>${servicemix.specs.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.specs</groupId> - <artifactId>org.apache.servicemix.specs.jaxb-api-2.1</artifactId> - <version>${servicemix.specs.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.specs</groupId> - <artifactId>org.apache.servicemix.specs.jaxws-api-2.1</artifactId> - <version>${servicemix.specs.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.specs</groupId> - <artifactId>org.apache.servicemix.specs.jsr311-api-1.1.1</artifactId> - <version>${servicemix.specs.version}</version> - </dependency> - <dependency> - <groupId>org.apache.ws.xmlschema</groupId> - <artifactId>xmlschema-core</artifactId> - <version>${xmlschema.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.xmlresolver</artifactId> - <version>${xmlresolver.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.neethi</groupId> - <artifactId>neethi</artifactId> - <version>${neethi.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.wsdl4j</artifactId> - <version>${wsdl4j.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.xmlsec</artifactId> - <version>${xmlsec.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.jaxb-impl</artifactId> - <version>${jaxbimpl.bundle.version}</version> - </dependency> - - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.asm</artifactId> - <version>${asm.bundle.version}</version> - </dependency> - - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>stax2-api</artifactId> - <version>3.1.1</version> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>woodstox-core-asl</artifactId> - <version>${woodstox.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.commons-pool</artifactId> - <version>${commons.pool.bundle.version}</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.joda-time</artifactId> - <version>1.5.2_4</version> - </dependency> - <dependency> - <groupId>org.apache.servicemix.bundles</groupId> - <artifactId>org.apache.servicemix.bundles.opensaml</artifactId> - <version>2.4.1_1</version> - </dependency> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-bundle-minimal</artifactId> - <version>${cxf.version}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-discovery-local</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-dsw-cxf</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-topology-manager</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- Discovery dependencies --> - <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.configadmin</artifactId> - <version>1.2.8</version> - </dependency> - <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.fileinstall</artifactId> - <version>3.1.10</version> - </dependency> - - <dependency> - <groupId>org.apache.log4j</groupId> - <artifactId>com.springsource.org.apache.log4j</artifactId> - <version>${log4j.version}</version> - </dependency> - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>zookeeper</artifactId> - <version>${zookeeper.version}</version> - <exclusions> - <exclusion> - <groupId>com.sun.jdmk</groupId> - <artifactId>jmxtools</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jmx</groupId> - <artifactId>jmxri</artifactId> - </exclusion> - <exclusion> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-discovery-distributed</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-discovery-distributed-zookeeper-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-discovery-distributed-zookeeper-server-config</artifactId> - <version>${project.version}</version> - </dependency> - - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - </resources> - - <plugins> - <!-- The assembly plugin is used to actually build the subsystem archive --> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <executions> - <execution> - <id>make-assembly</id> - <phase>prepare-package</phase> - <goals> - <goal>single</goal> - </goals> - <configuration> - <appendAssemblyId>false</appendAssemblyId> - <descriptors> - <descriptor>./src/main/assembly/subsystem-assembly.xml</descriptor> - </descriptors> - </configuration> - </execution> - </executions> - </plugin> - <!-- Since the assembly plugin has no way to output to an .esa file extension use the antrun - plugin to copy the file to one with the proper extension --> - <plugin> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <phase>package</phase> - <configuration> - <target> - <copy file="${project.build.directory}/${project.build.finalName}.zip" - tofile="${project.build.directory}/${project.build.finalName}.esa" /> - </target> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - </plugin> - <!-- Attach the .esa file to the project so that it ends up in the repo --> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.7</version> - <executions> - <execution> - <id>attach-instrumented-jar</id> - <phase>verify</phase> - <goals> - <goal>attach-artifact</goal> - </goals> - <configuration> - <artifacts> - <artifact> - <file>${project.build.directory}/${project.build.finalName}.esa</file> - <type>esa</type> - </artifact> - </artifacts> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project>
http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/distribution/subsystem/src/main/assembly/subsystem-assembly.xml ---------------------------------------------------------------------- diff --git a/distribution/subsystem/src/main/assembly/subsystem-assembly.xml b/distribution/subsystem/src/main/assembly/subsystem-assembly.xml deleted file mode 100644 index c0daf6c..0000000 --- a/distribution/subsystem/src/main/assembly/subsystem-assembly.xml +++ /dev/null @@ -1,46 +0,0 @@ -<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/component-1.1.2.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. ---> - <id>subsystem-feature</id> - <formats> - <format>zip</format> - </formats> - <includeBaseDirectory>false</includeBaseDirectory> - - <files> - <file> - <source>target/classes/OSGI-INF/SUBSYSTEM.MF</source> - <outputDirectory>OSGI-INF</outputDirectory> - </file> - </files> - - <dependencySets> - <dependencySet> - <scope>runtime</scope> - <useTransitiveDependencies>false</useTransitiveDependencies> - <excludes> - <!-- Exclude the current artifact as it doesn't contribute anything other than the - logic to build the subsystem. --> - <exclude>org.apache.cxf.dosgi:cxf-dosgi-ri-subsystem-distribution</exclude> - </excludes> - </dependencySet> - </dependencySets> -</assembly> http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/distribution/subsystem/src/main/resources/OSGI-INF/SUBSYSTEM.MF ---------------------------------------------------------------------- diff --git a/distribution/subsystem/src/main/resources/OSGI-INF/SUBSYSTEM.MF b/distribution/subsystem/src/main/resources/OSGI-INF/SUBSYSTEM.MF deleted file mode 100644 index e2631e0..0000000 --- a/distribution/subsystem/src/main/resources/OSGI-INF/SUBSYSTEM.MF +++ /dev/null @@ -1,51 +0,0 @@ -Manifest-Version: 2.0 -Subsystem-ManifestVersion: 1.0 -Subsystem-SymbolicName: ${project.artifactId} -Subsystem-Version: 1.4.0 -Subsystem-Name: ${project.name} -Subsystem-Content: org.apache.geronimo.specs.geronimo-annotation_1.0_spec;start-order:=1, - org.apache.geronimo.specs.geronimo-activation_1.1_spec;start-order:=2, - org.apache.geronimo.specs.geronimo-javamail_1.4_spec;start-order:=3, - org.apache.geronimo.specs.geronimo-servlet_3.0_spec;start-order:=4, - org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec;start-order:=5, - com.springsource.org.apache.commons.logging;start-order:=6, - com.springsource.org.jdom;start-order:=7, - org.springframework.core;start-order:=8, - org.springframework.beans;start-order:=9, - org.springframework.context;start-order:=10, - com.springsource.org.aopalliance;start-order:=11, - slf4j-api;start-order:=11, - slf4j-jcl, - org.springframework.aop;start-order:=12, - org.springframework.asm;start-order:=13, - org.springframework.expression;start-order:=14, - org.springframework.osgi.io;start-order:=15, - org.springframework.osgi.core;start-order:=16, - org.springframework.osgi.extender;start-order:=17, - org.eclipse.jetty.aggregate.jetty-all-server;start-order:=18, - org.ops4j.pax.web.pax-web-spi;start-order:=19, - org.ops4j.pax.web.pax-web-runtime;start-order:=20, - org.ops4j.pax.web.pax-web-jetty;start-order:=21, - org.apache.servicemix.bundles.jaxb-impl;start-order:=22, - org.apache.servicemix.bundles.wsdl4j;start-order:=23, - org.apache.servicemix.bundles.xmlsec;start-order:=24, - org.apache.ws.xmlschema.core;start-order:=25, - org.apache.servicemix.bundles.asm;start-order:=26, - org.apache.servicemix.bundles.xmlresolver;start-order:=27, - org.apache.neethi;start-order:=28, - stax2-api;start-order:=29, - woodstox-core-asl;start-order:=30, - org.apache.servicemix.bundles.commons-pool;start-order:=31, - org.apache.servicemix.specs.saaj-api-1.3;start-order:=32, - org.apache.servicemix.specs.stax-api-1.0;start-order:=33, - org.apache.servicemix.specs.jaxb-api-2.1;start-order:=34, - org.apache.servicemix.specs.jaxws-api-2.1;start-order:=35, - org.apache.servicemix.specs.jsr311-api-1.1.1;start-order:=36, - org.apache.servicemix.bundles.joda-time;start-order:=37, - org.apache.servicemix.bundles.opensaml;start-order:=38, - org.apache.cxf.bundle-minimal;start-order:=39, - cxf-dosgi-ri-discovery-local;start-order:=40, - osgi.enterprise;start-order:=41, - cxf-dosgi-ri-dsw-cxf;start-order:=42, - cxf-dosgi-ri-topology-manager;start-order:=43 -Subsystem-Type: osgi.subsystem.feature http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/pom.xml ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/pom.xml b/dsw/cxf-dosgi-provider-api/pom.xml deleted file mode 100644 index 0deab6c..0000000 --- a/dsw/cxf-dosgi-provider-api/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ -<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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-parent</artifactId> - <version>1.8-SNAPSHOT</version> - <relativePath>../../parent/pom.xml</relativePath> - </parent> - <artifactId>cxf-dosgi-ri-provider-api</artifactId> - <packaging>bundle</packaging> - <name>Distributed OSGI Distributed Software Modules</name> - - <properties> - <topDirectoryLocation>../..</topDirectoryLocation> - </properties> - - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.compendium</artifactId> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.easymock</groupId> - <artifactId>easymockclassextension</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-jdk14</artifactId> - <version>1.7.14</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <instructions> - <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> - </instructions> - </configuration> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java deleted file mode 100644 index d7c648b..0000000 --- a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/DistributionProvider.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 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.dsw.api; - -import java.util.Map; - -import org.osgi.framework.BundleContext; -import org.osgi.service.remoteserviceadmin.EndpointDescription; - -@SuppressWarnings("rawtypes") -public interface DistributionProvider { - - String[] getSupportedTypes(); - - /** - * @param serviceO service instance to be exported - * @param serviceContext bundle context of the bundle exporting the sevice - * @param effectiveProperties combined properties of the service and additional properties from rsa - * @param exportedInterfaces name of the interface to be exported - * @return Endpoint that represents the service that is exposed to the outside world - */ - Endpoint exportService(Object serviceO, - BundleContext serviceContext, - Map<String, Object> effectiveProperties, - Class[] exportedInterfaces); - - /** - * @param cl classloader of the consumer bundle - * @param consumerContext bundle context of the consumer bundle - * @param interfaces interfaces of the service to proxy - * @param endpoint description of the remote endpoint - * @return service proxy to be given to the requesting bundle - * @throws IntentUnsatisfiedException - */ - Object importEndpoint(ClassLoader cl, - BundleContext consumerContext, - Class[] interfaces, - EndpointDescription endpoint) - throws IntentUnsatisfiedException; -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java deleted file mode 100644 index f45b562..0000000 --- a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/Endpoint.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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.dsw.api; - -import java.io.Closeable; - -import org.osgi.service.remoteserviceadmin.EndpointDescription; - -public interface Endpoint extends Closeable { - EndpointDescription description(); -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java deleted file mode 100644 index cdc66ad..0000000 --- a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/EndpointHelper.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * 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.dsw.api; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public final class EndpointHelper { - - private EndpointHelper() { - } - - public static void addObjectClass(Map<String, Object> props, Class<?>[] interfaces) { - props.put(org.osgi.framework.Constants.OBJECTCLASS, getClassNames(interfaces)); - } - - public static String[] getClassNames(Class<?>[] ifaces) { - List<String> ifaceNames = new ArrayList<String>(); - for (Class<?> iface : ifaces) { - ifaceNames.add(iface.getName()); - } - return ifaceNames.toArray(new String[]{}); - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java deleted file mode 100644 index 9e82c04..0000000 --- a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/ExportPolicy.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * 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.dsw.api; - -import java.util.Map; - -import org.osgi.framework.ServiceReference; - - -/** - * SPI for TopologyManagerExport. Allows to export services that are - * not marked for export as well customize the way services are exported. - * - * Use cases: - * - Mandate SSL and basic authoriziation by adding the respective intents and configs - * - Add logging interceptor as intent - * - Remove exported interfaces to filter out services - */ -public interface ExportPolicy { - /** - * Allows to supply additional properties for a service that are then - * given to RemoteServiceAdmin. The service will be exported - * if the original service or the additional properties contain the - * non empty property service.exported.interfaces. - * - * @param service to export - * @return additional properties for exported Service (must not be null) - */ - Map<String, ?> additionalParameters(ServiceReference<?> sref); -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java b/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java deleted file mode 100644 index 4e27938..0000000 --- a/dsw/cxf-dosgi-provider-api/src/main/java/org/apache/cxf/dosgi/dsw/api/IntentUnsatisfiedException.java +++ /dev/null @@ -1,35 +0,0 @@ -/** - * 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.dsw.api; - -public class IntentUnsatisfiedException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - private final String intent; - - public IntentUnsatisfiedException(String intent) { - super(intent); - this.intent = intent; - } - - public String getIntent() { - return intent; - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/pom.xml ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/pom.xml b/dsw/cxf-dosgi-rsa/pom.xml deleted file mode 100644 index b96828b..0000000 --- a/dsw/cxf-dosgi-rsa/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ -<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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-parent</artifactId> - <version>1.8-SNAPSHOT</version> - <relativePath>../../parent/pom.xml</relativePath> - </parent> - <artifactId>cxf-dosgi-ri-rsa</artifactId> - <packaging>bundle</packaging> - <name>CXF dOSGi Remote Service Admin Implementation</name> - <description>The CXF Remote Service Admin as described in the OSGi Remote Service Admin specification</description> - - <properties> - <topDirectoryLocation>../..</topDirectoryLocation> - </properties> - - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.compendium</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.apache.cxf.dosgi</groupId> - <artifactId>cxf-dosgi-ri-provider-api</artifactId> - <version>${project.version}</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.easymock</groupId> - <artifactId>easymockclassextension</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-jdk14</artifactId> - <version>1.7.14</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <instructions> - <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> - <Bundle-Activator>org.apache.cxf.dosgi.dsw.service.Activator</Bundle-Activator> - </instructions> - </configuration> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java deleted file mode 100644 index 4c4d7ad..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/Activator.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * 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.dsw.service; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - -public class Activator implements BundleActivator { - - private DistributionProviderTracker tracker; - - public void start(BundleContext bundlecontext) throws Exception { - tracker = new DistributionProviderTracker(bundlecontext); - tracker.open(); - } - - public void stop(BundleContext context) throws Exception { - tracker.close(); - } - -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java deleted file mode 100644 index 7c292db..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ClientServiceFactory.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * 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.dsw.service; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.apache.cxf.dosgi.dsw.api.DistributionProvider; -import org.apache.cxf.dosgi.dsw.api.IntentUnsatisfiedException; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceFactory; -import org.osgi.framework.ServiceRegistration; -import org.osgi.framework.wiring.BundleWiring; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("rawtypes") -public class ClientServiceFactory implements ServiceFactory { - - private static final Logger LOG = LoggerFactory.getLogger(ClientServiceFactory.class); - - private EndpointDescription endpoint; - private DistributionProvider handler; - private ImportRegistrationImpl importRegistration; - - private boolean closeable; - private int serviceCounter; - - public ClientServiceFactory(EndpointDescription endpoint, - DistributionProvider handler, ImportRegistrationImpl ir) { - this.endpoint = endpoint; - this.handler = handler; - this.importRegistration = ir; - } - - public Object getService(final Bundle requestingBundle, final ServiceRegistration sreg) { - List<String> interfaceNames = endpoint.getInterfaces(); - final BundleContext consumerContext = requestingBundle.getBundleContext(); - final ClassLoader consumerLoader = requestingBundle.adapt(BundleWiring.class).getClassLoader(); - try { - LOG.debug("getService() from serviceFactory for {}", interfaceNames); - final List<Class<?>> interfaces = new ArrayList<Class<?>>(); - for (String ifaceName : interfaceNames) { - interfaces.add(consumerLoader.loadClass(ifaceName)); - } - Object proxy = AccessController.doPrivileged(new PrivilegedAction<Object>() { - public Object run() { - Class<?>[] ifAr = interfaces.toArray(new Class[]{}); - return handler.importEndpoint(consumerLoader, consumerContext, ifAr, endpoint); - } - }); - - synchronized (this) { - serviceCounter++; - } - return proxy; - } catch (IntentUnsatisfiedException iue) { - LOG.info("Did not create proxy for {} because intent {} could not be satisfied", - interfaceNames, iue.getIntent()); - } catch (Exception e) { - LOG.warn("Problem creating a remote proxy for {}", interfaceNames, e); - } - return null; - } - - public void ungetService(Bundle requestingBundle, ServiceRegistration sreg, Object serviceObject) { - String[] interfaces = (String[])sreg.getReference().getProperty(org.osgi.framework.Constants.OBJECTCLASS); - LOG.info("Releasing a client object, interfaces: {}", Arrays.toString(interfaces)); - - synchronized (this) { - serviceCounter--; - LOG.debug("Services still provided by this ServiceFactory: {}", serviceCounter); - closeIfUnused(); - } - } - - public void setCloseable(boolean closeable) { - synchronized (this) { - this.closeable = closeable; - closeIfUnused(); - } - } - - private synchronized void closeIfUnused() { - if (serviceCounter <= 0 && closeable) { - importRegistration.closeAll(); - } - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java deleted file mode 100644 index 675fcc6..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/DistributionProviderTracker.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * 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.dsw.service; - -import java.util.Dictionary; -import java.util.Hashtable; - -import org.apache.cxf.dosgi.dsw.api.DistributionProvider; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.ServiceRegistration; -import org.osgi.service.remoteserviceadmin.RemoteServiceAdmin; -import org.osgi.util.tracker.ServiceTracker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("rawtypes") -public class DistributionProviderTracker extends ServiceTracker<DistributionProvider, ServiceRegistration> { - private static final Logger LOG = LoggerFactory.getLogger(Activator.class); - - public DistributionProviderTracker(BundleContext context) { - super(context, DistributionProvider.class, null); - } - - @Override - public ServiceRegistration addingService(ServiceReference<DistributionProvider> reference) { - LOG.debug("RemoteServiceAdmin Implementation is starting up"); - DistributionProvider provider = context.getService(reference); - BundleContext apiContext = getAPIContext(); - RemoteServiceAdminCore rsaCore = new RemoteServiceAdminCore(context, - apiContext, - provider); - RemoteServiceadminFactory rsaf = new RemoteServiceadminFactory(rsaCore); - Dictionary<String, Object> props = new Hashtable<String, Object>(); - props.put("remote.intents.supported", reference.getProperty("remote.intents.supported")); - props.put("remote.configs.supported", reference.getProperty("remote.configs.supported")); - LOG.info("Registering RemoteServiceAdmin for provider " + provider.getClass().getName()); - return context.registerService(RemoteServiceAdmin.class.getName(), rsaf, props); - } - - protected BundleContext getAPIContext() { - Bundle apiBundle = FrameworkUtil.getBundle(DistributionProvider.class); - BundleContext apiContext = apiBundle.getBundleContext(); - return apiContext; - } - - @Override - public void removedService(ServiceReference<DistributionProvider> reference, - ServiceRegistration reg) { - LOG.debug("RemoteServiceAdmin Implementation is shutting down now"); - reg.unregister(); - super.removedService(reference, reg); - } - -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java deleted file mode 100644 index 4868efa..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventAdminHelper.java +++ /dev/null @@ -1,151 +0,0 @@ -/** - * 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.dsw.service; - -import java.util.HashMap; -import java.util.Map; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.Version; -import org.osgi.service.event.Event; -import org.osgi.service.event.EventAdmin; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class EventAdminHelper { - - private static final Logger LOG = LoggerFactory.getLogger(EventAdminHelper.class); - - private BundleContext bctx; - - public EventAdminHelper(BundleContext bc) { - bctx = bc; - } - - private Event createEvent(Map<String, Object> props, String type) { - String topic = "org/osgi/service/remoteserviceadmin/" + type; - props.put("bundle", bctx.getBundle()); - props.put("bundle.id", bctx.getBundle().getBundleId()); - props.put("bundle.symbolicname", bctx.getBundle().getSymbolicName()); - - String version = (String)bctx.getBundle().getHeaders().get("Bundle-Version"); - Version v = version != null ? new Version(version) : Version.emptyVersion; - setIfNotNull(props, "bundle.version", v); - - return new Event(topic, props); - } - - public void notifyEventAdmin(RemoteServiceAdminEvent rsae) { - String topic = remoteServiceAdminEventTypeToString(rsae.getType()); - - Map<String, Object> props = new HashMap<String, Object>(); - setIfNotNull(props, "cause", rsae.getException()); - - EndpointDescription endpoint = null; - if (rsae.getImportReference() != null) { - endpoint = ((ImportRegistrationImpl)rsae.getImportReference()).getImportedEndpointAlways(); - setIfNotNull(props, "import.registration", endpoint); - } else if (rsae.getExportReference() != null) { - endpoint = rsae.getExportReference().getExportedEndpoint(); - setIfNotNull(props, "export.registration", endpoint); - } - - if (endpoint != null) { - setIfNotNull(props, "service.remote.id", endpoint.getServiceId()); - setIfNotNull(props, "service.remote.uuid", endpoint.getFrameworkUUID()); - setIfNotNull(props, "service.remote.uri", endpoint.getId()); - setIfNotNull(props, "objectClass", endpoint.getInterfaces().toArray()); - setIfNotNull(props, "service.imported.configs", endpoint.getConfigurationTypes()); - } - props.put("timestamp", System.currentTimeMillis()); - props.put("event", rsae); - - Event event = createEvent(props, topic); - notifyEventAdmins(topic, event); - } - - @SuppressWarnings({ - "rawtypes", "unchecked" - }) - private void notifyEventAdmins(String topic, Event event) { - ServiceReference[] refs = null; - try { - refs = bctx.getAllServiceReferences(EventAdmin.class.getName(), null); - } catch (InvalidSyntaxException e) { - LOG.error("Failed to get EventAdmin: " + e.getMessage(), e); - } - - if (refs != null) { - LOG.debug("Publishing event to {} EventAdmins; Topic:[{}]", refs.length, topic); - for (ServiceReference serviceReference : refs) { - EventAdmin eventAdmin = (EventAdmin) bctx.getService(serviceReference); - try { - eventAdmin.postEvent(event); - } finally { - if (eventAdmin != null) { - bctx.ungetService(serviceReference); - } - } - } - } - } - - private <K, V> void setIfNotNull(Map<K, V> map, K key, V val) { - if (val != null) { - map.put(key, val); - } - } - - private static String remoteServiceAdminEventTypeToString(int type) { - String retval; - switch (type) { - case RemoteServiceAdminEvent.EXPORT_ERROR: - retval = "EXPORT_ERROR"; - break; - case RemoteServiceAdminEvent.EXPORT_REGISTRATION: - retval = "EXPORT_REGISTRATION"; - break; - case RemoteServiceAdminEvent.EXPORT_UNREGISTRATION: - retval = "EXPORT_UNREGISTRATION"; - break; - case RemoteServiceAdminEvent.EXPORT_WARNING: - retval = "EXPORT_WARNING"; - break; - case RemoteServiceAdminEvent.IMPORT_ERROR: - retval = "IMPORT_ERROR"; - break; - case RemoteServiceAdminEvent.IMPORT_REGISTRATION: - retval = "IMPORT_REGISTRATION"; - break; - case RemoteServiceAdminEvent.IMPORT_UNREGISTRATION: - retval = "IMPORT_UNREGISTRATION"; - break; - case RemoteServiceAdminEvent.IMPORT_WARNING: - retval = "IMPORT_WARNING"; - break; - default: - retval = "UNKNOWN_EVENT"; - } - return retval; - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java deleted file mode 100644 index 26a46ab..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/EventProducer.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * 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.dsw.service; - -import java.util.List; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.InvalidSyntaxException; -import org.osgi.framework.ServiceReference; -import org.osgi.service.remoteserviceadmin.ExportRegistration; -import org.osgi.service.remoteserviceadmin.ImportRegistration; -import org.osgi.service.remoteserviceadmin.RemoteServiceAdminEvent; -import org.osgi.service.remoteserviceadmin.RemoteServiceAdminListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class EventProducer { - - private static final Logger LOG = LoggerFactory.getLogger(EventProducer.class); - private final BundleContext bctx; - private final EventAdminHelper eaHelper; - - public EventProducer(BundleContext bc) { - bctx = bc; - eaHelper = new EventAdminHelper(bctx); - } - - protected void publishNotification(List<ExportRegistration> erl) { - for (ExportRegistration exportRegistration : erl) { - publishNotification(exportRegistration); - } - } - - protected void publishNotification(ExportRegistration er) { - int type = er.getException() == null - ? RemoteServiceAdminEvent.EXPORT_REGISTRATION - : RemoteServiceAdminEvent.EXPORT_ERROR; - notify(type, null, er); - } - - protected void publishNotification(ImportRegistration ir) { - int type = ir.getException() == null - ? RemoteServiceAdminEvent.IMPORT_REGISTRATION - : RemoteServiceAdminEvent.IMPORT_ERROR; - notify(type, ir, null); - } - - public void notifyRemoval(ExportRegistration er) { - notify(RemoteServiceAdminEvent.EXPORT_UNREGISTRATION, null, er); - } - - public void notifyRemoval(ImportRegistration ir) { - notify(RemoteServiceAdminEvent.IMPORT_UNREGISTRATION, ir, null); - } - - // only one of ir or er must be set, and the other must be null - private void notify(int type, ImportRegistration ir, ExportRegistration er) { - try { - RemoteServiceAdminEvent event = ir != null - ? new RemoteServiceAdminEvent(type, bctx.getBundle(), ir.getImportReference(), ir.getException()) - : new RemoteServiceAdminEvent(type, bctx.getBundle(), er.getExportReference(), er.getException()); - notifyListeners(event); - eaHelper.notifyEventAdmin(event); - } catch (IllegalStateException ise) { - LOG.debug("can't send notifications since bundle context is no longer valid"); - } - } - - @SuppressWarnings({ - "rawtypes", "unchecked" - }) - private void notifyListeners(RemoteServiceAdminEvent rsae) { - try { - ServiceReference[] listenerRefs = bctx.getServiceReferences( - RemoteServiceAdminListener.class.getName(), null); - if (listenerRefs != null) { - for (ServiceReference sref : listenerRefs) { - RemoteServiceAdminListener rsal = (RemoteServiceAdminListener)bctx.getService(sref); - if (rsal != null) { - try { - Bundle bundle = sref.getBundle(); - if (bundle != null) { - LOG.debug("notify RemoteServiceAdminListener {} of bundle {}", - rsal, bundle.getSymbolicName()); - rsal.remoteAdminEvent(rsae); - } - } finally { - bctx.ungetService(sref); - } - } - } - } - } catch (InvalidSyntaxException e) { - LOG.error(e.getMessage(), e); - } - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java deleted file mode 100644 index 497aa9c..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportReferenceImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * 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.dsw.service; - -import org.osgi.framework.ServiceReference; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.ExportReference; - -@SuppressWarnings("rawtypes") -public class ExportReferenceImpl implements ExportReference { - - private ServiceReference serviceReference; - private EndpointDescription endpoint; - - public ExportReferenceImpl(ServiceReference serviceReference, EndpointDescription endpoint) { - this.serviceReference = serviceReference; - this.endpoint = endpoint; - } - - public ExportReferenceImpl(ExportReference exportReference) { - this(exportReference.getExportedService(), exportReference.getExportedEndpoint()); - } - - public EndpointDescription getExportedEndpoint() { - return endpoint; - } - - public ServiceReference getExportedService() { - return serviceReference; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (endpoint == null ? 0 : endpoint.hashCode()); - result = prime * result + (serviceReference == null ? 0 : serviceReference.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null || getClass() != obj.getClass()) { - return false; - } - ExportReferenceImpl other = (ExportReferenceImpl) obj; - boolean ed = endpoint == null ? other.endpoint == null - : endpoint.equals(other.endpoint); - boolean sr = serviceReference == null ? other.serviceReference == null - : serviceReference.equals(other.serviceReference); - return ed && sr; - } - - synchronized void close() { - this.endpoint = null; - this.serviceReference = null; - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java deleted file mode 100644 index d80bd40..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ExportRegistrationImpl.java +++ /dev/null @@ -1,152 +0,0 @@ -/** - * 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.dsw.service; - -import java.io.Closeable; -import java.io.IOException; -import java.util.Arrays; -import java.util.Map; -import java.util.Set; - -import org.apache.cxf.dosgi.dsw.api.Endpoint; -import org.osgi.framework.ServiceReference; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.ExportReference; -import org.osgi.service.remoteserviceadmin.ExportRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("rawtypes") -public class ExportRegistrationImpl implements ExportRegistration { - - private static final Logger LOG = LoggerFactory.getLogger(ExportRegistrationImpl.class); - - private final RemoteServiceAdminCore rsaCore; - private final ExportReferenceImpl exportReference; - private final Closeable server; - private final Throwable exception; - - private final ExportRegistrationImpl parent; - private int instanceCount; - private volatile boolean closed; - - private ExportRegistrationImpl(ExportRegistrationImpl parent, RemoteServiceAdminCore rsaCore, - ExportReferenceImpl exportReference, Closeable server, Throwable exception) { - this.parent = parent != null ? parent.parent : this; // a parent points to itself - this.parent.addInstance(); - this.rsaCore = rsaCore; - this.exportReference = exportReference; - this.server = server; - this.exception = exception; - } - - // create a clone of the provided ExportRegistrationImpl that is linked to it - public ExportRegistrationImpl(ExportRegistrationImpl parent) { - this(parent, parent.rsaCore, new ExportReferenceImpl(parent.exportReference), - parent.server, parent.exception); - } - - // create a new (parent) instance which was exported successfully with the given server - public ExportRegistrationImpl(ServiceReference sref, Endpoint endpoint, RemoteServiceAdminCore rsaCore) { - this(null, rsaCore, new ExportReferenceImpl(sref, endpoint.description()), endpoint, null); - } - - // create a new (parent) instance which failed to be exported with the given exception - public ExportRegistrationImpl(RemoteServiceAdminCore rsaCore, Throwable exception) { - this(null, rsaCore, null, null, exception); - } - - private void ensureParent() { - if (parent != this) { - throw new IllegalStateException("this method may only be called on the parent"); - } - } - - public ExportReference getExportReference() { - if (exportReference == null) { - throw new IllegalStateException(getException()); - } - return closed ? null : exportReference; - } - - public Throwable getException() { - return closed ? null : exception; - } - - public final void close() { - synchronized (this) { - if (closed) { - return; - } - closed = true; - } - - rsaCore.removeExportRegistration(this); - exportReference.close(); - parent.removeInstance(); - } - - private void addInstance() { - ensureParent(); - synchronized (this) { - instanceCount++; - } - } - - private void removeInstance() { - ensureParent(); - synchronized (this) { - instanceCount--; - if (instanceCount <= 0) { - LOG.debug("really closing ExportRegistration now!"); - - if (server != null) { - try { - server.close(); - } catch (IOException e) { - LOG.warn("Error closing ExportRegistration", e); - } - } - } - } - } - - @Override - public String toString() { - if (closed) { - return "ExportRegistration closed"; - } - EndpointDescription endpoint = getExportReference().getExportedEndpoint(); - ServiceReference serviceReference = getExportReference().getExportedService(); - String r = "EndpointDescription for ServiceReference " + serviceReference; - - r += "\n*** EndpointDescription: ****\n"; - if (endpoint == null) { - r += "---> NULL <---- \n"; - } else { - Set<Map.Entry<String, Object>> props = endpoint.getProperties().entrySet(); - for (Map.Entry<String, Object> entry : props) { - Object value = entry.getValue(); - r += entry.getKey() + " => " - + (value instanceof Object[] ? Arrays.toString((Object[]) value) : value) + "\n"; - } - } - return r; - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java deleted file mode 100644 index 2b896db..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/ImportRegistrationImpl.java +++ /dev/null @@ -1,230 +0,0 @@ -/** - * 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.dsw.service; - -import java.util.ArrayList; -import java.util.List; - -import org.osgi.framework.ServiceReference; -import org.osgi.framework.ServiceRegistration; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.ImportReference; -import org.osgi.service.remoteserviceadmin.ImportRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("rawtypes") -public class ImportRegistrationImpl implements ImportRegistration, ImportReference { - - private static final Logger LOG = LoggerFactory.getLogger(ImportRegistrationImpl.class); - - private volatile Throwable exception; - private volatile ServiceRegistration importedService; // used only in parent - private EndpointDescription endpoint; - private volatile ClientServiceFactory clientServiceFactory; - private RemoteServiceAdminCore rsaCore; - private boolean closed; - private boolean detached; // used only in parent - - private ImportRegistrationImpl parent; - private List<ImportRegistrationImpl> children; // used only in parent - - public ImportRegistrationImpl(Throwable ex) { - exception = ex; - initParent(); - } - - public ImportRegistrationImpl(EndpointDescription endpoint, RemoteServiceAdminCore rsac) { - this.endpoint = endpoint; - this.rsaCore = rsac; - initParent(); - } - - /** - * Creates a clone of the given parent instance. - */ - public ImportRegistrationImpl(ImportRegistrationImpl ir) { - // we always want a link to the parent... - parent = ir.getParent(); - exception = parent.getException(); - endpoint = parent.getImportedEndpointDescription(); - clientServiceFactory = parent.clientServiceFactory; - rsaCore = parent.rsaCore; - - parent.instanceAdded(this); - } - - private void initParent() { - parent = this; - children = new ArrayList<ImportRegistrationImpl>(1); - } - - private void ensureParent() { - if (parent != this) { - throw new IllegalStateException("this method may only be called on the parent"); - } - } - - /** - * Called on parent when a child is added. - * - * @param iri the child - */ - private synchronized void instanceAdded(ImportRegistrationImpl iri) { - ensureParent(); - children.add(iri); - } - - /** - * Called on parent when a child is closed. - * - * @param iri the child - */ - private void instanceClosed(ImportRegistrationImpl iri) { - ensureParent(); - synchronized (this) { - children.remove(iri); - if (!children.isEmpty() || detached || !closed) { - return; - } - detached = true; - } - - LOG.debug("really closing ImportRegistration now"); - - if (importedService != null) { - try { - importedService.unregister(); - } catch (IllegalStateException ise) { - LOG.debug("imported service is already unregistered"); - } - importedService = null; - } - if (clientServiceFactory != null) { - clientServiceFactory.setCloseable(true); - } - } - - public void close() { - LOG.debug("close() called"); - - synchronized (this) { - if (isInvalid()) { - return; - } - closed = true; - } - rsaCore.removeImportRegistration(this); - parent.instanceClosed(this); - } - - /** - * Closes all ImportRegistrations which share the same parent as this one. - */ - public void closeAll() { - if (this == parent) { - LOG.info("closing down all child ImportRegistrations"); - - // we must iterate over a copy of children since close() removes the child - // from the list (which would cause a ConcurrentModificationException) - for (ImportRegistrationImpl ir : copyChildren()) { - ir.close(); - } - this.close(); - } else { - parent.closeAll(); - } - } - - private List<ImportRegistrationImpl> copyChildren() { - synchronized (this) { - return new ArrayList<ImportRegistrationImpl>(children); - } - } - - public EndpointDescription getImportedEndpointDescription() { - return isInvalid() ? null : endpoint; - } - - @Override - public EndpointDescription getImportedEndpoint() { - return getImportedEndpointDescription(); - } - - @Override - public ServiceReference getImportedService() { - return isInvalid() || parent.importedService == null ? null : parent.importedService.getReference(); - } - - @Override - public ImportReference getImportReference() { - return this; - } - - @Override - public Throwable getException() { - return exception; - } - - public void setException(Throwable ex) { - exception = ex; - } - - private synchronized boolean isInvalid() { - return exception != null || closed; - } - - /** - * Sets the {@link ServiceRegistration} representing the locally - * registered {@link ClientServiceFactory} service which provides - * proxies to the remote imported service. It is set only on the parent. - * - * @param sreg the ServiceRegistration - */ - public void setImportedServiceRegistration(ServiceRegistration sreg) { - ensureParent(); - importedService = sreg; - } - - /** - * Sets the {@link ClientServiceFactory} which is the implementation - * of the locally registered service which provides proxies to the - * remote imported service. It is set only on the parent. - * - * @param csf the ClientServiceFactory - */ - public void setClientServiceFactory(ClientServiceFactory csf) { - ensureParent(); - clientServiceFactory = csf; - } - - public ImportRegistrationImpl getParent() { - return parent; - } - - /** - * Returns the imported endpoint even if this - * instance is closed or has an exception. - * - * @return the imported endpoint - */ - public EndpointDescription getImportedEndpointAlways() { - return endpoint; - } -} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d73a3a7f/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java ---------------------------------------------------------------------- diff --git a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java b/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java deleted file mode 100644 index effcef1..0000000 --- a/dsw/cxf-dosgi-rsa/src/main/java/org/apache/cxf/dosgi/dsw/service/PackageUtil.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * 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.dsw.service; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.service.packageadmin.ExportedPackage; -import org.osgi.service.packageadmin.PackageAdmin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@SuppressWarnings("deprecation") -public final class PackageUtil { - - public static final Logger LOG = LoggerFactory.getLogger(PackageUtil.class); - - private PackageUtil() { - } - - /** - * Tries to retrieve the version of iClass via the PackageAdmin. - * - * @param iClass tThe interface for which the version should be found - * @param bc any valid BundleContext - * @return the version of the interface or "0.0.0" if no version information could be found or an error - * occurred during the retrieval - */ - public static String getVersion(Class<?> iClass, BundleContext bc) { - ServiceReference<PackageAdmin> paRef = bc.getServiceReference(PackageAdmin.class); - if (paRef != null) { - PackageAdmin pa = bc.getService(paRef); - try { - Bundle b = pa.getBundle(iClass); - if (b == null) { - LOG.info("Unable to find interface version for interface " + iClass.getName() - + ". Falling back to 0.0.0"); - return "0.0.0"; - } - LOG.debug("Interface source bundle: {}", b.getSymbolicName()); - - ExportedPackage[] ep = pa.getExportedPackages(b); - LOG.debug("Exported Packages of the source bundle: {}", (Object)ep); - - String pack = iClass.getPackage().getName(); - LOG.debug("Looking for Package: {}", pack); - if (ep != null) { - for (ExportedPackage p : ep) { - if (p != null - && pack.equals(p.getName())) { - LOG.debug("found package -> Version: {}", p.getVersion()); - return p.getVersion().toString(); - } - } - } - } finally { - if (pa != null) { - bc.ungetService(paRef); - } - } - } else { - LOG.error("Was unable to obtain the package admin service -> can't resolve interface versions"); - } - - LOG.info("Unable to find interface version for interface " + iClass.getName() - + ". Falling back to 0.0.0"); - return "0.0.0"; - } -}
