Author: gnodet
Date: Sun Sep 21 23:59:57 2008
New Revision: 697688
URL: http://svn.apache.org/viewvc?rev=697688&view=rev
Log:
SMX4KNL-36: Provide a client jar to connect to a servicemix kernel instance
Added:
servicemix/smx4/kernel/trunk/client/ (with props)
servicemix/smx4/kernel/trunk/client/pom.xml
servicemix/smx4/kernel/trunk/client/src/
servicemix/smx4/kernel/trunk/client/src/main/
servicemix/smx4/kernel/trunk/client/src/main/java/
servicemix/smx4/kernel/trunk/client/src/main/java/org/
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/Main.java
servicemix/smx4/kernel/trunk/client/src/main/resources/
servicemix/smx4/kernel/trunk/client/src/main/resources/client.login.conf
Modified:
servicemix/smx4/kernel/trunk/assembly/pom.xml
servicemix/smx4/kernel/trunk/pom.xml
Modified: servicemix/smx4/kernel/trunk/assembly/pom.xml
URL:
http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/assembly/pom.xml?rev=697688&r1=697687&r2=697688&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/assembly/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/assembly/pom.xml Sun Sep 21 23:59:57 2008
@@ -40,6 +40,11 @@
</dependency>
<dependency>
<groupId>org.apache.servicemix.kernel</groupId>
+ <artifactId>org.apache.servicemix.kernel.client</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.servicemix.kernel</groupId>
<artifactId>org.apache.servicemix.kernel.filemonitor</artifactId>
<version>${pom.version}</version>
</dependency>
@@ -238,6 +243,13 @@
<destFileName>servicemix.jar</destFileName>
</artifactItem>
<artifactItem>
+
<groupId>org.apache.servicemix.kernel</groupId>
+
<artifactId>org.apache.servicemix.kernel.client</artifactId>
+ <version>${pom.version}</version>
+
<outputDirectory>target/dependencies</outputDirectory>
+
<destFileName>servicemix-client.jar</destFileName>
+ </artifactItem>
+ <artifactItem>
<groupId>org.apache.servicemix.kernel.jaas</groupId>
<artifactId>org.apache.servicemix.kernel.jaas.boot</artifactId>
<version>${pom.version}</version>
Propchange: servicemix/smx4/kernel/trunk/client/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Sep 21 23:59:57 2008
@@ -0,0 +1,8 @@
+target
+*.iml
+*.ipr
+*.iws
+.classpath
+.project
+.settings
+eclipse-classes
Added: servicemix/smx4/kernel/trunk/client/pom.xml
URL:
http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/client/pom.xml?rev=697688&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/client/pom.xml (added)
+++ servicemix/smx4/kernel/trunk/client/pom.xml Sun Sep 21 23:59:57 2008
@@ -0,0 +1,136 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.servicemix.kernel</groupId>
+ <artifactId>kernel</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.servicemix.kernel</groupId>
+ <artifactId>org.apache.servicemix.kernel.client</artifactId>
+ <packaging>bundle</packaging>
+ <version>1.1.0-SNAPSHOT</version>
+ <name>Apache ServiceMix Kernel :: Client</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.core</artifactId>
+ <version>${pom.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-nop</artifactId>
+ <version>1.5.0</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
+
<Main-Class>org.apache.servicemix.kernel.client.Main</Main-Class>
+ <Class-Path>
+
../system/org/apache/servicemix/kernel/gshell/org.apache.servicemix.kernel.gshell.core/${pom.version}/org.apache.servicemix.kernel.gshell.core-${pom.version}.jar
+
../system/org/apache/servicemix/bundles/org.apache.servicemix.bundles.mina/${mina.version}/org.apache.servicemix.bundles.mina-${mina.version}.jar
+ </Class-Path>
+ <Bundle-Name>Apache ServiceMix Shell
Client</Bundle-Name>
+ <Bundle-Description>Shell client bundle for Apache
ServiceMix Kernel.</Bundle-Description>
+
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+
<Export-Package>org.apache.servicemix.kernel.client</Export-Package>
+ <Private-Package>
+
org.apache.servicemix.kernel.client;-split-package:=merge-first,
+ org.slf4j;-split-package:=merge-first,
+ org.slf4j.spi;-split-package:=merge-first,
+ org.slf4j.helpers;-split-package:=merge-first,
+ org.slf4j.impl;-split-package:=merge-first,
+ META-INF;-split-package:=merge-first
+ </Private-Package>
+ <Import-Package>!*</Import-Package>
+ </instructions>
+ <unpackBundle>true</unpackBundle>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <artifactSet>
+ <includes>
+
<include>org.apache.felix:org.apache.felix.framework</include>
+
<include>org.apache.felix:org.osgi.core</include>
+
<include>${project.groupId}:${project.artifactId}</include>
+ </includes>
+ </artifactSet>
+ <filters>
+ <filter>
+
<artifact>org.apache.felix:org.apache.felix.framework</artifact>
+ <excludes>
+ <exclude>org/apache/felix/**</exclude>
+ <exclude>org/osgi/**</exclude>
+ </excludes>
+ </filter>
+ <filter>
+
<artifact>org.apache.felix:org.osgi.core</artifact>
+ <excludes>
+ <exclude>org/osgi/**</exclude>
+ </excludes>
+ </filter>
+ </filters>
+
<createSourcesJar>${createSourcesJar}</createSourcesJar>
+
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+
<createDependencyReducedPom>true</createDependencyReducedPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </build>
+
+</project>
\ No newline at end of file
Added:
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/Main.java
URL:
http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/Main.java?rev=697688&view=auto
==============================================================================
---
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/Main.java
(added)
+++
servicemix/smx4/kernel/trunk/client/src/main/java/org/apache/servicemix/kernel/client/Main.java
Sun Sep 21 23:59:57 2008
@@ -0,0 +1,134 @@
+/*
+ * 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.servicemix.kernel.client;
+
+import java.net.URI;
+import java.util.List;
+import java.util.LinkedList;
+import java.io.Reader;
+import java.io.InputStreamReader;
+import java.io.BufferedReader;
+
+import org.apache.geronimo.gshell.remote.crypto.CryptoContext;
+import org.apache.geronimo.gshell.remote.client.RshClient;
+import org.apache.geronimo.gshell.remote.client.RemoteExecuteException;
+import org.apache.geronimo.gshell.remote.client.handler.EchoHandler;
+import org.apache.geronimo.gshell.remote.client.handler.ClientMessageHandler;
+import org.apache.geronimo.gshell.whisper.transport.TransportException;
+import org.apache.geronimo.gshell.whisper.transport.TransportFactory;
+import org.apache.geronimo.gshell.whisper.transport.TransportFactoryLocator;
+import
org.apache.geronimo.gshell.whisper.transport.tcp.SpringTcpTransportFactory;
+import org.apache.geronimo.gshell.whisper.stream.StreamFeeder;
+import org.apache.geronimo.gshell.layout.NotFoundException;
+import org.apache.geronimo.gshell.ExitNotification;
+
+/**
+ * A very simple
+ */
+public class Main {
+
+ public static void main(String[] args) throws Exception {
+ URI address = new URI("tcp://127.0.0.1:8101/");
+ String user = "smx";
+ String password = "smx";
+ StringBuilder sb = new StringBuilder();
+
+ boolean options = true;
+ for (int i = 0; i < args.length; i++) {
+ if (args[i].charAt(0) == '-') {
+ if (args[i].equals("-a")) {
+ address = new URI(args[++i]);
+ } else if (args[i].equals("-u")) {
+ user = args[++i];
+ } else if (args[i].equals("-p")) {
+ password = args[++i];
+ } else if (args[i].equals("--help")) {
+ System.out.println("Apache ServiceMix Kernel client");
+ System.out.println(" -a [address] specify the URL to
connect to");
+ System.out.println(" -u [user] specify the user
name");
+ System.out.println(" -p [password] specify the password");
+ System.out.println(" --help shows this help
message");
+ System.out.println(" [commands] commands to run");
+ System.out.println("If no commands are specified, the
client will be put in an interactive mode");
+ } else {
+ System.err.println("Unknown option: " + args[i]);
+ System.err.println("Run with --help for usage");
+ System.exit(1);
+ }
+ } else {
+ sb.append(args[i]);
+ sb.append(' ');
+ options = false;
+ }
+ }
+ RshClient client = null;
+ try {
+ CryptoContext context = new CryptoContext("RSA", null);
+ List<ClientMessageHandler> handlers = new
LinkedList<ClientMessageHandler>();
+ handlers.add(new EchoHandler());
+ client = new RshClient(context, new Locator(), handlers);
+
+ client.initialize();
+ client.connect(address, new URI("tcp://0.0.0.0:0"));
+ client.login(user, password);
+ StreamFeeder outputFeeder = new
StreamFeeder(client.getInputStream(), System.out);
+ outputFeeder.createThread().start();
+ client.openShell();
+ System.out.println("Connected");
+
+ String commandLine = sb.toString().trim();
+ if (commandLine.length() > 0) {
+ client.execute(commandLine);
+ } else {
+ BufferedReader r = new BufferedReader(new
InputStreamReader(System.in));
+ for (;;) {
+ System.out.print("> ");
+ String s = r.readLine().trim();
+ if (s.length() > 0) {
+ try {
+ client.execute(s);
+ } catch (RemoteExecuteException e) {
+ String name = e.getCause().getClass().getName();
+ name = name.substring(name.lastIndexOf('.') + 1);
+ System.err.println(name + ": " +
e.getCause().getMessage());
+ }
+ }
+ }
+ }
+ } catch (ExitNotification e) {
+ System.exit(0);
+ } catch (Throwable t) {
+ t.printStackTrace();
+ System.exit(1);
+ } finally {
+ try {
+ client.closeShell();
+ client.close();
+ } catch (Throwable t) { }
+ }
+ System.exit(0);
+ }
+
+ private static class Locator implements TransportFactoryLocator {
+ SpringTcpTransportFactory factory = new SpringTcpTransportFactory();
+
+ public TransportFactory locate(URI arg0) throws TransportException {
+ return factory;
+ }
+
+ }
+}
Added: servicemix/smx4/kernel/trunk/client/src/main/resources/client.login.conf
URL:
http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/client/src/main/resources/client.login.conf?rev=697688&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/client/src/main/resources/client.login.conf
(added)
+++ servicemix/smx4/kernel/trunk/client/src/main/resources/client.login.conf
Sun Sep 21 23:59:57 2008
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+//
+// $Rev: 580717 $ $Date: 2007-09-30 14:47:55 +0200 (Sun, 30 Sep 2007) $
+//
+
+RshClient {
+ org.apache.geronimo.gshell.remote.client.auth.RemoteLoginModule required;
+};
Modified: servicemix/smx4/kernel/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/pom.xml?rev=697688&r1=697687&r2=697688&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/pom.xml Sun Sep 21 23:59:57 2008
@@ -40,6 +40,7 @@
<module>gshell</module>
<module>spring</module>
<module>jaas</module>
+ <module>client</module>
<module>assembly</module>
</modules>
@@ -65,6 +66,7 @@
<cglib.version>2.1_3_1</cglib.version>
<commons.io.version>1.3.2_1</commons.io.version>
<commons.logging.version>1.1.1</commons.logging.version>
+ <depends.maven.plugin.version>1.0</depends.maven.plugin.version>
<felix.configadmin.version>1.0.0</felix.configadmin.version>
<felix.main.version>1.0.4</felix.main.version>
<felix.plugin.version>1.4.1</felix.plugin.version>
@@ -82,8 +84,10 @@
<pax.logging.version>1.1.1</pax.logging.version>
<pax.url.version>0.3.2</pax.url.version>
<servicemix.legal.version>1.0</servicemix.legal.version>
+ <servicemix.specs.version>1.1.0</servicemix.specs.version>
<spring.osgi.version>1.1.0</spring.osgi.version>
<spring.version>2.5.5</spring.version>
+ <woodstox.version>3.2.7_1</woodstox.version>
</properties>
<repositories>