You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rz...@apache.org on 2026/09/07 19:03:29 UTC
(tomee) branch TOMEE-4702 created (now ddf350048c)
This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a change to branch TOMEE-4702
in repository https://gitbox.apache.org/repos/asf/tomee.git
at ddf350048c TOMEE-4702 - Drop openejb-common-cli
This branch includes the following new commits:
new ddf350048c TOMEE-4702 - Drop openejb-common-cli
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(tomee) 01/01: TOMEE-4702 - Drop openejb-common-cli
Posted by rz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch TOMEE-4702
in repository https://gitbox.apache.org/repos/asf/tomee.git
commit ddf350048c56c2039baf2995d02729081414e703
Author: Richard Zowalla <rz...@apache.org>
AuthorDate: Mon Sep 7 21:02:24 2026 +0200
TOMEE-4702 - Drop openejb-common-cli
---
server/openejb-common-cli/pom.xml | 75 ------
.../org/apache/openejb/server/cli/CliRunnable.java | 286 ---------------------
.../openejb/server/cli/CliRuntimeException.java | 23 --
.../apache/openejb/server/cli/StreamManager.java | 131 ----------
.../server/cli/command/AbstractCommand.java | 53 ----
.../openejb/server/cli/command/CatCommand.java | 64 -----
.../server/cli/command/ClassLoaderCommand.java | 109 --------
.../apache/openejb/server/cli/command/Command.java | 32 ---
.../apache/openejb/server/cli/command/Deploy.java | 32 ---
.../server/cli/command/DeployedAppCommand.java | 47 ----
.../openejb/server/cli/command/ExitCommand.java | 26 --
.../openejb/server/cli/command/HelpCommand.java | 42 ---
.../openejb/server/cli/command/ListCommand.java | 33 ---
.../server/cli/command/LocalJMXCommand.java | 266 -------------------
.../openejb/server/cli/command/LsCommand.java | 61 -----
.../openejb/server/cli/command/PartCommand.java | 111 --------
.../openejb/server/cli/command/PathCommand.java | 44 ----
.../server/cli/command/PropertiesCommand.java | 32 ---
.../openejb/server/cli/command/ScriptCommand.java | 50 ----
.../server/cli/command/ScriptFileCommand.java | 68 -----
.../openejb/server/cli/command/Undeploy.java | 32 ---
.../src/main/resources/META-INF/scan.xml | 23 --
.../src/main/resources/branding.properties | 28 --
.../java/org/apache/openejb/server/groovy/Bar.java | 26 --
.../server/groovy/BeanManagerHelperTest.java | 78 ------
.../java/org/apache/openejb/server/groovy/Foo.java | 29 ---
.../server/groovy/OpenEJBGroovyShellTest.java | 52 ----
.../src/test/resources/META-INF/beans.xml | 19 --
server/pom.xml | 1 -
29 files changed, 1873 deletions(-)
diff --git a/server/openejb-common-cli/pom.xml b/server/openejb-common-cli/pom.xml
deleted file mode 100644
index 573635bfc9..0000000000
--- a/server/openejb-common-cli/pom.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
--->
-<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>server</artifactId>
- <groupId>org.apache.tomee</groupId>
- <version>11.0.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>openejb-common-cli</artifactId>
- <name>TomEE :: Server :: Common CLI</name>
-
- <properties>
- <tomee.build.name>${project.groupId}.server.common.cli</tomee.build.name>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>openejb-core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>openejb-loader</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- </dependency>
- <dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-reflect</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.xbean</groupId>
- <artifactId>xbean-finder-shaded</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
-
- <!-- Test scope -->
- <dependency>
- <groupId>org.codehaus.groovy</groupId>
- <artifactId>groovy-all</artifactId>
- <scope>test</scope>
- </dependency>
-
-
- </dependencies>
-</project>
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
deleted file mode 100644
index c07303afa8..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * 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.openejb.server.cli;
-
-import jline.console.ConsoleReader;
-import jline.console.completer.FileNameCompleter;
-import jline.console.completer.StringsCompleter;
-import org.apache.openejb.config.ConfigurableClasspathArchive;
-import org.apache.openejb.server.cli.command.AbstractCommand;
-import org.apache.openejb.server.cli.command.Command;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.util.OpenEJBScripter;
-import org.apache.openejb.util.OpenEjbVersion;
-import org.apache.xbean.finder.Annotated;
-import org.apache.xbean.finder.AnnotationFinder;
-import org.apache.xbean.finder.IAnnotationFinder;
-import org.apache.xbean.finder.UrlSet;
-import org.apache.xbean.recipe.ObjectRecipe;
-import org.apache.xbean.recipe.Option;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
-
-public class CliRunnable implements Runnable {
-
- private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB_SERVER, CliRunnable.class);
-
- private static final String BRANDING_FILE = "branding.properties";
- private static final String WELCOME_KEY_PREFIX = "welcome_";
- private static final String WELCOME_COMMON_KEY = WELCOME_KEY_PREFIX + "common";
- private static final String WELCOME_OPENEJB_KEY = WELCOME_KEY_PREFIX + "openejb";
- private static final String WELCOME_TOMEE_KEY = WELCOME_KEY_PREFIX + "tomee";
-
- public static final String TOMEE_NAME = "TomEE";
- public static final String OPENEJB_NAME = "OpenEJB";
-
- public static final String EXIT_COMMAND = "exit";
- private static final String OS_LINE_SEP = System.getProperty("line.separator");
- private static final String NAME;
- private static final String PROMPT;
- private static final String PROMPT_SUFFIX = "> ";
-
- private static final Properties PROPERTIES = new Properties();
- private static final boolean tomee;
- private static final Map<String, Class<?>> COMMANDS = new TreeMap<>();
- private static final OpenEJBScripter scripter = new OpenEJBScripter();
-
- static {
- String name = OPENEJB_NAME;
- try {
- CliRunnable.class.getClassLoader().loadClass("org.apache.tomee.loader.TomcatHook");
- name = TOMEE_NAME;
- } catch (ClassNotFoundException cnfe) {
- // ignored, we are using a simple OpenEJB server
- }
- tomee = TOMEE_NAME.equals(name);
- NAME = name;
- PROMPT = NAME.toLowerCase() + PROMPT_SUFFIX;
-
- try {
- PROPERTIES.load(CliRunnable.class.getClassLoader().getResourceAsStream(BRANDING_FILE));
- } catch (IOException e) {
- // no-op
- }
-
- final ClassLoader loader = CliRunnable.class.getClassLoader();
- try {
- UrlSet urlSet = new UrlSet(loader).excludeJvm();
- urlSet = urlSet.exclude(loader.getParent());
-
- //noinspection unchecked
- final IAnnotationFinder finder = new AnnotationFinder(new ConfigurableClasspathArchive(new ConfigurableClasspathArchive.FakeModule(loader, Collections.EMPTY_MAP),
- true,
- urlSet.getUrls()));
- for (final Annotated<Class<?>> cmd : finder.findMetaAnnotatedClasses(Command.class)) {
- try {
- final Command annotation = cmd.getAnnotation(Command.class);
- final String key = annotation.name();
- if (!COMMANDS.containsKey(key)) {
- COMMANDS.put(key, cmd.get());
- } else {
- LOGGER.warning("command " + key + " already exists, this one will be ignored ( " + annotation.description() + ")");
- }
- } catch (Exception e) {
- // command ignored
- }
- }
- } catch (RuntimeException e) {
- LOGGER.error("an error occurred while getting commands", e);
- } catch (IOException e) {
- LOGGER.error("can't get commands");
- }
- }
-
- public String lineSep;
-
- private OutputStream err;
- private OutputStream out;
- private InputStream sin;
- private String username;
- private final String bind;
- private final int port;
-
- public CliRunnable(final String bind, final int port) {
- this(bind, port, PROMPT, null);
- }
-
- public CliRunnable(final String bind, final int port, final String username, final String sep) {
- this.bind = bind;
- this.port = port;
- this.username = username;
-
- if (sep != null) { // workaround to force ConsoleReader to use another line.separator
- lineSep = sep;
- System.setProperty("line.separator", sep);
- try {
- // just to force the loading of this class with the set line.separator
- // because ConsoleReader.CR is a constant and we need sometimes another value
- // not a big issue but keeping this as a workaround
- new ConsoleReader();
- } catch (IOException ignored) {
- // no-op
- } finally {
- System.setProperty("line.separator", OS_LINE_SEP);
- }
- } else {
- lineSep = OS_LINE_SEP;
- }
- }
-
- public void setUsername(final String username) {
- this.username = username;
- }
-
- public void setInputStream(final InputStream in) {
- sin = in;
- }
-
- public void setOutputStream(final OutputStream out) {
- this.out = out;
- }
-
- public void setErrorStream(final OutputStream err) {
- this.err = err;
- }
-
- public void start() throws IOException {
- new Thread(this, "OpenEJB Cli").start();
- }
-
- public void destroy() {
- // no-op
- }
-
- public void clean() {
- OpenEJBScripter.clearEngines();
- }
-
- @Override
- public void run() {
- clean();
-
- try {
- final StreamManager streamManager = new StreamManager(out, err, lineSep);
-
- final ConsoleReader reader = new ConsoleReader(sin, streamManager.getOut());
- reader.addCompleter(new FileNameCompleter());
- reader.addCompleter(new StringsCompleter(COMMANDS.keySet().toArray(new String[COMMANDS.size()])));
- // TODO : add completers
-
- String line;
- final StringBuilder builtWelcome = new StringBuilder("Apache OpenEJB ")
- .append(OpenEjbVersion.get().getVersion())
- .append(" build: ")
- .append(OpenEjbVersion.get().getDate())
- .append("-")
- .append(OpenEjbVersion.get().getTime())
- .append(lineSep);
- if (tomee) {
- builtWelcome.append(OS_LINE_SEP).append(PROPERTIES.getProperty(WELCOME_TOMEE_KEY));
- } else {
- builtWelcome.append(OS_LINE_SEP).append(PROPERTIES.getProperty(WELCOME_OPENEJB_KEY));
- }
- builtWelcome.append(lineSep).append(PROPERTIES.getProperty(WELCOME_COMMON_KEY));
-
- streamManager.writeOut(OpenEjbVersion.get().getUrl());
- streamManager.writeOut(builtWelcome.toString()
- .replace("$bind", bind)
- .replace("$port", Integer.toString(port))
- .replace("$name", NAME)
- .replace(OS_LINE_SEP, lineSep));
-
- while ((line = reader.readLine(prompt())) != null) {
- // exit simply let us go out of the loop
- // do we need a command for it?
- if (EXIT_COMMAND.equals(line)) {
- break;
- }
-
- Class<?> cmdClass = null;
- String key = null;
- for (final Map.Entry<String, Class<?>> cmd : COMMANDS.entrySet()) {
- if (line.startsWith(cmd.getKey())) {
- cmdClass = cmd.getValue();
- key = cmd.getKey();
- break;
- }
- }
-
- if (cmdClass != null) {
- final ObjectRecipe recipe = new ObjectRecipe(cmdClass);
- recipe.setProperty("streamManager", streamManager);
- recipe.setProperty("command", line);
- recipe.setProperty("scripter", scripter);
- recipe.setProperty("commands", COMMANDS);
-
- recipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
- recipe.allow(Option.IGNORE_MISSING_PROPERTIES);
- recipe.allow(Option.NAMED_PARAMETERS);
-
- try {
- final AbstractCommand cmdInstance = (AbstractCommand) recipe.create();
- cmdInstance.execute(trunc(line, key));
- } catch (Exception e) {
- streamManager.writeErr(e);
- }
- } else {
- streamManager.writeErr("sorry i don't understand '" + line + "'");
- }
- }
-
- clean();
- } catch (IOException e) {
- clean();
- throw new CliRuntimeException(e);
- }
- }
-
- private String trunc(final String line, final String cmd) {
- if (line.length() == cmd.length()) {
- return "";
- }
- final String trunc = line.substring(cmd.length());
- int idx = 0;
- while (trunc.charAt(idx) == ' ') {
- idx++;
- }
- if (idx < trunc.length()) {
- return trunc.substring(idx);
- }
- return "";
- }
-
- private String prompt() {
- final StringBuilder prompt = new StringBuilder("");
- if (username != null) {
- prompt.append(username);
- } else {
- prompt.append(PROMPT);
- }
- prompt.append(" @ ")
- .append(bind).append(":").append(port)
- .append(PROMPT_SUFFIX);
- return prompt.toString();
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRuntimeException.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRuntimeException.java
deleted file mode 100644
index 78a0752177..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRuntimeException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.openejb.server.cli;
-
-public class CliRuntimeException extends RuntimeException {
- public CliRuntimeException(Exception e) {
- super(e);
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
deleted file mode 100644
index 886b91aadc..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.openejb.server.cli;
-
-import com.google.gson.GsonBuilder;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.util.Collection;
-
-public class StreamManager {
-
- private static final String OS_LINE_SEP = System.getProperty("line.separator");
-
- private String lineSep;
- private OutputStreamWriter serr;
- private OutputStreamWriter sout;
- private OutputStream out;
- private OutputStream err;
-
- public StreamManager(final OutputStream out, final OutputStream err, final String lineSep) {
- this.lineSep = lineSep;
- this.out = out;
- this.err = err;
- this.sout = new OutputStreamWriter(out);
- this.serr = new OutputStreamWriter(err);
- }
-
- private void write(final OutputStreamWriter writer, final String s) {
- for (final String l : s.split(lineSep)) {
- try {
- writer.write(l);
- writer.write(lineSep);
- writer.flush();
- } catch (IOException e) {
- // ignored
- }
- }
- }
-
- public void writeOut(final String s) {
- write(sout, s);
- }
-
- public void writeErr(final Exception e) {
- if (e.getStackTrace() == null) {
- write(serr, e.getMessage());
- } else {
- final StringBuilder error = new StringBuilder();
- error.append(e.getMessage()).append(lineSep);
- for (final StackTraceElement elt : e.getStackTrace()) {
- error.append(" ").append(elt.toString()).append(lineSep);
- }
- write(serr, error.toString());
- }
- }
-
- public String asString(final Object out) {
- if (out == null) {
- return "null";
- }
- if (out instanceof Collection) {
- final StringBuilder builder = new StringBuilder();
- for (final Object o : (Collection) out) {
- builder.append(string(o, lineSep)).append(lineSep);
- }
- return builder.toString();
- }
- return string(out, lineSep);
- }
-
- private static String string(final Object out, final String lineSep) {
- if (!out.getClass().getName().startsWith("java")) {
- try {
- return new GsonBuilder().setPrettyPrinting().create().toJson(out)
- .replace(OS_LINE_SEP, lineSep);
- } catch (RuntimeException re) {
- return ToStringBuilder.reflectionToString(out, ToStringStyle.SHORT_PREFIX_STYLE)
- .replace(OS_LINE_SEP, lineSep);
- }
- }
- return out.toString();
- }
-
- public OutputStream getOut() {
- return out;
- }
-
- public OutputStream getErr() {
- return err;
- }
-
- public OutputStreamWriter getSerr() {
- return serr;
- }
-
- public OutputStreamWriter getSout() {
- return sout;
- }
-
- public String getLineSep() {
- return lineSep;
- }
-
- public void writeErr(final String s) {
- write(serr, s);
- }
-
- public void writeOut(final String text, final String sep) {
- for (final String line : text.split(sep)) {
- writeOut(line);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/AbstractCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/AbstractCommand.java
deleted file mode 100644
index e77076628a..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/AbstractCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.core.LocalInitialContextFactory;
-import org.apache.openejb.server.cli.StreamManager;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import java.util.Properties;
-
-public abstract class AbstractCommand {
- protected StreamManager streamManager;
- protected String command;
-
- public abstract void execute(final String cmd);
-
- public void setStreamManager(StreamManager streamManager) {
- this.streamManager = streamManager;
- }
-
- public void setCommand(String command) {
- this.command = command;
- }
-
- public <T> T lookup(final Class<T> clazz, final String jndiName) throws NamingException {
- Properties p = new Properties();
- p.setProperty(Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
-
- ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- try {
- return (T) new InitialContext(p).lookup(jndiName);
- } finally {
- Thread.currentThread().setContextClassLoader(oldCl);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
deleted file mode 100644
index 0301a8362f..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.loader.IO;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-@Command(name = "cat", usage = "cat <path>", description = "cat a file (in tomee directories only)")
-public class CatCommand extends PathCommand {
- @Override
- public void execute(final String cmd) {
- final File file;
- try {
- file = resolve(cmd);
- } catch (IllegalArgumentException iae) {
- streamManager.writeErr(iae.getMessage());
- return;
- }
-
- if (file.isDirectory() && file.exists()) {
- streamManager.writeOut("file " + file.getPath() + " is a directory, please specify a regular file");
- } else if (file.exists()) {
- try {
- cat(file);
- } catch (IOException e) {
- streamManager.writeErr(e);
- }
- } else {
- streamManager.writeOut("file " + file.getPath() + " doesn't exist");
- }
- }
-
- private void cat(final File file) throws IOException {
- final BufferedReader br = new BufferedReader(new FileReader(file));
- String line;
- int lineNumber = 0;
- try {
- while ((line = br.readLine()) != null) {
- lineNumber++;
- streamManager.writeOut(String.format("%3d. %s", lineNumber, line));
- }
- } finally {
- IO.close(br);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
deleted file mode 100644
index 54904f6ce6..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.AppContext;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
-import org.apache.xbean.finder.UrlSet;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-@Command(name = ClassLoaderCommand.CLASSLOADER_CMD, usage = ClassLoaderCommand.CLASSLOADER_CMD + " <app>", description = "print classloader info")
-public class ClassLoaderCommand extends AbstractCommand {
- public static final String CLASSLOADER_CMD = "classloader";
- private static final String INDENT = " ";
-
- @Override
- public void execute(final String cmd) {
- final String appName = extractAppName(cmd);
- final ContainerSystem cs = SystemInstance.get().getComponent(ContainerSystem.class);
- for (AppContext ctx : cs.getAppContexts()) {
- if (appName.equalsIgnoreCase(ctx.getId())) {
- dumpClassLoader(ctx.getClassLoader());
- return;
- }
- }
- streamManager.writeErr("can't find app " + appName);
- streamManager.writeErr("available apps are:");
- for (AppContext ctx : cs.getAppContexts()) {
- streamManager.writeErr("- " + ctx.getId());
- }
- }
-
- protected void dumpClassLoader(final ClassLoader classLoader) {
- final List<ClassLoader> classLoaders = new ArrayList<>();
- ClassLoader current = classLoader;
- while (current != null) {
- classLoaders.add(current);
- current = current.getParent();
- }
-
- Collections.reverse(classLoaders);
-
- for (ClassLoader cl : classLoaders) {
- streamManager.writeOut("+" + cl.toString());
-
- UrlSet urls;
- try {
- urls = new UrlSet(cl);
- if (cl.getParent() != null) {
- urls = urls.exclude(cl.getParent());
- }
- } catch (IOException e) {
- streamManager.writeErr(INDENT + "` can't get urls of this classloader");
- continue;
- }
-
- final List<URL> listUrls = urls.getUrls();
- Collections.sort(listUrls, new URLComparator());
- final Iterator<URL> it = listUrls.iterator();
- while (it.hasNext()) {
- final String value = it.next().toExternalForm();
- final StringBuilder builder = new StringBuilder(INDENT);
- if (it.hasNext()) {
- builder.append('|');
- } else {
- builder.append('`');
- }
- builder.append(" ").append(value);
- streamManager.writeOut(builder.toString());
- }
- }
- }
-
- protected String extractAppName(final String raw) {
- final String cmd = raw.trim();
- if (0 == cmd.length()) {
- return "";
- }
- return cmd;
- }
-
- private class URLComparator implements Comparator<URL> {
- @Override
- public int compare(final URL o1, URL o2) {
- return o1.toExternalForm().compareTo(o2.toExternalForm());
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Command.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Command.java
deleted file mode 100644
index acebdce031..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Command.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.openejb.server.cli.command;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE})
-public @interface Command {
- String usage() default "";
-
- String name() default "";
-
- String description() default "";
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
deleted file mode 100644
index 9dc486fda9..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.assembler.DeployerEjb;
-
-@Command(name = "deploy", usage = "deploy <location>", description = "deploy an application")
-public class Deploy extends AbstractCommand {
- @Override
- public void execute(String cmd) {
- try {
- new DeployerEjb().deploy(cmd.trim());
- } catch (Exception e) {
- streamManager.writeErr(e);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/DeployedAppCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/DeployedAppCommand.java
deleted file mode 100644
index a3e4eb3f21..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/DeployedAppCommand.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.AppContext;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-@Command(name = "apps", usage = "apps", description = "list deployed applications")
-public class DeployedAppCommand extends PathCommand {
- @Override
- public void execute(final String cmd) {
- streamManager.writeOut("Deployed applications:");
- final List<AppContext> apps = new ArrayList<>(SystemInstance.get()
- .getComponent(ContainerSystem.class).getAppContexts());
- Collections.sort(apps, new AppContextComparable());
- for (AppContext appContext : apps) {
- streamManager.writeOut(" - " + appContext.getId());
- }
- }
-
- private class AppContextComparable implements Comparator<AppContext> {
- @Override
- public int compare(final AppContext o1, final AppContext o2) {
- return o1.getId().compareTo(o2.getId());
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ExitCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ExitCommand.java
deleted file mode 100644
index 1e01963680..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ExitCommand.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-// just to get it in the help
-@Command(name = "exit", usage = "exit", description = "exit from the cli")
-public class ExitCommand extends AbstractCommand {
- @Override
- public void execute(String cmd) {
- throw new UnsupportedOperationException("shouldn't be called directly");
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
deleted file mode 100644
index 930c8f8aed..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import java.util.Map;
-
-@Command(name = "help", usage = "help", description = "print this help")
-public class HelpCommand extends AbstractCommand {
- private Map<String, Class<?>> commands;
-
- @Override
- public void execute(final String cmd) {
- for (Map.Entry<String, Class<?>> command : commands.entrySet()) {
- try {
- final Class<?> clazz = command.getValue();
- final Command annotation = clazz.getAnnotation(Command.class);
- streamManager.writeOut(annotation.name() + ": " + annotation.description());
- streamManager.writeOut("\tUsage: " + annotation.usage(), "\n");
- } catch (Exception e) {
- // ignored = command not available
- }
- }
- }
-
- public void setCommands(Map<String, Class<?>> commands) {
- this.commands = commands;
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ListCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ListCommand.java
deleted file mode 100644
index 119c690ba6..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ListCommand.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.util.helper.CommandHelper;
-
-import java.io.PrintStream;
-
-@Command(name = "list", usage = "list", description = "list available ejbs")
-public class ListCommand extends AbstractCommand {
- @Override
- public void execute(final String cmd) {
- try {
- CommandHelper.listEJBs(streamManager.getLineSep()).print(new PrintStream(streamManager.getOut()));
- } catch (Exception e) {
- streamManager.writeErr(e);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
deleted file mode 100644
index 4d8dbf5590..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- * 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.openejb.server.cli.command;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Set;
-import javax.management.Attribute;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.RuntimeMBeanException;
-
-import org.apache.openejb.monitoring.LocalMBeanServer;
-import org.apache.xbean.propertyeditor.PropertyEditorRegistry;
-
-// TODO: maybe find a better way to invoker get/set/invoke because currently we limit a bit possible values
-@Command(name = "jmx", description = "consult/update a jmx information", usage = "jmx <operation> <options>. " +
- "\n\t\tOperation can be set|get|invoke.\n\t\tLast value is always the object name canonical path." +
- "\n\t\tSet takes the new value as last value and the name of the attribute as second parameter." +
- "\n\t\tInvoke takes the method invocation as second parameter." +
- "\n\t\tSamples:" +
- "\n\t\t\tjmx get MyAttributeName foo:type=bar" +
- "\n\t\t\tjmx set MyAttributeName foo:type=bar NewValue" +
- "\n\t\t\tjmx invoke myMethod(arg1,arg2) foo:type=bar")
-public class LocalJMXCommand extends AbstractCommand {
-
- private final PropertyEditorRegistry propertyEditorRegistry = new PropertyEditorRegistry();
-
- public LocalJMXCommand() {
- this.propertyEditorRegistry.registerDefaults();
- }
-
- @Override
- public void execute(final String cmd) {
- final String jmxCmd = cmd.trim();
- if ("list".equals(jmxCmd)) {
- listMBeans();
- return;
- }
-
- if (!jmxCmd.contains(" ")) {
- streamManager.writeErr("the command is not correct");
- return;
- }
-
- int space = jmxCmd.indexOf(" ");
- final String command = jmxCmd.substring(0, space);
- final String value = jmxCmd.substring(command.length()).trim();
- if ("get".equals(command)) {
- get(value);
- } else if ("set".equals(command)) {
- set(value);
- } else if ("invoke".equals(command)) {
- invoke(value);
- } else {
- streamManager.writeOut("unknown command '" + command + "'");
- }
- }
-
- private void invoke(final String value) {
- if (!value.contains("(") || !value.contains(")")) {
- streamManager.writeErr("method should follow the format: <methoName>(<arg1>,<arg2>,...)");
- return;
- }
-
- int open = value.indexOf("(");
- int close = value.lastIndexOf(")");
-
- final String name = value.substring(0, open).trim();
- final String rawArgs = value.substring(open + 1, close).trim();
- final ObjectName on;
- try {
- on = new ObjectName(value.substring(close + 1).trim());
- } catch (MalformedObjectNameException e) {
- streamManager.writeErr(e);
- return;
- }
-
- final MBeanServer server = LocalMBeanServer.get();
- final String[] args;
- if (rawArgs == null || rawArgs.isEmpty()) {
- args = new String[0];
- } else {
- args = rawArgs.split(",");
- }
-
- try {
- final MBeanInfo minfo = server.getMBeanInfo(on);
- final MBeanOperationInfo[] methods = minfo.getOperations();
-
- MBeanOperationInfo operation = null;
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].getName().equals(name)) {
- operation = methods[i];
- break;
- }
- }
-
- if (operation == null) {
- streamManager.writeErr("can't find operation '" + name + "'");
- return;
- }
-
- final Object[] passedArgs = new Object[args.length];
- final String[] passedArgTypes = new String[args.length];
- for (int i = 0; i < passedArgs.length; i++) {
- final String expected = operation.getSignature()[i].getType();
- if (!String.class.getName().equals(expected)) {
- passedArgs[i] = propertyEditorRegistry.getValue(expected, args[i], Thread.currentThread().getContextClassLoader());
- } else {
- passedArgs[i] = args[i];
- }
- passedArgTypes[i] = expected;
- }
-
- streamManager.writeOut(stringify(server.invoke(on, name, passedArgs, passedArgTypes)));
- } catch (Exception e) {
- streamManager.writeErr(e);
- return;
- }
- }
-
- private void get(final String cmd) {
- int space = cmd.indexOf(" ");
- if (space < 0) {
- streamManager.writeErr("you need to specify an attribute and an objectname");
- return;
- }
-
- final String attr = cmd.substring(0, space);
- final String on = cmd.substring(space, cmd.length()).trim();
-
- final MBeanServer mBeanServer = LocalMBeanServer.get();
- try {
- final ObjectName oname = new ObjectName(on);
- final Object value = mBeanServer.getAttribute(oname, attr);
- streamManager.writeOut("Attribute [" + on + " -> " + attr + "] = " + stringify(value));
- } catch (Exception ex) {
- streamManager.writeErr(ex);
- }
- }
-
- private void set(final String cmd) {
- final String[] split = cmd.split(" ");
- if (split.length < 2) {
- streamManager.writeErr("you need to specify an attribute, an objectname and a value");
- return;
- }
-
- final MBeanServer mBeanServer = LocalMBeanServer.get();
- final String newValue = cmd.substring(split[0].length() + split[1].length() + 1).trim();
- try {
- final ObjectName oname = new ObjectName(split[1]);
- final MBeanInfo minfo = mBeanServer.getMBeanInfo(oname);
- final MBeanAttributeInfo attrs[] = minfo.getAttributes();
-
- String type = String.class.getName();
- for (int i = 0; i < attrs.length; i++) {
- if (attrs[i].getName().equals(split[0])) {
- type = attrs[i].getType();
- break;
- }
- }
-
- final Object valueObj = propertyEditorRegistry.getValue(type, newValue, Thread.currentThread().getContextClassLoader());
- mBeanServer.setAttribute(oname, new Attribute(split[0], valueObj));
- streamManager.writeOut("done");
- } catch (Exception ex) {
- streamManager.writeOut("Error - " + ex.toString());
- }
- }
-
- private String stringify(final Object value) {
- if (value == null) {
- return "<null>";
- }
- if (value.getClass().isArray()) {
- return Arrays.asList((Object[]) value).toString();
- }
- return value.toString();
- }
-
- private void listMBeans() {
- final MBeanServer mBeanServer = LocalMBeanServer.get();
-
- final Set<ObjectName> names;
- try {
- names = mBeanServer.queryNames(null, null);
- } catch (Exception e) {
- streamManager.writeErr(e);
- return;
- }
-
- final Iterator<ObjectName> it = names.iterator();
- while (it.hasNext()) {
- ObjectName oname = it.next();
- streamManager.writeOut("Name: " + oname.toString());
-
- try {
- final MBeanInfo minfo = mBeanServer.getMBeanInfo(oname);
- String code = minfo.getClassName();
- if ("org.apache.commons.modeler.BaseModelMBean".equals(code)) {
- code = (String) mBeanServer.getAttribute(oname, "modelerType");
- }
- streamManager.writeOut(" + modelerType: " + code);
-
- MBeanAttributeInfo attrs[] = minfo.getAttributes();
- Object value = null;
-
- for (int i = 0; i < attrs.length; i++) {
- if (!attrs[i].isReadable()) {
- continue;
- }
-
- final String attName = attrs[i].getName();
- if ("modelerType".equals(attName)) {
- continue;
- }
-
- if (attName.indexOf("=") >= 0 ||
- attName.indexOf(":") >= 0 ||
- attName.indexOf(" ") >= 0) {
- continue;
- }
-
- try {
- value = mBeanServer.getAttribute(oname, attName);
- } catch (RuntimeMBeanException uoe) {
- // ignored
- } catch (Throwable t) {
- streamManager.writeErr(new Exception(t));
- continue;
- }
-
- try {
- String valueString = stringify(value);
- streamManager.writeOut(" + " + attName + ": " + valueString);
- } catch (Throwable t) {
- streamManager.writeErr(new Exception(t));
- }
- }
- } catch (Throwable t) {
- streamManager.writeErr(new Exception(t));
- }
- streamManager.writeOut("");
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
deleted file mode 100644
index 26f19c83ee..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import java.io.File;
-
-@Command(name = "ls", usage = "ls [<path>]", description = "list files (in tomee directories only)")
-public class LsCommand extends PathCommand {
- @Override
- public void execute(final String cmd) {
- final File file;
- try {
- file = resolve(cmd);
- } catch (IllegalArgumentException iae) {
- streamManager.writeErr(iae.getMessage());
- return;
- }
-
- if (file.isDirectory() && file.exists()) {
- list(file.getAbsolutePath(), file);
- } else if (file.exists()) {
- streamManager.writeOut("file " + file.getPath() + " exists");
- } else {
- streamManager.writeOut("file " + file.getPath() + " doesn't exist");
- }
- }
-
- private void list(final String base, final File dir) {
- String removed = base;
- if (!base.endsWith("/")) {
- removed = removed + "/";
- }
- final File[] files = dir.listFiles();
- if (files != null) {
- for (final File file : files) { // not recursive otherwise it starts to be complicated
- streamManager.writeOut(type(file) + " " + file.getAbsolutePath().replace(removed, ""));
- }
- }
- }
-
- private static String type(final File file) {
- if (file.isDirectory()) {
- return "D";
- }
- return "F";
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
deleted file mode 100644
index 1410014abb..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.loader.IO;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-@Command(name = "part", usage = "part <first line>-<last line> <path>", description = "print the specified line range of a file (in tomee directories only)")
-public class PartCommand extends PathCommand {
- private static final Pattern PATTERN = Pattern.compile("([0-9]*)-([0-9]*) (.*)");
-
- @Override
- public void execute(final String cmd) {
- final Matcher matcher = PATTERN.matcher(cmd);
- if (!matcher.matches()) {
- streamManager.writeErr("you have to specify a numbe of line, please see help for more information");
- return;
- }
-
- int firstLine;
- int secondLine;
- try {
- firstLine = getInt(matcher.group(1));
- secondLine = getInt(matcher.group(2));
- } catch (NumberFormatException nfe) {
- streamManager.writeErr("line number was not parsable");
- return;
- }
-
- final String path = matcher.group(3);
- final File file;
- try {
- file = resolve(path);
- } catch (IllegalArgumentException iae) {
- streamManager.writeErr(iae.getMessage());
- return;
- }
-
- if (file.isDirectory() && file.exists()) {
- streamManager.writeOut("file " + file.getPath() + " is a directory, please specify a regular file");
- } else if (file.exists()) {
- try {
- part(file, firstLine, secondLine);
- } catch (IOException e) {
- streamManager.writeErr(e);
- }
- } else {
- streamManager.writeOut("file " + file.getPath() + " doesn't exist");
- }
- }
-
- private int getInt(String group) {
- try {
- return Integer.parseInt(group);
- } catch (NumberFormatException nfe) {
- streamManager.writeErr("line number should be an integer");
- throw nfe;
- }
- }
-
- private void part(final File file, int firstLine, int secondLine) throws IOException {
- BufferedReader br = new BufferedReader(new FileReader(file));
- String line;
- int totalLineNumber = 0;
- try {
- while (br.readLine() != null) {
- totalLineNumber++;
- }
- } finally {
- IO.close(br);
- }
-
- br = new BufferedReader(new FileReader(file));
- try {
- int firstLineToPrint = Math.max(1, firstLine);
- int lastLine = Math.min(totalLineNumber, secondLine);
- totalLineNumber = 0;
- while ((line = br.readLine()) != null) {
- totalLineNumber++;
- if (totalLineNumber >= firstLineToPrint && totalLineNumber <= lastLine) {
- streamManager.writeOut(String.format("%3d. %s", totalLineNumber, line));
- }
- if (totalLineNumber > lastLine) {
- break;
- }
- }
- } finally {
- IO.close(br);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
deleted file mode 100644
index c12dce86ce..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.loader.SystemInstance;
-
-import java.io.File;
-
-public abstract class PathCommand extends AbstractCommand {
- public static final String HOME = "$home";
- public static final String BASE = "$base";
-
- protected File resolve(final String cmd) {
- if (cmd == null || cmd.trim().isEmpty()) {
- return SystemInstance.get().getBase().getDirectory();
- }
- String path = cmd.trim();
- File workingFile = new File(path);
- if ((!path.startsWith(HOME) && !path.startsWith(BASE) && workingFile.getPath().equals(workingFile.getAbsolutePath())) || path.startsWith("..")) {
- throw new IllegalArgumentException("path should start with " + BASE + " or " + HOME + " or be relative");
- }
-
- if (path.startsWith(HOME)) {
- return new File(path.replace(HOME, SystemInstance.get().getHome().getDirectory().getAbsolutePath()));
- } else if (path.startsWith(BASE)) {
- return new File(path.replace(BASE, SystemInstance.get().getBase().getDirectory().getAbsolutePath()));
- }
- return new File(SystemInstance.get().getBase().getDirectory().getAbsolutePath(), path);
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PropertiesCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PropertiesCommand.java
deleted file mode 100644
index 0575c7730e..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PropertiesCommand.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
-import org.apache.openejb.assembler.classic.cmd.Info2Properties;
-import org.apache.openejb.loader.SystemInstance;
-
-import java.io.PrintStream;
-
-@Command(name = "properties", usage = "properties", description = "show OpenEJB container properties")
-public class PropertiesCommand extends AbstractCommand {
- @Override
- public void execute(final String cmd) {
- final OpenEjbConfiguration config = SystemInstance.get().getComponent(OpenEjbConfiguration.class);
- Info2Properties.printConfig(config, new PrintStream(streamManager.getOut()), streamManager.getLineSep());
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
deleted file mode 100644
index 41730e1a3c..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.util.OpenEJBScripter;
-
-@Command(name = "script", usage = "script <code>", description = "execute script code in the specified language. ejb can be accessed through their ejb name in the script.")
-public class ScriptCommand extends AbstractCommand {
- protected OpenEJBScripter scripter;
- protected String language;
- protected String script;
-
- @Override
- public void execute(final String cmd) {
- try {
- parse(cmd);
- final Object result = scripter.evaluate(language, script);
- streamManager.writeOut(streamManager.asString(result));
- } catch (Exception e) {
- streamManager.writeErr(e);
- }
- }
-
- private void parse(final String parseableCmd) {
- final int spaceIdx = parseableCmd.indexOf(" ");
- if (spaceIdx < 0) {
- throw new IllegalArgumentException("bad syntax, see help");
- }
- language = parseableCmd.substring(0, spaceIdx);
- script = parseableCmd.substring(spaceIdx + 1, parseableCmd.length());
- }
-
- public void setScripter(OpenEJBScripter scripter) {
- this.scripter = scripter;
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
deleted file mode 100644
index 14a4c6bc7b..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.openejb.server.cli.command;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-@Command(name = "script file", usage = "script file <path>", description = "execute script code contained in a file in the specifid language. ejb can be accessed through their ejb name in the script. The extension is used to detect the file format.")
-public class ScriptFileCommand extends ScriptCommand {
- @Override
- public void execute(final String cmd) {
- try {
- parse(cmd);
- } catch (IllegalArgumentException iae) {
- streamManager.writeErr("script cmd " + cmd + " can't be parsed");
- return;
- }
-
- final File file = new File(script);
- if (!file.exists()) {
- streamManager.writeErr("script file " + file.getPath() + " doesn't exist");
- return;
- }
-
- final StringBuilder builder = new StringBuilder(1024);
- builder.append("script ").append(language).append(" "); // we will run the parent command
-
- try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
- char[] buf = new char[1024];
- int numRead;
- while ((numRead = reader.read(buf)) != -1) {
- String readData = String.valueOf(buf, 0, numRead);
- builder.append(readData);
- buf = new char[1024];
- }
- } catch (Exception e) {
- streamManager.writeErr(e);
- return;
- }
-
- super.execute(builder.toString());
- }
-
- private void parse(final String cmd) {
- script = cmd;
- final int dotIdx = script.lastIndexOf(".");
- if (dotIdx < 0) {
- throw new IllegalArgumentException("bad syntax, see help");
- }
- language = script.substring(dotIdx + 1, script.length());
- }
-}
diff --git a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java b/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java
deleted file mode 100644
index d9bcf2c309..0000000000
--- a/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.openejb.server.cli.command;
-
-import org.apache.openejb.assembler.DeployerEjb;
-
-@Command(name = "undeploy", usage = "undeploy <location>", description = "undeploy an application. Note the location should be the same than for deploy")
-public class Undeploy extends AbstractCommand {
- @Override
- public void execute(String cmd) {
- try {
- new DeployerEjb().undeploy(cmd.trim());
- } catch (Exception e) {
- streamManager.writeErr(e);
- }
- }
-}
diff --git a/server/openejb-common-cli/src/main/resources/META-INF/scan.xml b/server/openejb-common-cli/src/main/resources/META-INF/scan.xml
deleted file mode 100644
index c7015f18dd..0000000000
--- a/server/openejb-common-cli/src/main/resources/META-INF/scan.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
--->
-<scan>
- <packages>
- <package>org.apache.openejb.server.cli.command</package>
- </packages>
-</scan>
diff --git a/server/openejb-common-cli/src/main/resources/branding.properties b/server/openejb-common-cli/src/main/resources/branding.properties
deleted file mode 100644
index 0d78674784..0000000000
--- a/server/openejb-common-cli/src/main/resources/branding.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-\#
-# 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.
-#
-welcome_common = Welcome on your $bind:$port $name server
-
-welcome_openejb = \ \ ___ ___ _ ___\r\n\
-\ / _ \\ _ __ ___ _ _ | __| | | _ )\r\n\
-| (_) | '_ \\/ -_) ' \\| _| || | _ \\ \r\n\
-\ \\___/| .__/\\___|_||_|___\\__/|___/\r\n\
-\ \ \ \ \ \ |_|
-
-welcome_tomee = \ _____ ___ ___\r\n\
-|_ _|__ _ __ | __| __|\r\n\
-\ \ | |/ _ \\ ' \\| _|| _|\r\n\
-\ \ |_|\\___/_|_|_|___|___|\r\n
diff --git a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Bar.java b/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Bar.java
deleted file mode 100644
index fe5b33a23a..0000000000
--- a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Bar.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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.openejb.server.groovy;
-
-import jakarta.inject.Named;
-
-@Named
-public class Bar {
- public String test() {
- return "ok";
- }
-}
diff --git a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/BeanManagerHelperTest.java b/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/BeanManagerHelperTest.java
deleted file mode 100644
index f685061324..0000000000
--- a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/BeanManagerHelperTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * 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.openejb.server.groovy;
-
-import org.apache.openejb.jee.Beans;
-import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.testing.Configuration;
-import org.apache.openejb.testing.Module;
-import org.apache.openejb.util.OpenEJBScripter;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import jakarta.inject.Named;
-
-import java.util.Properties;
-
-import static org.junit.Assert.assertEquals;
-
-@RunWith(ApplicationComposer.class)
-public class BeanManagerHelperTest {
- private static OpenEJBScripter.BeanManagerHelper helper = new OpenEJBScripter.BeanManagerHelper();
-
- @Configuration
- public Properties config() {
- final Properties p = new Properties();
- p.setProperty("openejb.deployments.classpath.filter.systemapps", "false");
- return p;
- }
-
- @Module
- public Beans ejbJar() {
- final Beans beans = new Beans();
- beans.addManagedClass(Pojo.class);
- return beans;
- }
-
- @Before
- public void resetID() {
- Pojo.ID = 5;
- }
-
- @Test
- public void getInstanceFromClass() {
- for (int i = 1; i < 5; i++) {
- final Pojo pojo = (Pojo) helper.beanFromClass("BeanManagerHelperTest", Pojo.class.getName());
- assertEquals(5 + i, pojo.id);
- }
- }
-
- @Test
- public void getInstanceFromName() {
- for (int i = 1; i < 5; i++) {
- final Pojo pojo = (Pojo) helper.beanFromName("BeanManagerHelperTest", "pojo");
- assertEquals(5 + i, pojo.id);
- }
- }
-
- @Named
- public static class Pojo {
- public static int ID;
- public int id = ++ID;
- }
-}
diff --git a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Foo.java b/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Foo.java
deleted file mode 100644
index e592353fa0..0000000000
--- a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/Foo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 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.openejb.server.groovy;
-
-import jakarta.ejb.Lock;
-import jakarta.ejb.LockType;
-import jakarta.ejb.Singleton;
-
-@Singleton
-@Lock(LockType.READ)
-public class Foo {
- public String foo() {
- return "foo";
- }
-}
diff --git a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/OpenEJBGroovyShellTest.java b/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/OpenEJBGroovyShellTest.java
deleted file mode 100644
index 368bcf6dc0..0000000000
--- a/server/openejb-common-cli/src/test/java/org/apache/openejb/server/groovy/OpenEJBGroovyShellTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * 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.openejb.server.groovy;
-
-import java.util.Properties;
-import jakarta.ejb.embeddable.EJBContainer;
-import javax.script.ScriptException;
-
-import org.apache.openejb.util.OpenEJBScripter;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class OpenEJBGroovyShellTest {
- private static EJBContainer container;
-
- @BeforeClass
- public static void start() {
- final Properties properties = new Properties();
- properties.setProperty(EJBContainer.APP_NAME, OpenEJBGroovyShellTest.class.getSimpleName());
- properties.setProperty("openejb.deployments.classpath.filter.systemapps", "false");
- container = EJBContainer.createEJBContainer(properties);
- }
-
- @AfterClass
- public static void close() {
- container.close();
- }
-
- @Test
- public void callUsingCDI() throws ScriptException {
- final OpenEJBScripter shell = new OpenEJBScripter();
- final Object out = shell.evaluate("groovy", "bm.beanFromName('OpenEJBGroovyShellTest', 'bar').test()");
- assertEquals("ok", out);
- }
-}
diff --git a/server/openejb-common-cli/src/test/resources/META-INF/beans.xml b/server/openejb-common-cli/src/test/resources/META-INF/beans.xml
deleted file mode 100644
index 9126ae7927..0000000000
--- a/server/openejb-common-cli/src/test/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--
-
- 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.
--->
-<beans />
-
diff --git a/server/pom.xml b/server/pom.xml
index fdf6729f85..a3803cc8e6 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -45,7 +45,6 @@
<module>openejb-cxf-rs</module>
<module>openejb-cxf-transport</module>
<module>openejb-rest</module>
- <module>openejb-common-cli</module>
<module>openejb-bonecp</module>
<module>openejb-hessian</module>
</modules>