Author: marrs
Date: Tue Dec  8 11:17:34 2009
New Revision: 888331

URL: http://svn.apache.org/viewvc?rev=888331&view=rev
Log:
shell now works both in eclipse and equinox

Added:
    
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/EquinoxDMCommand.java
    
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/FelixDMCommand.java
Modified:
    felix/trunk/dependencymanager/shell/pom.xml
    
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/Activator.java
    
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/DMCommand.java

Modified: felix/trunk/dependencymanager/shell/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/shell/pom.xml?rev=888331&r1=888330&r2=888331&view=diff
==============================================================================
--- felix/trunk/dependencymanager/shell/pom.xml (original)
+++ felix/trunk/dependencymanager/shell/pom.xml Tue Dec  8 11:17:34 2009
@@ -50,6 +50,11 @@
       <artifactId>org.apache.felix.dependencymanager</artifactId>
       <version>3.0.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>org.eclipse.equinox</groupId>
+      <artifactId>osgi</artifactId>
+      <version>3.1.1</version>
+    </dependency>
   </dependencies>
   <build>
     <plugins>
@@ -65,6 +70,7 @@
             <Bundle-Name>Apache Felix Dependency Manager Shell</Bundle-Name>
             <Bundle-Description>Shell command for the dependency 
manager.</Bundle-Description>
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
+            
<Import-Package>org.apache.felix.dm.management;version="3.0",org.apache.felix.dm.shell,org.apache.felix.shell;version="1.0";resolution:=optional,org.osgi.framework;version="1.3",org.eclipse.osgi.framework.console;resolution:=optional</Import-Package>
           </instructions>
         </configuration>
       </plugin>

Modified: 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/Activator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/Activator.java?rev=888331&r1=888330&r2=888331&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/Activator.java
 (original)
+++ 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/Activator.java
 Tue Dec  8 11:17:34 2009
@@ -18,10 +18,8 @@
  */
 package org.apache.felix.dm.shell;
 
-import org.apache.felix.shell.Command;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
 
 /**
  * Bundle activator for the dependency manager shell command.
@@ -29,13 +27,19 @@
  * @author <a href="mailto:[email protected]";>Felix Project Team</a>
  */
 public class Activator implements BundleActivator {
-    private ServiceRegistration m_serviceRegistration;
-
     public void start(BundleContext context) throws Exception {
-        m_serviceRegistration = 
context.registerService(Command.class.getName(), new DMCommand(context), null);
+        try {
+            context.registerService("org.apache.felix.shell.Command", new 
DMCommand(context), null);
+        }
+        catch (Throwable t) {
+        }
+        try {
+            
context.registerService("org.eclipse.osgi.framework.console.CommandProvider", 
new EquinoxDMCommand(context), null);
+        }
+        catch (Throwable t) {
+        }
     }
 
     public void stop(BundleContext context) throws Exception {
-        m_serviceRegistration.unregister();
     }
 }

Modified: 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/DMCommand.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/DMCommand.java?rev=888331&r1=888330&r2=888331&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/DMCommand.java
 (original)
+++ 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/DMCommand.java
 Tue Dec  8 11:17:34 2009
@@ -26,7 +26,6 @@
 
 import org.apache.felix.dm.management.ServiceComponent;
 import org.apache.felix.dm.management.ServiceComponentDependency;
-import org.apache.felix.shell.Command;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.InvalidSyntaxException;
@@ -38,7 +37,7 @@
  * 
  * @author <a href="mailto:[email protected]";>Felix Project Team</a>
  */
-public class DMCommand implements Command {
+public class DMCommand {
     private static final BundleIdSorter SORTER = new BundleIdSorter();
     private final BundleContext m_context;
 

Added: 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/EquinoxDMCommand.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/EquinoxDMCommand.java?rev=888331&view=auto
==============================================================================
--- 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/EquinoxDMCommand.java
 (added)
+++ 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/EquinoxDMCommand.java
 Tue Dec  8 11:17:34 2009
@@ -0,0 +1,34 @@
+package org.apache.felix.dm.shell;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import org.eclipse.osgi.framework.console.CommandInterpreter;
+import org.eclipse.osgi.framework.console.CommandProvider;
+import org.osgi.framework.BundleContext;
+
+public class EquinoxDMCommand extends DMCommand implements CommandProvider {
+    public EquinoxDMCommand(BundleContext context) {
+        super(context);
+    }
+    
+    public void _dm(CommandInterpreter ci) {
+        StringBuffer line = new StringBuffer("");
+        String arg = ci.nextArgument();
+        while (arg != null) {
+            if (line.length() > 0) {
+                line.append(' ');
+            }
+            line.append(arg);
+            arg = ci.nextArgument();
+        }
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+        ByteArrayOutputStream errorBytes = new ByteArrayOutputStream();
+        super.execute(line.toString(), new PrintStream(bytes), new 
PrintStream(errorBytes));
+        ci.print(new String(bytes.toByteArray()));
+    }
+
+    public String getHelp() {
+        return "\t" + super.getUsage() + " - " + super.getShortDescription() + 
"\n";
+    }
+}

Added: 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/FelixDMCommand.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/FelixDMCommand.java?rev=888331&view=auto
==============================================================================
--- 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/FelixDMCommand.java
 (added)
+++ 
felix/trunk/dependencymanager/shell/src/main/java/org/apache/felix/dm/shell/FelixDMCommand.java
 Tue Dec  8 11:17:34 2009
@@ -0,0 +1,10 @@
+package org.apache.felix.dm.shell;
+
+import org.apache.felix.shell.Command;
+import org.osgi.framework.BundleContext;
+
+public class FelixDMCommand extends DMCommand implements Command {
+    public FelixDMCommand(BundleContext context) {
+        super(context);
+    }
+}


Reply via email to