You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2009/07/09 10:29:22 UTC

svn commit: r792445 [6/6] - in /felix/trunk/karaf: ./ assembly/ assembly/src/main/descriptors/ assembly/src/main/filtered-resources/ assembly/src/main/filtered-resources/etc/ client/ deployer/features/src/main/resources/OSGI-INF/blueprint/ deployer/fil...

Added: felix/trunk/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java?rev=792445&view=auto
==============================================================================
--- felix/trunk/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java (added)
+++ felix/trunk/karaf/gshell/gshell-wrapper/src/main/java/org/apache/felix/karaf/gshell/wrapper/StreamPumper.java Thu Jul  9 08:29:14 2009
@@ -0,0 +1,199 @@
+/*
+ * 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.felix.karaf.gshell.wrapper;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.IOException;
+
+//
+// Based on Apache Ant 1.6.5
+//
+
+/**
+ * Copies all data from an input stream to an output stream.
+ *
+ * @version $Rev: 705608 $ $Date: 2008-10-17 15:28:45 +0200 (Fri, 17 Oct 2008) $
+ */
+public class StreamPumper
+    implements Runnable
+{
+    private InputStream in;
+
+    private OutputStream out;
+
+    private volatile boolean finish;
+
+    private volatile boolean finished;
+
+    private boolean closeWhenExhausted;
+
+    private boolean autoflush;
+
+    private Exception exception;
+
+    private int bufferSize = 128;
+
+    private boolean started;
+
+    /**
+     * Create a new stream pumper.
+     *
+     * @param in                    Input stream to read data from
+     * @param out                   Output stream to write data to.
+     * @param closeWhenExhausted    If true, the output stream will be closed when
+     *                              the input is exhausted.
+     */
+    public StreamPumper(final InputStream in, final OutputStream out, final boolean closeWhenExhausted) {
+        assert in != null;
+        assert out != null;
+
+        this.in = in;
+        this.out = out;
+        this.closeWhenExhausted = closeWhenExhausted;
+    }
+
+    /**
+     * Create a new stream pumper.
+     *
+     * @param in    Input stream to read data from
+     * @param out   Output stream to write data to.
+     */
+    public StreamPumper(final InputStream in, final OutputStream out) {
+        this(in, out, false);
+    }
+
+    /**
+     * Set whether data should be flushed through to the output stream.
+     *
+     * @param autoflush     If true, push through data; if false, let it be buffered
+     */
+    public void setAutoflush(boolean autoflush) {
+        this.autoflush = autoflush;
+    }
+
+    /**
+     * Copies data from the input stream to the output stream.
+     *
+     * Terminates as soon as the input stream is closed or an error occurs.
+     */
+    public void run() {
+        synchronized (this) {
+            started = true;
+        }
+        finished = false;
+        finish = false;
+
+        final byte[] buf = new byte[bufferSize];
+
+        int length;
+        try {
+            while ((length = in.read(buf)) > 0 && !finish) {
+                out.write(buf, 0, length);
+                if (autoflush) {
+                    out.flush();
+                }
+            }
+            out.flush();
+        }
+        catch (Exception e) {
+            synchronized (this) {
+                exception = e;
+            }
+        }
+        finally {
+            if (closeWhenExhausted) {
+                try {
+                    out.close();
+                } catch (IOException e) { }
+            }
+            finished = true;
+
+            synchronized (this) {
+                notifyAll();
+            }
+        }
+    }
+
+    /**
+     * Tells whether the end of the stream has been reached.
+     *
+     * @return true     If the stream has been exhausted.
+     */
+    public boolean isFinished() {
+        return finished;
+    }
+
+    /**
+     * This method blocks until the stream pumper finishes.
+     *
+     * @see #isFinished()
+     */
+    public synchronized void waitFor() throws InterruptedException {
+        while (!isFinished()) {
+            wait();
+        }
+    }
+
+    /**
+     * Set the size in bytes of the read buffer.
+     *
+     * @param bufferSize the buffer size to use.
+     * @throws IllegalStateException if the StreamPumper is already running.
+     */
+    public synchronized void setBufferSize(final int bufferSize) {
+        if (started) {
+            throw new IllegalStateException("Cannot set buffer size on a running StreamPumper");
+        }
+
+        this.bufferSize = bufferSize;
+    }
+
+    /**
+     * Get the size in bytes of the read buffer.
+     *
+     * @return The size of the read buffer.
+     */
+    public synchronized int getBufferSize() {
+        return bufferSize;
+    }
+
+    /**
+     * Get the exception encountered, if any.
+     *
+     * @return The Exception encountered; or null if there was none.
+     */
+    public synchronized Exception getException() {
+        return exception;
+    }
+
+    /**
+     * Stop the pumper as soon as possible.
+     *
+     * Note that it may continue to block on the input stream
+     * but it will really stop the thread as soon as it gets EOF
+     * or any byte, and it will be marked as finished.
+     */
+    public synchronized void stop() {
+        finish = true;
+
+        notifyAll();
+    }
+}
\ No newline at end of file

