cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cschnei...@apache.org
Subject [06/15] cxf-dosgi git commit: [DOSGI-232] Remove code that moved to Aries-rsa and refer to it instead
Date Fri, 11 Mar 2016 22:53:53 GMT
http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/pom.xml
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/pom.xml b/dsw/cxf-dosgi-tcp/pom.xml
deleted file mode 100644
index 8e40ee1..0000000
--- a/dsw/cxf-dosgi-tcp/pom.xml
+++ /dev/null
@@ -1,72 +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-tcp</artifactId>
-    <packaging>bundle</packaging>
-    <name>CXF dOSGi Remote Service Admin TCP provider</name>
-    <description>Provider for Java Serialization over TCP</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.aries.rsa.provider.tcp.Activator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/Activator.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/Activator.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/Activator.java
deleted file mode 100644
index 128c3d8..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/Activator.java
+++ /dev/null
@@ -1,45 +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.aries.rsa.provider.tcp;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public class Activator implements BundleActivator {
-
-    @Override
-    public void start(BundleContext context) throws Exception {
-        DistributionProvider provider = new TCPProvider();
-        Dictionary<String, Object> props = new Hashtable<>();
-        props.put(RemoteConstants.REMOTE_INTENTS_SUPPORTED, new String[]{});
-        props.put(RemoteConstants.REMOTE_CONFIGS_SUPPORTED, provider.getSupportedTypes());
-        context.registerService(DistributionProvider.class, provider, props);
-    }
-
-    @Override
-    public void stop(BundleContext context) throws Exception {
-        // unregister happens automatically
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LoaderObjectInputStream.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LoaderObjectInputStream.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LoaderObjectInputStream.java
deleted file mode 100644
index ac60950..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LoaderObjectInputStream.java
+++ /dev/null
@@ -1,43 +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.aries.rsa.provider.tcp;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamClass;
-
-public class LoaderObjectInputStream extends ObjectInputStream {
-
-    private ClassLoader loader;
-
-    public LoaderObjectInputStream(InputStream in, ClassLoader loader) throws IOException {
-        super(in);
-        this.loader = loader;
-    }
-
-    @Override
-    protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
-        try {
-            return loader.loadClass(desc.getName());
-        } catch (ClassNotFoundException e) {
-            return super.resolveClass(desc);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LocalHostUtil.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LocalHostUtil.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LocalHostUtil.java
deleted file mode 100644
index 3f40bd8..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/LocalHostUtil.java
+++ /dev/null
@@ -1,92 +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.aries.rsa.provider.tcp;
-
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-/**
- * Utility methods to get the local address even on a linux host.
- */
-public final class LocalHostUtil {
-
-    private LocalHostUtil() {
-        // Util Class
-    }
-
-    /**
-     * Returns an InetAddress representing the address of the localhost. Every
-     * attempt is made to find an address for this host that is not the loopback
-     * address. If no other address can be found, the loopback will be returned.
-     *
-     * @return InetAddress the address of localhost
-     * @throws UnknownHostException if there is a problem determining the address
-     */
-    public static InetAddress getLocalHost() throws UnknownHostException {
-        InetAddress localHost = InetAddress.getLocalHost();
-        if (!localHost.isLoopbackAddress()) {
-            return localHost;
-        }
-        InetAddress[] addrs = getAllLocalUsingNetworkInterface();
-        for (InetAddress addr : addrs) {
-            if (!addr.isLoopbackAddress() && !addr.getHostAddress().contains(":")) {
-                return addr;
-            }
-        }
-        return localHost;
-    }
-
-    /**
-     * Utility method that delegates to the methods of NetworkInterface to
-     * determine addresses for this machine.
-     *
-     * @return all addresses found from the NetworkInterfaces
-     * @throws UnknownHostException if there is a problem determining addresses
-     */
-    private static InetAddress[] getAllLocalUsingNetworkInterface() throws UnknownHostException {
-        try {
-            List<InetAddress> addresses = new ArrayList<InetAddress>();
-            Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
-            while (e.hasMoreElements()) {
-                NetworkInterface ni = e.nextElement();
-                for (Enumeration<InetAddress> e2 = ni.getInetAddresses(); e2.hasMoreElements();) {
-                    addresses.add(e2.nextElement());
-                }
-            }
-            return addresses.toArray(new InetAddress[] {});
-        } catch (SocketException ex) {
-            throw new UnknownHostException("127.0.0.1");
-        }
-    }
-
-    public static String getLocalIp() {
-        String localIP;
-        try {
-            localIP = getLocalHost().getHostAddress();
-        } catch (Exception e) {
-            localIP = "localhost";
-        }
-        return localIP;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPProvider.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPProvider.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPProvider.java
deleted file mode 100644
index 07c5a05..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPProvider.java
+++ /dev/null
@@ -1,67 +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.aries.rsa.provider.tcp;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
-import java.net.URI;
-import java.util.Map;
-
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.apache.cxf.dosgi.dsw.api.Endpoint;
-import org.apache.cxf.dosgi.dsw.api.IntentUnsatisfiedException;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-@SuppressWarnings("rawtypes")
-public class TCPProvider implements DistributionProvider {
-
-    private static final String TCP_CONFIG_TYPE = "aries.tcp";
-
-    @Override
-    public String[] getSupportedTypes() {
-        return new String[] {TCP_CONFIG_TYPE};
-    }
-
-    @Override
-    public Endpoint exportService(Object serviceO, 
-                                  BundleContext serviceContext,
-                                  Map<String, Object> effectiveProperties,
-                                  Class[] exportedInterfaces) {
-        effectiveProperties.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, getSupportedTypes());
-        return new TcpEndpoint(serviceO, effectiveProperties);
-    }
-
-    @Override
-    public Object importEndpoint(ClassLoader cl, 
-                                 BundleContext consumerContext, 
-                                 Class[] interfaces,
-                                 EndpointDescription endpoint)
-        throws IntentUnsatisfiedException {
-        try {
-            URI address = new URI(endpoint.getId());
-            InvocationHandler handler = new TcpInvocationHandler(cl, address.getHost(), address.getPort());
-            return Proxy.newProxyInstance(cl, interfaces, handler);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPServer.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPServer.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPServer.java
deleted file mode 100644
index e70731d..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPServer.java
+++ /dev/null
@@ -1,118 +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.aries.rsa.provider.tcp;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TCPServer implements Closeable, Runnable {
-    private Logger log = LoggerFactory.getLogger(TCPServer.class);
-    private ServerSocket serverSocket;
-    private Object service;
-    private boolean running;
-    private ExecutorService executor;
-
-    public TCPServer(Object service, String localip, Integer port, int numThreads) {
-        this.service = service;
-        try {
-            this.serverSocket = new ServerSocket(port);
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-        this.running = true;
-        this.executor = Executors.newCachedThreadPool();
-        for (int c = 0; c < numThreads; c++) {
-            this.executor.execute(this);
-        }
-    }
-    
-    int getPort() {
-        return this.serverSocket.getLocalPort();
-    }
-
-    public void run() {
-        ClassLoader serviceCL = service.getClass().getClassLoader();
-        while (running) {
-            try (
-                Socket socket = this.serverSocket.accept();
-                ObjectInputStream ois = new LoaderObjectInputStream(socket.getInputStream(), serviceCL);
-                ObjectOutputStream objectOutput = new ObjectOutputStream(socket.getOutputStream())
-                ) {
-                String methodName = (String)ois.readObject();
-                Object[] args = (Object[])ois.readObject();
-                Object result = invoke(methodName, args);
-                objectOutput.writeObject(result);
-            } catch (SocketException e) {
-                running = false;
-            } catch (Exception e) {
-                log.warn("Error processing service call.", e);
-            }
-        }
-    }
-
-    private Object invoke(String methodName, Object[] args)
-        throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
-        Class<?>[] parameterTypesAr = getTypes(args);
-        Method method = service.getClass().getMethod(methodName, parameterTypesAr);
-        try {
-            return method.invoke(service, args);
-        } catch (Throwable e) {
-            return e;
-        }
-    }
-
-    private Class<?>[] getTypes(Object[] args) {
-        List<Class<?>> parameterTypes = new ArrayList<>();
-        if (args != null) {
-            for (Object arg : args) {
-                parameterTypes.add(arg.getClass());
-            }
-        }
-        Class<?>[] parameterTypesAr = parameterTypes.toArray(new Class[]{});
-        return parameterTypesAr;
-    }
-
-    @Override
-    public void close() throws IOException {
-        this.serverSocket.close();
-        this.running = false;
-        this.executor.shutdown();
-        try {
-            this.executor.awaitTermination(10, TimeUnit.SECONDS);
-        } catch (InterruptedException e) {
-        }
-        this.executor.shutdownNow();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java
deleted file mode 100644
index 5bc9d7a..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java
+++ /dev/null
@@ -1,58 +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.aries.rsa.provider.tcp;
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.cxf.dosgi.dsw.api.Endpoint;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public class TcpEndpoint implements Endpoint {
-    private EndpointDescription epd;
-    private TCPServer tcpServer;
-    
-    public TcpEndpoint(Object service, Map<String, Object> effectiveProperties) {
-        Integer port = getInt(effectiveProperties, "port", 0);
-        String localip = LocalHostUtil.getLocalIp();
-        int numThreads = getInt(effectiveProperties, "numThreads", 10);
-        tcpServer = new TCPServer(service, localip, port, numThreads);
-        effectiveProperties.put(RemoteConstants.ENDPOINT_ID, "tcp://" + localip + ":" + tcpServer.getPort());
-        effectiveProperties.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS, "");
-        this.epd = new EndpointDescription(effectiveProperties);
-    }
-    
-
-    private Integer getInt(Map<String, Object> effectiveProperties, String key, int defaultValue) {
-        String value = (String)effectiveProperties.get(key);
-        return value != null ? Integer.parseInt(value) : defaultValue;
-    }
-
-    @Override
-    public EndpointDescription description() {
-        return this.epd;
-    }
-
-
-    @Override
-    public void close() throws IOException {
-        tcpServer.close();
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java b/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java
deleted file mode 100644
index cdbf8ec..0000000
--- a/dsw/cxf-dosgi-tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpInvocationHandler.java
+++ /dev/null
@@ -1,68 +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.aries.rsa.provider.tcp;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.net.Socket;
-import java.net.UnknownHostException;
-
-public class TcpInvocationHandler implements InvocationHandler {
-    private String host;
-    private int port;
-    private ClassLoader cl;
-
-    public TcpInvocationHandler(ClassLoader cl, String host, int port)
-        throws UnknownHostException, IOException {
-        this.cl = cl;
-        this.host = host;
-        this.port = port;
-
-    }
-
-    @Override
-    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-        try (
-            Socket socket = new Socket(this.host, this.port);
-            ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream())
-            ) {
-            out.writeObject(method.getName());
-            out.writeObject(args);
-            out.flush();
-            return parseResult(socket);
-        } catch (Exception  e) {
-            throw new RuntimeException("Error calling " + host + ":" + port + " method: " + method.getName(), e);
-        }
-    }
-
-    private Object parseResult(Socket socket) throws IOException, ClassNotFoundException, Throwable {
-        try (ObjectInputStream in = new LoaderObjectInputStream(socket.getInputStream(), cl)) {
-            Object result = in.readObject();
-            if (result instanceof Throwable) {
-                throw (Throwable)result;
-            } else {
-                return result;
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderTest.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderTest.java b/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderTest.java
deleted file mode 100644
index 583c5e1..0000000
--- a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderTest.java
+++ /dev/null
@@ -1,107 +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.aries.rsa.provider.tcp;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.aries.rsa.provider.tcp.myservice.MyService;
-import org.apache.aries.rsa.provider.tcp.myservice.MyServiceImpl;
-import org.apache.cxf.dosgi.dsw.api.Endpoint;
-import org.apache.cxf.dosgi.dsw.api.EndpointHelper;
-import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.osgi.framework.BundleContext;
-
-public class TcpProviderTest {
-
-    private static final int NUM_CALLS = 100;
-    private MyService myServiceProxy;
-    private Endpoint ep;
-    
-    @Before
-    public void createServerAndProxy() {
-        Class<?>[] exportedInterfaces = new Class[] {MyService.class};
-        TCPProvider provider = new TCPProvider();
-        Map<String, Object> props = new HashMap<String, Object>();
-        EndpointHelper.addObjectClass(props, exportedInterfaces);
-        MyService myService = new MyServiceImpl();
-        BundleContext bc = EasyMock.mock(BundleContext.class);
-        ep = provider.exportService(myService, bc, props, exportedInterfaces);
-        myServiceProxy = (MyService)provider.importEndpoint(MyService.class.getClassLoader(), 
-                                                            bc,
-                                                            exportedInterfaces, 
-                                                            ep.description());
-    }
-
-    @Test
-    public void testPerf() throws IOException, InterruptedException {
-        runPerfTest(myServiceProxy);
-        String msg = "test";
-        String result = myServiceProxy.echo(msg);
-        Assert.assertEquals(msg, result);
-    }
-    
-    @Test
-    public void testCall() throws IOException, InterruptedException {
-        myServiceProxy.call("test");
-    }
-    
-    @Test
-    public void testCallOneway() throws IOException, InterruptedException {
-        myServiceProxy.callOneWay("test");
-    }
-    
-    @After
-    public void close() throws IOException {
-        ep.close();
-    }
-
-    private void runPerfTest(final MyService myServiceProxy2) throws InterruptedException {
-        StringBuilder msg = new StringBuilder();
-        for (int c = 0; c < 1000; c++) {
-            msg.append("testing123");
-        }
-        final String msg2 = msg.toString();
-        ExecutorService executor = Executors.newFixedThreadPool(10);
-        Runnable task = new Runnable() {
-            
-            @Override
-            public void run() {
-                String result = myServiceProxy2.echo(msg2);
-                Assert.assertEquals(msg2, result);
-            }
-        };
-        long start = System.currentTimeMillis();
-        for (int c = 0; c < NUM_CALLS; c++) {
-            executor.execute(task);
-        }
-        executor.shutdown();
-        executor.awaitTermination(100, TimeUnit.SECONDS);
-        long tps = NUM_CALLS * 1000 / (System.currentTimeMillis() - start);
-        System.out.println(tps + " tps");
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyService.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyService.java b/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyService.java
deleted file mode 100644
index e9d56bf..0000000
--- a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyService.java
+++ /dev/null
@@ -1,30 +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.aries.rsa.provider.tcp.myservice;
-
-import javax.jws.Oneway;
-
-public interface MyService {
-    String echo(String msg);
-    void call(String msg);
-
-    // Oneway not yet supported
-    @Oneway
-    void callOneWay(String msg);
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyServiceImpl.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyServiceImpl.java b/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyServiceImpl.java
deleted file mode 100644
index 5f469ed..0000000
--- a/dsw/cxf-dosgi-tcp/src/test/java/org/apache/aries/rsa/provider/tcp/myservice/MyServiceImpl.java
+++ /dev/null
@@ -1,36 +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.aries.rsa.provider.tcp.myservice;
-
-public class MyServiceImpl implements MyService {
-
-    @Override
-    public String echo(String msg) {
-        return msg;
-    }
-
-    @Override
-    public void call(String msg) {
-    }
-
-    @Override
-    public void callOneWay(String msg) {
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/pom.xml
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/pom.xml b/dsw/cxf-dsw/pom.xml
deleted file mode 100644
index 81a3720..0000000
--- a/dsw/cxf-dsw/pom.xml
+++ /dev/null
@@ -1,155 +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>
-    <artifactId>cxf-dosgi-ri-dsw-cxf</artifactId>
-    <packaging>bundle</packaging>
-    <name>CXF dOSGi Distribution provider</name>
-
-    <parent>
-        <groupId>org.apache.cxf.dosgi</groupId>
-        <artifactId>cxf-dosgi-ri-parent</artifactId>
-        <version>1.8-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
-    </parent>
-
-    <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>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-
-
-        <dependency>
-            <groupId>org.apache.cxf.dosgi</groupId>
-            <artifactId>cxf-dosgi-ri-provider-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-core</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxws</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-		<dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-rs-client</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-databinding-aegis</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-rs-extension-providers</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-servlet_${servlet.version}_spec</artifactId>
-            <version>1.0</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>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jvnet.jaxb2.maven2</groupId>
-                <artifactId>maven-jaxb2-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <Import-Package>
-                            javax.servlet*;version="[0.0,4)",
-                            *
-                        </Import-Package>
-                        <Export-Package>
-                            !*
-                        </Export-Package>
-                        <Bundle-Activator>org.apache.cxf.dosgi.dsw.Activator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>**/TestUtils*</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
deleted file mode 100644
index 743e8f2..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Activator.java
+++ /dev/null
@@ -1,160 +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;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.apache.cxf.dosgi.dsw.decorator.ServiceDecorator;
-import org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorBundleListener;
-import org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorImpl;
-import org.apache.cxf.dosgi.dsw.handlers.CXFDistributionProvider;
-import org.apache.cxf.dosgi.dsw.handlers.HttpServiceManager;
-import org.apache.cxf.dosgi.dsw.qos.DefaultIntentMapFactory;
-import org.apache.cxf.dosgi.dsw.qos.IntentManager;
-import org.apache.cxf.dosgi.dsw.qos.IntentManagerImpl;
-import org.apache.cxf.dosgi.dsw.qos.IntentMap;
-import org.apache.cxf.dosgi.dsw.qos.IntentTracker;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleListener;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.cm.ConfigurationException;
-import org.osgi.service.cm.ManagedService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-// registered as spring bean -> start / stop called accordingly
-public class Activator implements ManagedService, BundleActivator {
-
-    private static final Logger LOG = LoggerFactory.getLogger(Activator.class);
-    private static final int DEFAULT_INTENT_TIMEOUT = 30000;
-    private static final String CONFIG_SERVICE_PID = "cxf-dsw";
-    private ServiceRegistration<?> rsaFactoryReg;
-    private ServiceRegistration<?> decoratorReg;
-    private IntentTracker intentTracker;
-    private HttpServiceManager httpServiceManager;
-    private BundleContext bc;
-    private BundleListener bundleListener;
-    private Dictionary<String, Object> curConfiguration;
-    private Bus bus;
-
-    public void start(BundleContext bundlecontext) throws Exception {
-        LOG.debug("RemoteServiceAdmin Implementation is starting up");
-        this.bc = bundlecontext;
-        // Disable the fast infoset as it's not compatible (yet) with OSGi
-        System.setProperty("org.apache.cxf.nofastinfoset", "true");
-        curConfiguration = getDefaultConfig();
-        init(curConfiguration);
-        registerManagedService(bc);
-    }
-
-    private Dictionary<String, Object> getDefaultConfig() {
-        return new Hashtable<String, Object>();
-    }
-
-    private synchronized void init(Dictionary<String, Object> config) {
-        bus = BusFactory.newInstance().createBus();
-        
-        String httpBase = (String) config.get(org.apache.cxf.dosgi.dsw.Constants.HTTP_BASE);
-        String cxfServletAlias = (String) config.get(org.apache.cxf.dosgi.dsw.Constants.CXF_SERVLET_ALIAS);
-
-        IntentMap intentMap = new IntentMap(new DefaultIntentMapFactory().create());
-        intentTracker = new IntentTracker(bc, intentMap);
-        intentTracker.open();
-        IntentManager intentManager = new IntentManagerImpl(intentMap, DEFAULT_INTENT_TIMEOUT);
-        httpServiceManager = new HttpServiceManager(bc, httpBase, cxfServletAlias);
-        DistributionProvider cxfProvider
-            = new CXFDistributionProvider(bc, intentManager, httpServiceManager);
-        Dictionary<String, Object> props = new Hashtable<String, Object>();
-        String[] supportedIntents = intentMap.keySet().toArray(new String[] {});
-        props.put("remote.intents.supported", supportedIntents);
-        props.put("remote.configs.supported", cxfProvider.getSupportedTypes());
-        rsaFactoryReg = bc.registerService(DistributionProvider.class.getName(), cxfProvider, props);
-        ServiceDecoratorImpl serviceDecorator = new ServiceDecoratorImpl();
-        bundleListener = new ServiceDecoratorBundleListener(serviceDecorator);
-        bc.addBundleListener(bundleListener);
-        decoratorReg = bc.registerService(ServiceDecorator.class.getName(), serviceDecorator, null);
-    }
-
-    private synchronized void uninit() {
-        if (decoratorReg != null) {
-            decoratorReg.unregister();
-            decoratorReg = null;
-        }
-        if (bundleListener != null) {
-            bc.removeBundleListener(bundleListener);
-            bundleListener = null;
-        }
-        if (rsaFactoryReg != null) {
-            // This also triggers the unimport and unexport of the remote services
-            rsaFactoryReg.unregister();
-            rsaFactoryReg = null;
-        }
-        if (httpServiceManager != null) {
-            httpServiceManager.close();
-            httpServiceManager = null;
-        }
-        if (intentTracker != null) {
-            intentTracker.close();
-            intentTracker = null;
-        }
-    }
-
-    private void registerManagedService(BundleContext bundlecontext) {
-        Dictionary<String, String> props = new Hashtable<String, String>();
-        props.put(Constants.SERVICE_PID, CONFIG_SERVICE_PID);
-        // No need to store the registration. Will be unregistered in stop by framework
-        bundlecontext.registerService(ManagedService.class.getName(), this, props);
-    }
-
-    public void stop(BundleContext context) throws Exception {
-        LOG.debug("RemoteServiceAdmin Implementation is shutting down now");
-        uninit();
-        shutdownCXFBus();
-    }
-
-    /**
-     * Causes also the shutdown of the embedded HTTP server
-     */
-    private void shutdownCXFBus() {
-        if (bus != null) {
-            LOG.debug("Shutting down the CXF Bus");
-            bus.shutdown(true);
-        }
-    }
-
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    public synchronized void updated(Dictionary config) throws ConfigurationException {
-        LOG.debug("RemoteServiceAdmin Implementation configuration is updated with {}", config);
-        // config is null if it doesn't exist, is being deleted or has not yet been loaded
-        // in which case we run with defaults (just like we do manually when bundle is first started)
-        Dictionary<String, Object> configMap = config == null ? getDefaultConfig() : config;
-        if (!configMap.equals(curConfiguration)) { // only if something actually changed
-            curConfiguration = configMap;
-            uninit();
-            init(configMap);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
deleted file mode 100644
index 218bec6..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/Constants.java
+++ /dev/null
@@ -1,146 +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;
-
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public final class Constants {
-
-    // Constants from RFC 119, they should ultimately be picked up from an OSGi class.
-    @Deprecated
-    public static final String EXPORTED_INTERFACES = RemoteConstants.SERVICE_EXPORTED_INTERFACES;
-    @Deprecated
-    public static final String EXPORTED_INTERFACES_OLD = "osgi.remote.interfaces"; // for BW compatibility
-
-    @Deprecated
-    public static final String EXPORTED_CONFIGS = RemoteConstants.SERVICE_EXPORTED_CONFIGS;
-    @Deprecated
-    public static final String EXPORTED_CONFIGS_OLD = "osgi.remote.configuration.type"; // for BW compatibility
-
-    @Deprecated
-    public static final String EXPORTED_INTENTS = RemoteConstants.SERVICE_EXPORTED_INTENTS;
-    @Deprecated
-    public static final String EXPORTED_INTENTS_EXTRA = RemoteConstants.SERVICE_EXPORTED_INTENTS_EXTRA;
-    @Deprecated
-    public static final String EXPORTED_INTENTS_OLD = "osgi.remote.requires.intents";
-
-    @Deprecated
-    public static final String IMPORTED = RemoteConstants.SERVICE_IMPORTED;
-    @Deprecated
-    public static final String IMPORTD_CONFIGS = RemoteConstants.SERVICE_IMPORTED_CONFIGS;
-
-    @Deprecated
-    public static final String INTENTS = RemoteConstants.SERVICE_INTENTS;
-
-    // WSDL
-    public static final String WSDL_CONFIG_TYPE = "wsdl";
-    public static final String WSDL_CONFIG_PREFIX = "osgi.remote.configuration" + "." + WSDL_CONFIG_TYPE;
-    public static final String WSDL_SERVICE_NAMESPACE = WSDL_CONFIG_PREFIX + ".service.ns";
-    public static final String WSDL_SERVICE_NAME = WSDL_CONFIG_PREFIX + ".service.name";
-    public static final String WSDL_PORT_NAME = WSDL_CONFIG_PREFIX + ".port.name";
-    public static final String WSDL_LOCATION = WSDL_CONFIG_PREFIX + ".location";
-    public static final String WSDL_HTTP_SERVICE_CONTEXT = WSDL_CONFIG_PREFIX + ".httpservice.context";
-    // Provider prefix
-    public static final String PROVIDER_PREFIX = "org.apache.cxf";
-
-    // WS
-    public static final String WS_CONFIG_TYPE = PROVIDER_PREFIX + ".ws";
-    public static final String WS_ADDRESS_PROPERTY = WS_CONFIG_TYPE + ".address";
-    public static final String WS_PORT_PROPERTY = WS_CONFIG_TYPE + ".port";
-    public static final String WS_HTTP_SERVICE_CONTEXT = WS_CONFIG_TYPE + ".httpservice.context";
-
-    public static final String WS_FRONTEND_PROP_KEY = WS_CONFIG_TYPE + ".frontend";
-    public static final String WS_FRONTEND_JAXWS = "jaxws";
-    public static final String WS_FRONTEND_SIMPLE = "simple";
-
-    public static final String WS_IN_INTERCEPTORS_PROP_KEY = WS_CONFIG_TYPE + ".in.interceptors";
-    public static final String WS_OUT_INTERCEPTORS_PROP_KEY = WS_CONFIG_TYPE + ".out.interceptors";
-    public static final String WS_OUT_FAULT_INTERCEPTORS_PROP_KEY = WS_CONFIG_TYPE + ".out.fault.interceptors";
-    public static final String WS_IN_FAULT_INTERCEPTORS_PROP_KEY = WS_CONFIG_TYPE + ".in.fault.interceptors";
-    public static final String WS_CONTEXT_PROPS_PROP_KEY = WS_CONFIG_TYPE + ".context.properties";
-    public static final String WS_FEATURES_PROP_KEY = WS_CONFIG_TYPE + ".features";
-
-    public static final String WS_DATABINDING_PROP_KEY = WS_CONFIG_TYPE + ".databinding";
-    public static final String WS_DATABINDING_BEAN_PROP_KEY = WS_DATABINDING_PROP_KEY + ".bean";
-    public static final String WS_DATA_BINDING_JAXB = "jaxb";
-    public static final String WS_DATA_BINDING_AEGIS = "aegis";
-
-    public static final String WS_WSDL_SERVICE_NAMESPACE = WS_CONFIG_TYPE + ".service.ns";
-    public static final String WS_WSDL_SERVICE_NAME = WS_CONFIG_TYPE + ".service.name";
-    public static final String WS_WSDL_PORT_NAME = WS_CONFIG_TYPE + ".port.name";
-    public static final String WS_WSDL_LOCATION = WS_CONFIG_TYPE + ".wsdl.location";
-    // Rest
-    public static final String RS_CONFIG_TYPE = PROVIDER_PREFIX + ".rs";
-    public static final String RS_ADDRESS_PROPERTY = RS_CONFIG_TYPE + ".address";
-    public static final String RS_HTTP_SERVICE_CONTEXT = RS_CONFIG_TYPE + ".httpservice.context";
-    public static final String RS_DATABINDING_PROP_KEY = RS_CONFIG_TYPE + ".databinding";
-    public static final String RS_IN_INTERCEPTORS_PROP_KEY = RS_CONFIG_TYPE + ".in.interceptors";
-    public static final String RS_OUT_INTERCEPTORS_PROP_KEY = RS_CONFIG_TYPE + ".out.interceptors";
-    public static final String RS_IN_FAULT_INTERCEPTORS_PROP_KEY = RS_CONFIG_TYPE + ".in.fault.interceptors";
-    public static final String RS_OUT_FAULT_INTERCEPTORS_PROP_KEY = RS_CONFIG_TYPE + ".out.fault.interceptors";
-    public static final String RS_CONTEXT_PROPS_PROP_KEY = RS_CONFIG_TYPE + ".context.properties";
-    public static final String RS_FEATURES_PROP_KEY = RS_CONFIG_TYPE + ".features";
-    public static final String RS_PROVIDER_PROP_KEY = RS_CONFIG_TYPE + ".provider";
-    public static final String RS_PROVIDER_EXPECTED_PROP_KEY = RS_PROVIDER_PROP_KEY + ".expected";
-    public static final String RS_PROVIDER_GLOBAL_PROP_KEY = RS_PROVIDER_PROP_KEY + ".globalquery";
-    public static final String RS_WADL_LOCATION = RS_CONFIG_TYPE + ".wadl.location";
-    // POJO (old value for WS)
-    public static final String WS_CONFIG_TYPE_OLD = "pojo";
-    public static final String WS_CONFIG_OLD_PREFIX = "osgi.remote.configuration." + WS_CONFIG_TYPE_OLD;
-    public static final String WS_ADDRESS_PROPERTY_OLD = WS_CONFIG_OLD_PREFIX + ".address";
-    public static final String WS_HTTP_SERVICE_CONTEXT_OLD = WS_CONFIG_OLD_PREFIX + ".httpservice.context";
-
-    // Common Configuration Properties
-    public static final String CHECK_BUNDLE = "check.bundle";
-
-    // The following constants are not evaluated anymore
-    @Deprecated
-    public static final String DEFAULT_PORT_CONFIG = "default.port";
-    @Deprecated
-    public static final String DEFAULT_HOST_CONFIG = "default.host";
-    @Deprecated
-    public static final String DEFAULT_PORT_VALUE = "9000";
-    @Deprecated
-    public static final String DEFAULT_HOST_VALUE = "localhost";
-    @Deprecated
-    public static final String USE_MASTER_MAP = "use.master.map";
-
-    // DSW Identification - TODO do we really need this one?
-    public static final String DSW_CLIENT_ID = PROVIDER_PREFIX + ".remote.dsw.client";
-
-    public static final String INTENT_NAME_PROP = "org.apache.cxf.dosgi.IntentName";
-
-    /**
-     * Prefix to create an absolute URL from a relative URL.
-     * See HttpServiceManager.getAbsoluteAddress
-     *
-     * Defaults to: http://<host name>:8181
-     */
-    public static final String HTTP_BASE = "httpBase";
-
-    /**
-     * Name of the cxf servlet alias
-     */
-    public static final String CXF_SERVLET_ALIAS = "cxfServletAlias";
-    public static final String DEFAULT_CXF_SERVLET_ALIAS = "/cxf";
-
-    private Constants() {
-        // never constructed
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/DecorationParser.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/DecorationParser.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/DecorationParser.java
deleted file mode 100644
index 82753b1..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/DecorationParser.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.decorator;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.XMLConstants;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-
-import org.apache.cxf.xmlns.service_decoration._1_0.ServiceDecorationType;
-import org.apache.cxf.xmlns.service_decoration._1_0.ServiceDecorationsType;
-
-class DecorationParser {
-    private JAXBContext jaxbContext;
-    private Schema schema;
-
-    DecorationParser() {
-        try {
-            jaxbContext = JAXBContext.newInstance(ServiceDecorationsType.class.getPackage().getName(),
-                                                  this.getClass().getClassLoader());
-            SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-            URL resource = getClass().getResource("/service-decoration.xsd");
-            schema = schemaFactory.newSchema(resource);
-        } catch (Exception e) {
-            throw new RuntimeException("Error loading decorations schema", e);
-        }
-
-    }
-
-    List<ServiceDecorationType> getDecorations(URL resourceURL) throws JAXBException, IOException {
-        if (resourceURL == null || !decorationType(resourceURL)) {
-            return new ArrayList<ServiceDecorationType>();
-        }
-        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-        unmarshaller.setSchema(schema);
-        InputStream is = resourceURL.openStream();
-        Source source = new StreamSource(is);
-        JAXBElement<ServiceDecorationsType> jaxb = unmarshaller.unmarshal(source, ServiceDecorationsType.class);
-        ServiceDecorationsType decorations = jaxb.getValue();
-        return decorations.getServiceDecoration();
-    }
-
-    private boolean decorationType(URL resourceURL) {
-        try {
-            InputStream is = resourceURL.openStream();
-            XMLInputFactory factory = XMLInputFactory.newInstance();
-            XMLStreamReader reader = factory.createXMLStreamReader(is);
-            reader.next();
-            String ns = reader.getNamespaceURI();
-            reader.close();
-            return ns.equals("http://cxf.apache.org/xmlns/service-decoration/1.0.0");
-        } catch (Exception e) {
-            return false;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/InterfaceRule.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/InterfaceRule.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/InterfaceRule.java
deleted file mode 100644
index 894d01d..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/InterfaceRule.java
+++ /dev/null
@@ -1,96 +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.decorator;
-
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class InterfaceRule implements Rule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(InterfaceRule.class);
-
-    private final Bundle bundle;
-    private final Pattern matchPattern;
-    private final Map<String, String> propMatches = new HashMap<String, String>();
-    private final Map<String, Object> addProps = new HashMap<String, Object>();
-
-    public InterfaceRule(Bundle b, String im) {
-        bundle = b;
-        matchPattern = Pattern.compile(im);
-    }
-
-    public synchronized void addPropMatch(String name, String value) {
-        propMatches.put(name, value);
-    }
-
-    public synchronized void addProperty(String name, String value, String type) {
-        Object obj = value;
-
-        if (type != null && !String.class.getName().equals(type)) {
-            try {
-                Class<?> cls = getClass().getClassLoader().loadClass(type);
-                Constructor<?> ctor = cls.getConstructor(new Class[] {String.class});
-                obj = ctor.newInstance(value);
-            } catch (Throwable th) {
-                LOG.warn("Could not handle property '" + name
-                         + "' with value '" + value + "' of type: " + type, th);
-                return;
-            }
-        }
-
-        addProps.put(name, obj);
-    }
-
-    public synchronized void apply(ServiceReference<?> sref, Map<String, Object> target) {
-        String[] objectClass = (String[]) sref.getProperty(Constants.OBJECTCLASS);
-        boolean matches = false;
-        for (String cls : objectClass) {
-            Matcher m = matchPattern.matcher(cls);
-            if (m.matches()) {
-                for (Map.Entry<String, String> pm : propMatches.entrySet()) {
-                    Object value = sref.getProperty(pm.getKey());
-                    if (value == null || !Pattern.matches(pm.getValue(), value.toString())) {
-                        return;
-                    }
-                }
-                matches = true;
-                break;
-            }
-        }
-        if (!matches) {
-            return;
-        }
-
-        LOG.info("Adding the following properties to " + sref + ": " + addProps);
-        target.putAll(addProps);
-    }
-
-    public Bundle getBundle() {
-        return bundle;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/Rule.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/Rule.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/Rule.java
deleted file mode 100644
index adbd1cf..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/Rule.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.decorator;
-
-import java.util.Map;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-
-public interface Rule {
-
-    /**
-     * When the ServiceReference passed in matches the rule's condition,
-     * set the additional properties in the target.
-     * @param sref The Service Reference to be checked.
-     * @param target Any additional properties are to be set in this map.
-     */
-    void apply(ServiceReference<?> sref, Map<String, Object> target);
-
-    /**
-     * Returns the bundle that provided this rule.
-     * @return The Bundle where the Rule was defined.
-     */
-    Bundle getBundle();
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecorator.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecorator.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecorator.java
deleted file mode 100644
index 203bd1c..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecorator.java
+++ /dev/null
@@ -1,28 +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.decorator;
-
-import java.util.Map;
-
-import org.osgi.framework.ServiceReference;
-
-public interface ServiceDecorator {
-
-    void decorate(ServiceReference<?> sref, Map<String, Object> properties);
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorBundleListener.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorBundleListener.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorBundleListener.java
deleted file mode 100644
index 79c2908..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorBundleListener.java
+++ /dev/null
@@ -1,48 +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.decorator;
-
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.BundleListener;
-
-public class ServiceDecoratorBundleListener implements BundleListener {
-    /**
-     * 
-     */
-    private final ServiceDecoratorImpl serviceDecorator;
-
-    /**
-     * @param serviceDecorator
-     */
-    public ServiceDecoratorBundleListener(ServiceDecoratorImpl serviceDecorator) {
-        this.serviceDecorator = serviceDecorator;
-    }
-
-    public void bundleChanged(BundleEvent be) {
-        switch(be.getType()) {
-        case BundleEvent.STARTED:
-            this.serviceDecorator.addDecorations(be.getBundle());
-            break;
-        case BundleEvent.STOPPING:
-            this.serviceDecorator.removeDecorations(be.getBundle());
-            break;
-        default:
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorImpl.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorImpl.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorImpl.java
deleted file mode 100644
index 20130c3..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/decorator/ServiceDecoratorImpl.java
+++ /dev/null
@@ -1,97 +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.decorator;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.apache.cxf.xmlns.service_decoration._1_0.AddPropertyType;
-import org.apache.cxf.xmlns.service_decoration._1_0.MatchPropertyType;
-import org.apache.cxf.xmlns.service_decoration._1_0.MatchType;
-import org.apache.cxf.xmlns.service_decoration._1_0.ServiceDecorationType;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ServiceDecoratorImpl implements ServiceDecorator {
-    private static final Logger LOG = LoggerFactory.getLogger(ServiceDecoratorImpl.class);
-    final List<Rule> decorations = new CopyOnWriteArrayList<Rule>();
-
-    private DecorationParser parser;
-
-    public ServiceDecoratorImpl() {
-        parser = new DecorationParser();
-    }
-    
-    public void decorate(ServiceReference<?> sref, Map<String, Object> target) {
-        for (Rule matcher : decorations) {
-            matcher.apply(sref, target);
-        }
-    }
-
-    void addDecorations(Bundle bundle) {
-        for (ServiceDecorationType decoration : getDecorationElements(bundle)) {
-            for (MatchType match : decoration.getMatch()) {
-                decorations.add(getRule(bundle, match));
-            }
-        }
-    }
-
-    private Rule getRule(Bundle bundle, MatchType match) {
-        InterfaceRule m = new InterfaceRule(bundle, match.getInterface());
-        for (MatchPropertyType propMatch : match.getMatchProperty()) {
-            m.addPropMatch(propMatch.getName(), propMatch.getValue());
-        }
-        for (AddPropertyType addProp : match.getAddProperty()) {
-            m.addProperty(addProp.getName(), addProp.getValue(), addProp.getType());
-        }
-        return m;
-    }
-
-    List<ServiceDecorationType> getDecorationElements(Bundle bundle) {
-        @SuppressWarnings("rawtypes")
-        Enumeration entries = bundle.findEntries("OSGI-INF/remote-service", "*.xml", false);
-        if (entries == null) {
-            return Collections.emptyList();
-        }
-        List<ServiceDecorationType> elements = new ArrayList<ServiceDecorationType>();
-        while (entries.hasMoreElements()) {
-            try {
-                elements.addAll(parser.getDecorations((URL)entries.nextElement()));
-            } catch (Exception e) {
-                LOG.warn("Error parsing remote-service descriptions in bundle" + bundle.getSymbolicName(), e);
-            }
-        }
-        return elements;
-    }
-
-    void removeDecorations(Bundle bundle) {
-        for (Rule r : decorations) {
-            if (bundle.equals(r.getBundle())) {
-                decorations.remove(r); // the iterator doesn't support 'remove'
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cxf-dosgi/blob/1425743f/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
----------------------------------------------------------------------
diff --git a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java b/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
deleted file mode 100644
index 9e1356c..0000000
--- a/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
+++ /dev/null
@@ -1,243 +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.handlers;
-
-import java.lang.reflect.Proxy;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.common.util.PackageUtils;
-import org.apache.cxf.dosgi.dsw.Constants;
-import org.apache.cxf.dosgi.dsw.api.DistributionProvider;
-import org.apache.cxf.dosgi.dsw.api.Endpoint;
-import org.apache.cxf.dosgi.dsw.qos.IntentManager;
-import org.apache.cxf.dosgi.dsw.qos.IntentUtils;
-import org.apache.cxf.dosgi.dsw.util.OsgiUtils;
-import org.apache.cxf.dosgi.dsw.util.StringPlus;
-import org.apache.cxf.endpoint.AbstractEndpointFactory;
-import org.apache.cxf.endpoint.Server;
-import org.apache.cxf.feature.AbstractFeature;
-import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
-import org.apache.cxf.frontend.ClientFactoryBean;
-import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.helpers.CastUtils;
-import org.apache.cxf.interceptor.Interceptor;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.remoteserviceadmin.EndpointDescription;
-import org.osgi.service.remoteserviceadmin.RemoteConstants;
-
-public abstract class AbstractPojoConfigurationTypeHandler implements DistributionProvider {
-    protected BundleContext bundleContext;
-    protected IntentManager intentManager;
-    protected HttpServiceManager httpServiceManager;
-
-    public AbstractPojoConfigurationTypeHandler(BundleContext dswBC, IntentManager intentManager,
-                                                HttpServiceManager httpServiceManager) {
-        this.bundleContext = dswBC;
-        this.intentManager = intentManager;
-        this.httpServiceManager = httpServiceManager;
-    }
-
-    protected Object getProxy(Object serviceProxy, Class<?> iType) {
-        return Proxy.newProxyInstance(iType.getClassLoader(), new Class[] {
-            iType
-        }, new ServiceInvocationHandler(serviceProxy, iType));
-    }
-
-    protected EndpointDescription createEndpointDesc(Map<String, Object> props, 
-                                                     String[] importedConfigs,
-                                                     String address, 
-                                                     String[] intents) {
-        props.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, importedConfigs);
-        for (String configurationType : importedConfigs) {
-            if (Constants.WS_CONFIG_TYPE.equals(configurationType)) {
-                props.put(Constants.WS_ADDRESS_PROPERTY, address);
-            } else if (Constants.RS_CONFIG_TYPE.equals(configurationType)) {
-                props.put(Constants.RS_ADDRESS_PROPERTY, address);
-            } else if (Constants.WS_CONFIG_TYPE_OLD.equals(configurationType)) {
-                props.put(Constants.WS_ADDRESS_PROPERTY_OLD, address);
-                props.put(Constants.WS_ADDRESS_PROPERTY, address);
-            }
-        }
-        String[] sIntents = StringPlus.normalize(props.get(RemoteConstants.SERVICE_INTENTS));
-        String[] allIntents = IntentUtils.mergeArrays(intents, sIntents);
-        props.put(RemoteConstants.SERVICE_INTENTS, allIntents);
-        props.put(RemoteConstants.ENDPOINT_ID, address);
-        return new EndpointDescription(props);
-    }
-
-    protected void setCommonWsdlProperties(AbstractWSDLBasedEndpointFactory factory, BundleContext context,
-                                           Map<String, Object> sd, boolean wsdlType) {
-        String location = OsgiUtils.getProperty(sd, wsdlType ? Constants.WSDL_LOCATION : Constants.WS_WSDL_LOCATION);
-        if (location != null) {
-            URL wsdlURL = context.getBundle().getResource(location);
-            if (wsdlURL != null) {
-                factory.setWsdlURL(wsdlURL.toString());
-            }
-            QName serviceName = getServiceQName(null, sd,
-                    wsdlType ? Constants.WSDL_SERVICE_NAMESPACE : Constants.WS_WSDL_SERVICE_NAMESPACE,
-                    wsdlType ? Constants.WSDL_SERVICE_NAME : Constants.WS_WSDL_SERVICE_NAME);
-            if (serviceName != null) {
-                factory.setServiceName(serviceName);
-                QName portName = getPortQName(serviceName.getNamespaceURI(), sd,
-                        wsdlType ? Constants.WSDL_PORT_NAME : Constants.WS_WSDL_PORT_NAME);
-                if (portName != null) {
-                    factory.setEndpointName(portName);
-                }
-            }
-        }
-    }
-
-    protected void setWsdlProperties(ServerFactoryBean factory, BundleContext callingContext, Map<String, Object> sd,
-                                     boolean wsdlType) {
-        setCommonWsdlProperties(factory, callingContext, sd, wsdlType);
-    }
-
-    protected void setClientWsdlProperties(ClientFactoryBean factory, BundleContext dswContext, Map<String, Object> sd,
-                                           boolean wsdlType) {
-        setCommonWsdlProperties(factory, dswContext, sd, wsdlType);
-    }
-
-    protected static QName getServiceQName(Class<?> iClass, Map<String, Object> sd, String nsPropName,
-                                           String namePropName) {
-        String serviceNs = OsgiUtils.getProperty(sd, nsPropName);
-        String serviceName = OsgiUtils.getProperty(sd, namePropName);
-        if (iClass == null && (serviceNs == null || serviceName == null)) {
-            return null;
-        }
-        if (serviceNs == null) {
-            serviceNs = PackageUtils.getNamespace(PackageUtils.getPackageName(iClass));
-        }
-        if (serviceName == null) {
-            serviceName = iClass.getSimpleName();
-        }
-        return new QName(serviceNs, serviceName);
-    }
-
-    protected static QName getPortQName(String ns, Map<String, Object> sd, String propName) {
-        String portName = OsgiUtils.getProperty(sd, propName);
-        if (portName == null) {
-            return null;
-        }
-        return new QName(ns, portName);
-    }
-
-    protected String getClientAddress(Map<String, Object> sd) {
-        return OsgiUtils.getFirstNonEmptyStringProperty(sd, RemoteConstants.ENDPOINT_ID,
-                                                        Constants.WS_ADDRESS_PROPERTY,
-                                                        Constants.WS_ADDRESS_PROPERTY_OLD,
-                                                        Constants.RS_ADDRESS_PROPERTY);
-    }
-
-    protected String getServerAddress(Map<String, Object> sd, Class<?> iClass) {
-        String address = getClientAddress(sd);
-        return address == null ? httpServiceManager.getDefaultAddress(iClass) : address;
-    }
-    
-    public String getServletContextRoot(Map<String, Object> sd) {
-        return OsgiUtils.getFirstNonEmptyStringProperty(sd,
-                Constants.WS_HTTP_SERVICE_CONTEXT,
-                Constants.WS_HTTP_SERVICE_CONTEXT_OLD,
-                Constants.WSDL_HTTP_SERVICE_CONTEXT,
-                Constants.RS_HTTP_SERVICE_CONTEXT);
-    }
-
-    
-    protected Bus createBus(Long sid, BundleContext callingContext, String contextRoot) {
-        Bus bus = BusFactory.newInstance().createBus();
-        if (contextRoot != null) {
-            httpServiceManager.registerServlet(bus, contextRoot, callingContext, sid);
-        }
-        return bus;
-    }
-
-    protected Endpoint createServerFromFactory(ServerFactoryBean factory, EndpointDescription epd) {
-        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
-        try {
-            Thread.currentThread().setContextClassLoader(ServerFactoryBean.class.getClassLoader());
-            Server server = factory.create();
-            return new ServerWrapper(epd, server);
-        } finally {
-            Thread.currentThread().setContextClassLoader(oldClassLoader);
-        }
-    }
-
-    protected static void addWsInterceptorsFeaturesProps(AbstractEndpointFactory factory, BundleContext callingContext,
-                                                         Map<String, Object> sd) {
-        addInterceptors(factory, callingContext, sd, Constants.WS_IN_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.WS_OUT_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.WS_OUT_FAULT_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.WS_IN_FAULT_INTERCEPTORS_PROP_KEY);
-        addFeatures(factory, callingContext, sd, Constants.WS_FEATURES_PROP_KEY);
-        addContextProperties(factory, sd, Constants.WS_CONTEXT_PROPS_PROP_KEY);
-    }
-
-    static void addRsInterceptorsFeaturesProps(AbstractEndpointFactory factory, BundleContext callingContext,
-                                               Map<String, Object> sd) {
-        addInterceptors(factory, callingContext, sd, Constants.RS_IN_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.RS_OUT_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.RS_OUT_FAULT_INTERCEPTORS_PROP_KEY);
-        addInterceptors(factory, callingContext, sd, Constants.RS_IN_FAULT_INTERCEPTORS_PROP_KEY);
-        addFeatures(factory, callingContext, sd, Constants.RS_FEATURES_PROP_KEY);
-        addContextProperties(factory, sd, Constants.RS_CONTEXT_PROPS_PROP_KEY);
-    }
-
-    private static void addInterceptors(AbstractEndpointFactory factory, BundleContext callingContext,
-                                        Map<String, Object> sd, String propName) {
-        List<Object> providers = ClassUtils.loadProviderClasses(callingContext, sd, propName);
-        boolean in = propName.contains("in.interceptors");
-        boolean out = propName.contains("out.interceptors");
-        boolean inFault = propName.contains("in.fault.interceptors");
-        boolean outFault = propName.contains("out.fault.interceptors");
-        for (Object provider : providers) {
-            Interceptor<?> interceptor = (Interceptor<?>) provider;
-            if (in) {
-                factory.getInInterceptors().add(interceptor);
-            } else if (out) {
-                factory.getOutInterceptors().add(interceptor);
-            } else if (inFault) {
-                factory.getInFaultInterceptors().add(interceptor);
-            } else if (outFault) {
-                factory.getOutFaultInterceptors().add(interceptor);
-            }
-        }
-    }
-
-    private static void addFeatures(AbstractEndpointFactory factory, BundleContext callingContext,
-                                    Map<String, Object> sd, String propName) {
-        List<Object> providers = ClassUtils.loadProviderClasses(callingContext, sd, propName);
-        if (!providers.isEmpty()) {
-            factory.getFeatures().addAll(CastUtils.cast(providers, AbstractFeature.class));
-        }
-    }
-
-    private static void addContextProperties(AbstractEndpointFactory factory, Map<String, Object> sd, String propName) {
-        @SuppressWarnings("unchecked")
-        Map<String, Object> props = (Map<String, Object>)sd.get(propName);
-        if (props != null) {
-            factory.getProperties(true).putAll(props);
-        }
-    }
-    
-}


Mime
View raw message