You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/24 11:37:11 UTC
svn commit: r1222955 - in /openejb/trunk/openejb/osgi: ./ openejb-core-osgi/
openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/
openejb-feature/src/main/feature/ openejb-karaf-commands/
openejb-karaf-commands/src/ openejb-karaf-commands...
Author: rmannibucau
Date: Sat Dec 24 10:37:10 2011
New Revision: 1222955
URL: http://svn.apache.org/viewvc?rev=1222955&view=rev
Log:
adding openejb:list and openejb:bundles karaf commands
Added:
openejb/trunk/openejb/osgi/openejb-karaf-commands/
openejb/trunk/openejb/osgi/openejb-karaf-commands/pom.xml
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/DeployedBundles.java
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/ListEJBs.java
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Line.java
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Lines.java
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/
openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/openejb-commands.xml
Modified:
openejb/trunk/openejb/osgi/openejb-core-osgi/pom.xml
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
openejb/trunk/openejb/osgi/openejb-feature/src/main/feature/feature.xml
openejb/trunk/openejb/osgi/pom.xml
Modified: openejb/trunk/openejb/osgi/openejb-core-osgi/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/pom.xml?rev=1222955&r1=1222954&r2=1222955&view=diff
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-core-osgi/pom.xml (original)
+++ openejb/trunk/openejb/osgi/openejb-core-osgi/pom.xml Sat Dec 24 10:37:10 2011
@@ -55,7 +55,7 @@
<configuration>
<instructions>
<Bundle-Activator>org.apache.openejb.core.osgi.impl.Activator</Bundle-Activator>
- <Export-Package>org.apache.openejb.core.osgi.*</Export-Package>
+ <Export-Package>org.apache.openejb.core.osgi.*;version=${openejb.osgi.export.version}</Export-Package>
<Import-Package>
'=META-INF.org^.apache^.openejb',
javax.annotation;version="[1.1.0,2.0.0)";resolution:=optional,
Modified: openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java?rev=1222955&r1=1222954&r2=1222955&view=diff
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java (original)
+++ openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Deployer.java Sat Dec 24 10:37:10 2011
@@ -51,6 +51,7 @@ import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Properties;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -58,8 +59,7 @@ import java.util.concurrent.ConcurrentHa
*/
public class Deployer implements BundleListener {
private static final Logger LOGGER = LoggerFactory.getLogger(Deployer.class);
- public static final String META_INF_NAME = "META-INF.";
- public static final String SERVICES_NAME = "services.";
+ private static Deployer INSTANCE = null;
private final Map<Bundle, List<ServiceRegistration>> registrations = new ConcurrentHashMap<Bundle, List<ServiceRegistration>>();
private final Map<Bundle, String> paths = new ConcurrentHashMap<Bundle, String>();
@@ -68,6 +68,11 @@ public class Deployer implements BundleL
public Deployer(Activator activator) {
openejbActivator = activator;
+ INSTANCE = this;
+ }
+
+ public static Deployer instance() {
+ return INSTANCE;
}
public void bundleChanged(BundleEvent event) {
@@ -244,6 +249,10 @@ public class Deployer implements BundleL
}
}
+ public Set<Bundle> deployedBundles() {
+ return paths.keySet();
+ }
+
private static String[] str(Class<?>[] itfs) {
String[] itfsStr = new String[itfs.length];
for (int i = 0; i < itfs.length; i++) {
Modified: openejb/trunk/openejb/osgi/openejb-feature/src/main/feature/feature.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-feature/src/main/feature/feature.xml?rev=1222955&r1=1222954&r2=1222955&view=diff
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-feature/src/main/feature/feature.xml (original)
+++ openejb/trunk/openejb/osgi/openejb-feature/src/main/feature/feature.xml Sat Dec 24 10:37:10 2011
@@ -111,6 +111,7 @@
<bundle>mvn:org.apache.openejb/openejb-jee/${project.version}</bundle>
<bundle>mvn:org.apache.openejb/openejb-loader/${project.version}</bundle>
<bundle>mvn:org.apache.openejb/openejb-core-osgi/${project.version}</bundle>
+ <bundle>mvn:org.apache.openejb/openejb-karaf-commands/${project.version}</bundle>
</feature>
<feature name="openejb-core" version="${project.version}">
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/pom.xml?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/pom.xml (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/pom.xml Sat Dec 24 10:37:10 2011
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>osgi</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>4.0.0-beta-2-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>openejb-karaf-commands</artifactId>
+ <name>OpenEJB :: OSGi :: Karaf Commands</name>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <karaf.version>2.2.4</karaf.version>
+
+ <openejb.osgi.private.pkg>!*</openejb.osgi.private.pkg>
+ <openejb.osgi.export>org.apache.openejb.karaf*;version=${openejb.osgi.export.version}</openejb.osgi.export>
+ <openejb.osgi.import>
+ javax.management,
+ javax.management.loading,
+ org.apache.felix.gogo.commands;version="[0.10,1)",
+ org.apache.felix.gogo.commands.basic;version="[0.10,1)",
+ org.osgi.service.blueprint;version="[1.0.0,2.0.0)",
+ org.apache.karaf.shell.console;version="[2.2,3)",
+ org.apache.karaf.shell.console.completer;version="[2.2,3)",
+ org.apache.openejb.loader;version="[4.0,5.0)",
+ org.apache.openejb.spi;version="[4.0,5.0)",
+ org.apache.openejb.core.osgi.impl;version="[4.0,5.0)",
+ *
+ </openejb.osgi.import>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core-osgi</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.console</artifactId>
+ <version>${karaf.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>${osgi.framework.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>${osgi.framework.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/DeployedBundles.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/DeployedBundles.java?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/DeployedBundles.java (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/DeployedBundles.java Sat Dec 24 10:37:10 2011
@@ -0,0 +1,23 @@
+package org.apache.openejb.karaf;
+
+import org.apache.felix.gogo.commands.Command;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.openejb.core.osgi.impl.Deployer;
+import org.apache.openejb.karaf.table.Line;
+import org.apache.openejb.karaf.table.Lines;
+import org.osgi.framework.Bundle;
+
+@Command(scope = "openejb", name = "bundles", description = "Lists all deployed bundles")
+public class DeployedBundles extends OsgiCommandSupport {
+ @Override
+ protected Object doExecute() throws Exception {
+ Lines lines = new Lines();
+ lines.add(new Line("Id", "Symbolic name", "Version"));
+ for (Bundle bundle : Deployer.instance().deployedBundles()) {
+ lines.add(new Line(Long.toString(bundle.getBundleId()), bundle.getSymbolicName(), bundle.getVersion().toString()));
+ }
+
+ lines.print(System.out);
+ return null;
+ }
+}
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/ListEJBs.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/ListEJBs.java?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/ListEJBs.java (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/ListEJBs.java Sat Dec 24 10:37:10 2011
@@ -0,0 +1,55 @@
+package org.apache.openejb.karaf;
+
+import org.apache.felix.gogo.commands.Command;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.openejb.BeanContext;
+import org.apache.openejb.karaf.table.Line;
+import org.apache.openejb.karaf.table.Lines;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
+
+import java.util.Arrays;
+
+@Command(scope = "openejb", name = "list", description = "Lists all EJBs.")
+public class ListEJBs extends OsgiCommandSupport {
+ @Override
+ protected Object doExecute() throws Exception {
+ final ContainerSystem cs = SystemInstance.get().getComponent(ContainerSystem.class);
+ Lines lines = new Lines();
+ lines.add(new Line("Name", "Class", "Type"));
+ for (BeanContext bc : cs.deployments()) {
+ if (BeanContext.Comp.class.equals(bc.getBeanClass())) {
+ continue;
+ }
+
+ lines.add(new Line(bc.getEjbName(), bc.getBeanClass().getName(), getType(bc)));
+ }
+
+ lines.print(System.out);
+
+ return null;
+ }
+
+ private static String getType(final BeanContext bc) {
+ boolean empty = true;
+ final StringBuilder sb = new StringBuilder();
+ if (bc.isLocalbean()) {
+ sb.append("LocalBean[").append(bc.getBeanClass()).append("]");
+ empty = false;
+ }
+ if (bc.getBusinessLocalInterface() != null) {
+ if (!empty) {
+ sb.append(", ");
+ }
+ sb.append("Local").append(Arrays.asList(bc.getBusinessLocalInterfaces()));
+ empty = false;
+ }
+ if (bc.getBusinessRemoteInterface() != null) {
+ if (!empty) {
+ sb.append(", ");
+ }
+ sb.append("Remote").append(Arrays.asList(bc.getBusinessRemoteInterfaces()));
+ }
+ return sb.toString();
+ }
+}
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Line.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Line.java?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Line.java (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Line.java Sat Dec 24 10:37:10 2011
@@ -0,0 +1,64 @@
+package org.apache.openejb.karaf.table;
+
+import java.io.PrintStream;
+
+public class Line {
+ public static final String COL_SEP = "|";
+ public static final String HEADER_CHAR = "=";
+ public static final String LINE_CHAR = "-";
+ public static final char EMPTY_CHAR = ' ';
+
+ private String[] columns;
+
+ public Line(String... columns) {
+ this.columns = columns;
+ }
+
+ public String[] getColumns() {
+ return columns;
+ }
+
+ public void print(final int[] max, final PrintStream out) {
+ print(max, out, false);
+ }
+
+ public void print(final int[] max, final PrintStream out, boolean header) {
+ final StringBuilder sb = new StringBuilder("");
+ for (int i = 0; i < max.length; i++) {
+ sb.append(EMPTY_CHAR);
+ int spaces = max[i] - columns[i].length();
+ for (int k = 0; k < spaces / 2; k++) {
+ sb.append(EMPTY_CHAR);
+ }
+ sb.append(columns[i]);
+ for (int k = 0; k < spaces - (spaces / 2); k++) {
+ sb.append(EMPTY_CHAR);
+ }
+ sb.append(EMPTY_CHAR).append(COL_SEP);
+ }
+
+ final String lineStr = sb.toString();
+
+ final StringBuilder sep = new StringBuilder("");
+ final String s;
+ if (header) {
+ s = HEADER_CHAR;
+ } else {
+ s = LINE_CHAR;
+ }
+ for (int i = 0; i < lineStr.length(); i++) {
+ sep.append(s);
+ }
+
+ if (header) {
+ printLine(out, sep.toString());
+ }
+
+ printLine(out, lineStr);
+ printLine(out, sep.toString());
+ }
+
+ private static void printLine(final PrintStream out, final String s) {
+ out.println(s);
+ }
+}
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Lines.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Lines.java?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Lines.java (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/java/org/apache/openejb/karaf/table/Lines.java Sat Dec 24 10:37:10 2011
@@ -0,0 +1,49 @@
+package org.apache.openejb.karaf.table;
+
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+public class Lines {
+ private List<Line> lines = new ArrayList<Line>();
+
+ public void add(Line line) {
+ if (!lines.isEmpty() && lines.iterator().next().getColumns().length != line.getColumns().length) {
+ throw new IllegalArgumentException("columns should have all the same size");
+ }
+ lines.add(line);
+ }
+
+ public void print(final PrintStream out) {
+ print(out, true);
+ }
+
+ public void print(final PrintStream out, boolean headers) {
+ final Iterator<Line> it = lines.iterator();
+ if (!it.hasNext()) {
+ return;
+ }
+
+ int[] max = max(lines);
+ it.next().print(max, out, headers);
+ while (it.hasNext()) {
+ it.next().print(max, out);
+ }
+ }
+
+ private static int[] max(final List<Line> lines) {
+ int[] max = new int[lines.iterator().next().getColumns().length];
+ for (Line line : lines) {
+ for (int i = 0; i < max.length; i++) {
+ int ll = line.getColumns()[i].length();
+ if (max[i] == 0) { // init
+ max[i] = ll;
+ } else if (max[i] < ll) {
+ max[i] = ll;
+ }
+ }
+ }
+ return max;
+ }
+}
Added: openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/openejb-commands.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/openejb-commands.xml?rev=1222955&view=auto
==============================================================================
--- openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/openejb-commands.xml (added)
+++ openejb/trunk/openejb/osgi/openejb-karaf-commands/src/main/resources/OSGI-INF/blueprint/openejb-commands.xml Sat Dec 24 10:37:10 2011
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
+ <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0">
+ <command name="openejb/list">
+ <action class="org.apache.openejb.karaf.ListEJBs"/>
+ </command>
+ <command name="openejb/bundles">
+ <action class="org.apache.openejb.karaf.DeployedBundles"/>
+ </command>
+ </command-bundle>
+</blueprint>
\ No newline at end of file
Modified: openejb/trunk/openejb/osgi/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/pom.xml?rev=1222955&r1=1222954&r2=1222955&view=diff
==============================================================================
--- openejb/trunk/openejb/osgi/pom.xml (original)
+++ openejb/trunk/openejb/osgi/pom.xml Sat Dec 24 10:37:10 2011
@@ -16,5 +16,6 @@
<modules>
<module>openejb-core-osgi</module>
<module>openejb-feature</module>
+ <module>openejb-karaf-commands</module>
</modules>
</project>