You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/10/02 04:00:10 UTC

svn commit: r700985 - in /servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main: java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java resources/META-INF/spring/gshell-admin.xml

Author: gnodet
Date: Wed Oct  1 19:00:10 2008
New Revision: 700985

URL: http://svn.apache.org/viewvc?rev=700985&view=rev
Log:
SMX4KNL-107: Create a new 'admin connect' command to easily connect to a named instanceof servicemix

Added:
    servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java
Modified:
    servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/resources/META-INF/spring/gshell-admin.xml

Added: servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java?rev=700985&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/java/org/apache/servicemix/kernel/gshell/admin/internal/commands/ConnectCommand.java Wed Oct  1 19:00:10 2008
@@ -0,0 +1,61 @@
+/*
+ * 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.gshell.admin.internal.commands;
+
+import org.apache.geronimo.gshell.command.annotation.CommandComponent;
+import org.apache.geronimo.gshell.command.CommandExecutor;
+import org.apache.geronimo.gshell.clp.Argument;
+import org.apache.geronimo.gshell.clp.Option;
+import org.osgi.framework.ServiceReference;
+
+@CommandComponent(id="admin:connect", description="Connect to the given instance")
+public class ConnectCommand extends AdminCommandSupport {
+
+    @Argument(index=0, required=true, description="The instance name")
+    private String instance = null;
+
+    @Option(name="-u", aliases={"--username"}, metaVar="USERNAME", description="Remote user name")
+    private String username = "smx";
+
+    @Option(name="-p", aliases={"--password"}, metaVar="PASSWORD", description="Remote user password")
+    private String password = "smx";
+
+    protected Object doExecute() throws Exception {
+        int port = getExistingInstance(instance).getPort();
+        ServiceReference ref = getBundleContext().getServiceReference(org.apache.geronimo.gshell.command.CommandExecutor.class.getName());
+        if (ref == null) {
+            io.out.println("CommandExecutor service is unavailable.");
+            return null;
+        }
+        try {
+            CommandExecutor exec = (CommandExecutor) getBundleContext().getService(ref);
+            if (exec == null) {
+                io.out.println("CommandExecutor service is unavailable.");
+                return null;
+            }
+
+            exec.execute("remote rsh -u " + username + " -p " + password + " tcp://localhost:" + port);
+        }
+        finally {
+            getBundleContext().ungetService(ref);
+        }
+
+        return SUCCESS;
+    }
+}

Modified: servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/resources/META-INF/spring/gshell-admin.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/resources/META-INF/spring/gshell-admin.xml?rev=700985&r1=700984&r2=700985&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/resources/META-INF/spring/gshell-admin.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-admin/src/main/resources/META-INF/spring/gshell-admin.xml Wed Oct  1 19:00:10 2008
@@ -40,6 +40,10 @@
         <property name="adminService" ref="adminService" />
     </bean>
 
+    <bean id="connect" class="org.apache.servicemix.kernel.gshell.admin.internal.commands.ConnectCommand">
+        <property name="adminService" ref="adminService" />
+    </bean>
+
     <bean id="list" class="org.apache.servicemix.kernel.gshell.admin.internal.commands.ListCommand">
         <property name="adminService" ref="adminService" />
     </bean>
@@ -67,6 +71,13 @@
       </osgi:service-properties>
     </osgi:service>
 
+    <osgi:service ref="connect" interface="org.apache.geronimo.gshell.command.Command">
+      <osgi:service-properties>
+        <entry key="shell" value="admin"/>
+      	<entry key="name" value="connect"/>
+      </osgi:service-properties>
+    </osgi:service>
+
     <osgi:service ref="list" interface="org.apache.geronimo.gshell.command.Command">
       <osgi:service-properties>
         <entry key="shell" value="admin"/>