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>