Modified: felix/trunk/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml (original)
+++ felix/trunk/karaf/gshell/gshell-wrapper/src/main/resources/OSGI-INF/blueprint/gshell-wrapper.xml Thu Jul  9 08:29:14 2009
@@ -21,9 +21,7 @@
 
     <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
         <command name="wrapper/install">
-            <action class="org.apache.felix.karaf.gshell.wrapper.InstallCommand">
-                <property name="bundleContext" ref="bundleContext"/>
-            </action>
+            <action class="org.apache.felix.karaf.gshell.wrapper.InstallCommand"/>
         </command>
     </command-bundle>
 

Modified: felix/trunk/karaf/gshell/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/pom.xml?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/pom.xml (original)
+++ felix/trunk/karaf/gshell/pom.xml Thu Jul  9 08:29:14 2009
@@ -34,8 +34,7 @@
     <name>Apache Felix Karaf :: GShell</name>
 
     <modules>
-        <module>gshell-core</module>
-        <module>gshell-run</module>
+        <module>gshell-console</module>
         <module>gshell-osgi</module>
         <module>gshell-admin</module>
         <module>gshell-features</module>
@@ -44,6 +43,8 @@
         <module>gshell-log</module>
         <module>gshell-config</module>
         <module>gshell-packages</module>
+        <module>gshell-ssh</module>
+        <module>gshell-commands</module>
     </modules>
 
 </project>

