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);
+ }
+}