Modified: felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java (original)
+++ felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Config.java Thu Jul  9 08:29:14 2009
@@ -75,9 +75,11 @@
             Module[] modules = this.modules;
             AppConfigurationEntry[] entries = new AppConfigurationEntry[modules.length];
             for (int i = 0; i < modules.length; i++) {
-                Map<String,String> options = new HashMap<String,String>();
+                Map<String,Object> options = new HashMap<String,Object>();
                 if (modules[i].getOptions() != null) {
-                    options.putAll(modules[i].getOptions());
+                    for (Map.Entry e : modules[i].getOptions().entrySet()) {
+                        options.put(e.getKey().toString(), e.getValue());
+                    }
                 }
                 options.put(ProxyLoginModule.PROPERTY_MODULE, modules[i].getClassName());
                 options.put(ProxyLoginModule.PROPERTY_BUNDLE, Long.toString(bundleContext.getBundle().getBundleId()));

Modified: felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java (original)
+++ felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/Module.java Thu Jul  9 08:29:14 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.felix.karaf.jaas.config.impl;
 
-import java.util.Map;
+import java.util.Properties;
 
 /**
  * POJO for a login module.
@@ -26,7 +26,7 @@
 
     private String className;
     private String flags;
-    private Map<String,String> options;
+    private Properties options;
 
     public String getClassName() {
         return className;
@@ -44,11 +44,11 @@
         this.flags = flags;
     }
 
-    public Map<String, String> getOptions() {
+    public Properties getOptions() {
         return options;
     }
 
-    public void setOptions(Map<String, String> options) {
+    public void setOptions(Properties options) {
         this.options = options;
     }
 

Modified: felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java (original)
+++ felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/NamespaceHandler.java Thu Jul  9 08:29:14 2009
@@ -70,7 +70,7 @@
         if (rank != null && rank.length() > 0) {
             bean.addProperty("rank", createValue(context, rank));
         }
-        NodeList childElements = element.getElementsByTagName("module");
+        NodeList childElements = element.getElementsByTagNameNS("http://felix.apache.org/karaf/xmlns/jaas/v1.0.0", "module");
         if (childElements != null && childElements.getLength() > 0) {
             MutableCollectionMetadata children = context.createMetadata(MutableCollectionMetadata.class);
             for (int i = 0; i < childElements.getLength(); ++i) {

Modified: felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java (original)
+++ felix/trunk/karaf/jaas/jaas-config/src/main/java/org/apache/felix/karaf/jaas/config/impl/OsgiConfiguration.java Thu Jul  9 08:29:14 2009
@@ -27,16 +27,14 @@
 
 public class OsgiConfiguration extends Configuration {
 
-    private List<JaasRealm> realms;
+    private final List<JaasRealm> realms = new CopyOnWriteArrayList<JaasRealm>();
 
     public void init() {
-        realms = new CopyOnWriteArrayList<JaasRealm>();
         Configuration.setConfiguration(this);
     }
 
     public void close() {
         realms.clear();
-        realms = null;
         Configuration.setConfiguration(null);
     }
 
@@ -45,9 +43,7 @@
     }
 
     public void unregister(JaasRealm realm, Map<String,?> properties) {
-        if (realms != null) {
-            realms.remove(realm);
-        }
+        realms.remove(realm);
     }
 
     public AppConfigurationEntry[] getAppConfigurationEntry(String name) {

Modified: felix/trunk/karaf/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/pom.xml?rev=792445&r1=792444&r2=792445&view=diff
==============================================================================
--- felix/trunk/karaf/pom.xml (original)
+++ felix/trunk/karaf/pom.xml Thu Jul  9 08:29:14 2009
@@ -18,7 +18,7 @@
         See the License for the specific language governing permissions and
         limitations under the License.
     -->
-
+                                      ƒ
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
@@ -66,35 +66,25 @@
     </prerequisites>
 
     <properties>
-        <config.location>etc</config.location>
-        <ant.version>1.7.0_1</ant.version>
         <aopalliance.version>1.0_1</aopalliance.version>
         <asm.version>2.2.3_1</asm.version>
         <cglib.version>2.1_3_2-SNAPSHOT</cglib.version>
-        <commons.codec.version>1.2_1</commons.codec.version>
-        <commons.httpclient.version>3.1_1</commons.httpclient.version>
-        <commons.io.version>1.3.2_1</commons.io.version>
-        <commons.jexl.version>1.1_1</commons.jexl.version>
         <commons.logging.version>1.1.1</commons.logging.version>
-        <commons.vfs.version>1.0_1</commons.vfs.version>
         <depends.maven.plugin.version>1.0</depends.maven.plugin.version>
         <easymock.version>2.4</easymock.version>
-        <equinox.version> 3.5.0.v20090429-1630</equinox.version>
+        <equinox.version> 3.5.0.v20090520</equinox.version>
         <felix.bundlerepository.version>1.4.0</felix.bundlerepository.version>
         <felix.compendium.version>1.2.0</felix.compendium.version>
         <felix.configadmin.version>1.0.4</felix.configadmin.version>
         <felix.framework.version>1.9.0-SNAPSHOT</felix.framework.version>
-        <felix.http.version>1.0.0</felix.http.version>
+        <felix.gogo.version>0.9.0-SNAPSHOT</felix.gogo.version>
         <felix.osgi.version>1.3.0-SNAPSHOT</felix.osgi.version>
         <felix.plugin.version>2.0.0</felix.plugin.version>
         <felix.prefs.version>1.0.2</felix.prefs.version>
         <felix.webconsole.version>1.2.11-SNAPSHOT</felix.webconsole.version>
         <felix.metatype.version>1.0.2</felix.metatype.version>
-        <geronimo.annotation.version>1.1.1</geronimo.annotation.version>
         <geronimo.blueprint.version>1.0.0-SNAPSHOT</geronimo.blueprint.version>
         <geronimo.servlet.version>1.1.2</geronimo.servlet.version>
-        <gshell.version>1.0-alpha-2</gshell.version>
-        <jaxp.ri.version>1.4.2_2</jaxp.ri.version>
         <jetty.bundle.version>6.1.14_1</jetty.bundle.version>
         <junit.version>3.8.2_1</junit.version>
         <jline.version>0.9.94_1</jline.version>
@@ -113,7 +103,7 @@
         <spring.version>2.5.6.SEC01</spring.version>
         <sshd.version>0.1.0</sshd.version>
         <woodstox.version>3.2.7_1</woodstox.version>
-        <osgi.jmx.version>1.0-r6125-patched</osgi.jmx.version>
+        <osgi.jmx.version>4.2.0.200907080519</osgi.jmx.version>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
@@ -243,6 +233,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.felix.karaf.gshell</groupId>
+                <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+                <version>${pom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.felix.karaf.gshell</groupId>
                 <artifactId>org.apache.felix.karaf.gshell.run</artifactId>
                 <version>${pom.version}</version>
             </dependency>
@@ -282,6 +277,16 @@
                 <version>${pom.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.felix.karaf.gshell</groupId>
+                <artifactId>org.apache.felix.karaf.gshell.ssh</artifactId>
+                <version>${pom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.felix.karaf.gshell</groupId>
+                <artifactId>org.apache.felix.karaf.gshell.commands</artifactId>
+                <version>${pom.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.felix.karaf.jaas</groupId>
                 <artifactId>org.apache.felix.karaf.jaas.boot</artifactId>
                 <version>${pom.version}</version>
@@ -571,140 +576,16 @@
                 <version>${mina.version}</version>
                 <exclusions>
                     <exclusion>
-                        <groupId>net.gleamynode</groupId>
-                        <artifactId>netty2</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.jcraft</groupId>
-                        <artifactId>jzlib</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>log4j</groupId>
-                        <artifactId>log4j</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>logkit</groupId>
-                        <artifactId>logkit</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>avalon-framework</groupId>
-                        <artifactId>avalon-framework</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>javax.servlet</groupId>
-                        <artifactId>servlet-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.support</groupId>
-                <artifactId>gshell-terminal</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>jline</groupId>
-                        <artifactId>jline</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.support</groupId>
-                <artifactId>gshell-spring</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>jcl-over-slf4j</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.support</groupId>
-                <artifactId>gshell-interpolation</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>jcl-over-slf4j</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-builtin</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>oro</groupId>
-                        <artifactId>oro</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-vfs</groupId>
-                        <artifactId>commons-vfs</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-file</artifactId>
-                <version>${gshell.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-network</artifactId>
-                <version>${gshell.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-shell</artifactId>
-                <version>${gshell.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-ssh</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.geronimo.gshell.support</groupId>
-                        <artifactId>gshell-security</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.commands</groupId>
-                <artifactId>gshell-text</artifactId>
-                <version>${gshell.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.gshell.wisdom</groupId>
-                <artifactId>gshell-wisdom-core</artifactId>
-                <version>${gshell.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.geronimo.gshell.support</groupId>
-                        <artifactId>gshell-ivy</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.geronimo.gshell.support</groupId>
-                        <artifactId>gshell-xstore</artifactId>
+                      <groupId>org.easymock</groupId>
+                      <artifactId>easymock</artifactId>
                     </exclusion>
                     <exclusion>
-                        <groupId>commons-jexl</groupId>
-                        <artifactId>commons-jexl</artifactId>
+                      <groupId>org.easymock</groupId>
+                      <artifactId>easymockclassextension</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
             <dependency>
-                <groupId>org.codehaus.plexus</groupId>
-                <artifactId>plexus-component-api</artifactId>
-                <version>1.0-alpha-32</version>
-            </dependency>
-            <dependency>
-                <groupId>org.codehaus.plexus</groupId>
-                <artifactId>plexus-utils</artifactId>
-                <version>1.5.5</version>
-            </dependency>
-            <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>
                 <version>1.4.3</version>
@@ -720,19 +601,6 @@
                 <version>1.4.3</version>
             </dependency>
             <dependency>
-                <groupId>com.thoughtworks.xstream</groupId>
-                <artifactId>xstream</artifactId>
-                <version>1.3</version>
-                <exclusions>
-                    <exclusion>
-                    <!-- xom is an optional dependency of xstream. Its also 
-                         LGPL, so its really not ASF compatible. -->
-                        <groupId>xom</groupId>
-                        <artifactId>xom</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
                 <groupId>org.ops4j.pax.logging</groupId>
                 <artifactId>pax-logging-api</artifactId>
                 <version>${pax.logging.version}</version>
@@ -769,21 +637,6 @@
                 <version>${geronimo.annotation.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.servicemix.specs</groupId>
-                <artifactId>org.apache.servicemix.specs.jaxp-api-1.4</artifactId>
-                <version>${servicemix.specs.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.servicemix.bundles</groupId>
-                <artifactId>org.apache.servicemix.bundles.jaxp-ri</artifactId>
-                <version>${jaxp.ri.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.servicemix.bundles</groupId>
-                <artifactId>org.apache.servicemix.bundles.woodstox</artifactId>
-                <version>${woodstox.version}</version>
-            </dependency>
-            <dependency>
                 <groupId>org.easymock</groupId>
                 <artifactId>easymock</artifactId>
                 <version>${easymock.version}</version>
@@ -792,58 +645,11 @@
                 <groupId>org.apache.sshd</groupId>
                 <artifactId>sshd-core</artifactId>
                 <version>${sshd.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.apache.mina</groupId>
-                        <artifactId>mina-core</artifactId>
-                    </exclusion>
-                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.osgi</groupId>
-                <artifactId>jmx</artifactId>
-                <version>${osgi.jmx.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.osgi</groupId>
-                        <artifactId>osgi_R4_core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.osgi</groupId>
-                        <artifactId>osgi_R4_compendium</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>jcl104-over-slf4j</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.easymock</groupId>
-                        <artifactId>easymock</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>com.oracle.osgi</groupId>
-                <artifactId>jmx-impl</artifactId>
+                <artifactId>org.osgi.impl.bundle.jmx</artifactId>
                 <version>${osgi.jmx.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.osgi</groupId>
-                        <artifactId>osgi_R4_core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.osgi</groupId>
-                        <artifactId>osgi_R4_compendium</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>jcl104-over-slf4j</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.easymock</groupId>
-                        <artifactId>easymock</artifactId>
-                    </exclusion>
-                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.ops4j.pax.exam</groupId>
@@ -880,6 +686,16 @@
                 <artifactId>blueprint-bundle</artifactId>
                 <version>${geronimo.blueprint.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.felix.gogo</groupId>
+                <artifactId>org.apache.felix.gogo.runtime</artifactId>
+                <version>${felix.gogo.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.felix.gogo</groupId>
+                <artifactId>org.apache.felix.gogo.commands</artifactId>
+                <version>${felix.gogo.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>