You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by David Blevins <da...@gmail.com> on 2012/04/08 22:18:38 UTC

Re: svn commit: r1311012 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java

Let's add a jira for this new feature.


On Apr 8, 2012, at 7:28 AM, rmannibucau@apache.org wrote:

> Author: rmannibucau
> Date: Sun Apr  8 14:28:24 2012
> New Revision: 1311012
> 
> URL: http://svn.apache.org/viewvc?rev=1311012&view=rev
> Log:
> adding a JMX deployer for openejb (avoid ssh when not mandatory)
> 
> Added:
>    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> 
> Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java?rev=1311012&view=auto
> ==============================================================================
> --- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java (added)
> +++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java Sun Apr  8 14:28:24 2012
> @@ -0,0 +1,68 @@
> +package org.apache.openejb.assembler;
> +
> +import java.util.Collection;
> +import java.util.Properties;
> +import javax.management.Description;
> +import javax.management.MBean;
> +import javax.management.ManagedAttribute;
> +import javax.management.ManagedOperation;
> +import javax.naming.Context;
> +import javax.naming.InitialContext;
> +import javax.naming.NamingException;
> +import org.apache.openejb.assembler.classic.AppInfo;
> +import org.apache.openejb.core.LocalInitialContextFactory;
> +
> +@MBean
> +@Description("OpenEJB Deployer")
> +public class JMXDeployer {
> +    @ManagedOperation
> +    @Description("Deploy the specified application")
> +    public String deploy(final String location) {
> +        try {
> +            deployer().deploy(location);
> +            return "OK";
> +        } catch (Exception e) {
> +            return "ERR:" + e.getMessage();
> +        }
> +    }
> +
> +    @ManagedOperation
> +    @Description("Undeploy the specified application")
> +    public String undeploy(final String moduleId) {
> +        try {
> +            deployer().undeploy(moduleId);
> +            return "OK";
> +        } catch (Exception e) {
> +            return "ERR:" + e.getMessage();
> +        }
> +    }
> +
> +    @ManagedAttribute
> +    @Description("List available applications")
> +    public String[] getDeployedApplications() {
> +        try {
> +            final Collection<AppInfo> apps = deployer().getDeployedApps();
> +            final String[] appsNames = new String[apps.size()];
> +            int i = 0;
> +            for (AppInfo info : apps) {
> +                appsNames[i++] = info.path;
> +            }
> +            return appsNames;
> +        } catch (Exception e) {
> +            return new String[] { "ERR:" + e.getMessage() };
> +        }
> +    }
> +
> +    private static Deployer deployer() throws NamingException {
> +        final Properties p = new Properties();
> +        p.setProperty(Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
> +
> +        final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
> +        Thread.currentThread().setContextClassLoader(DeployerEjb.class.getClassLoader());
> +        try {
> +            return (Deployer) new InitialContext(p).lookup("openejb/DeployerBusinessRemote");
> +        } finally {
> +            Thread.currentThread().setContextClassLoader(oldCl);
> +        }
> +    }
> +}
> 
> 
> 


Re: svn commit: r1311012 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java

Posted by Romain Manni-Bucau <rm...@gmail.com>.
i'll fo it (i should have done it since the build was passed ;))

well this feature is not from me but a guy who noticed during the Tours JUG
that we can do it through JMX instead of SSH and he was so right i had to
add to it.

- Romain


2012/4/8 David Blevins <da...@gmail.com>

> Great feature btw :)
>
> On Apr 8, 2012, at 1:18 PM, David Blevins wrote:
>
> > Let's add a jira for this new feature.
> >
> >
> > On Apr 8, 2012, at 7:28 AM, rmannibucau@apache.org wrote:
> >
> >> Author: rmannibucau
> >> Date: Sun Apr  8 14:28:24 2012
> >> New Revision: 1311012
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1311012&view=rev
> >> Log:
> >> adding a JMX deployer for openejb (avoid ssh when not mandatory)
> >>
> >> Added:
> >>
> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> >>
> >> Added:
> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> >> URL:
> http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java?rev=1311012&view=auto
> >>
> ==============================================================================
> >> ---
> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> (added)
> >> +++
> openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
> Sun Apr  8 14:28:24 2012
> >> @@ -0,0 +1,68 @@
> >> +package org.apache.openejb.assembler;
> >> +
> >> +import java.util.Collection;
> >> +import java.util.Properties;
> >> +import javax.management.Description;
> >> +import javax.management.MBean;
> >> +import javax.management.ManagedAttribute;
> >> +import javax.management.ManagedOperation;
> >> +import javax.naming.Context;
> >> +import javax.naming.InitialContext;
> >> +import javax.naming.NamingException;
> >> +import org.apache.openejb.assembler.classic.AppInfo;
> >> +import org.apache.openejb.core.LocalInitialContextFactory;
> >> +
> >> +@MBean
> >> +@Description("OpenEJB Deployer")
> >> +public class JMXDeployer {
> >> +    @ManagedOperation
> >> +    @Description("Deploy the specified application")
> >> +    public String deploy(final String location) {
> >> +        try {
> >> +            deployer().deploy(location);
> >> +            return "OK";
> >> +        } catch (Exception e) {
> >> +            return "ERR:" + e.getMessage();
> >> +        }
> >> +    }
> >> +
> >> +    @ManagedOperation
> >> +    @Description("Undeploy the specified application")
> >> +    public String undeploy(final String moduleId) {
> >> +        try {
> >> +            deployer().undeploy(moduleId);
> >> +            return "OK";
> >> +        } catch (Exception e) {
> >> +            return "ERR:" + e.getMessage();
> >> +        }
> >> +    }
> >> +
> >> +    @ManagedAttribute
> >> +    @Description("List available applications")
> >> +    public String[] getDeployedApplications() {
> >> +        try {
> >> +            final Collection<AppInfo> apps =
> deployer().getDeployedApps();
> >> +            final String[] appsNames = new String[apps.size()];
> >> +            int i = 0;
> >> +            for (AppInfo info : apps) {
> >> +                appsNames[i++] = info.path;
> >> +            }
> >> +            return appsNames;
> >> +        } catch (Exception e) {
> >> +            return new String[] { "ERR:" + e.getMessage() };
> >> +        }
> >> +    }
> >> +
> >> +    private static Deployer deployer() throws NamingException {
> >> +        final Properties p = new Properties();
> >> +        p.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> LocalInitialContextFactory.class.getName());
> >> +
> >> +        final ClassLoader oldCl =
> Thread.currentThread().getContextClassLoader();
> >> +
>  Thread.currentThread().setContextClassLoader(DeployerEjb.class.getClassLoader());
> >> +        try {
> >> +            return (Deployer) new
> InitialContext(p).lookup("openejb/DeployerBusinessRemote");
> >> +        } finally {
> >> +            Thread.currentThread().setContextClassLoader(oldCl);
> >> +        }
> >> +    }
> >> +}
> >>
> >>
> >>
> >
>
>

Re: svn commit: r1311012 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java

Posted by David Blevins <da...@gmail.com>.
Great feature btw :)

On Apr 8, 2012, at 1:18 PM, David Blevins wrote:

> Let's add a jira for this new feature.
> 
> 
> On Apr 8, 2012, at 7:28 AM, rmannibucau@apache.org wrote:
> 
>> Author: rmannibucau
>> Date: Sun Apr  8 14:28:24 2012
>> New Revision: 1311012
>> 
>> URL: http://svn.apache.org/viewvc?rev=1311012&view=rev
>> Log:
>> adding a JMX deployer for openejb (avoid ssh when not mandatory)
>> 
>> Added:
>>   openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
>> 
>> Added: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java
>> URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java?rev=1311012&view=auto
>> ==============================================================================
>> --- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java (added)
>> +++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/JMXDeployer.java Sun Apr  8 14:28:24 2012
>> @@ -0,0 +1,68 @@
>> +package org.apache.openejb.assembler;
>> +
>> +import java.util.Collection;
>> +import java.util.Properties;
>> +import javax.management.Description;
>> +import javax.management.MBean;
>> +import javax.management.ManagedAttribute;
>> +import javax.management.ManagedOperation;
>> +import javax.naming.Context;
>> +import javax.naming.InitialContext;
>> +import javax.naming.NamingException;
>> +import org.apache.openejb.assembler.classic.AppInfo;
>> +import org.apache.openejb.core.LocalInitialContextFactory;
>> +
>> +@MBean
>> +@Description("OpenEJB Deployer")
>> +public class JMXDeployer {
>> +    @ManagedOperation
>> +    @Description("Deploy the specified application")
>> +    public String deploy(final String location) {
>> +        try {
>> +            deployer().deploy(location);
>> +            return "OK";
>> +        } catch (Exception e) {
>> +            return "ERR:" + e.getMessage();
>> +        }
>> +    }
>> +
>> +    @ManagedOperation
>> +    @Description("Undeploy the specified application")
>> +    public String undeploy(final String moduleId) {
>> +        try {
>> +            deployer().undeploy(moduleId);
>> +            return "OK";
>> +        } catch (Exception e) {
>> +            return "ERR:" + e.getMessage();
>> +        }
>> +    }
>> +
>> +    @ManagedAttribute
>> +    @Description("List available applications")
>> +    public String[] getDeployedApplications() {
>> +        try {
>> +            final Collection<AppInfo> apps = deployer().getDeployedApps();
>> +            final String[] appsNames = new String[apps.size()];
>> +            int i = 0;
>> +            for (AppInfo info : apps) {
>> +                appsNames[i++] = info.path;
>> +            }
>> +            return appsNames;
>> +        } catch (Exception e) {
>> +            return new String[] { "ERR:" + e.getMessage() };
>> +        }
>> +    }
>> +
>> +    private static Deployer deployer() throws NamingException {
>> +        final Properties p = new Properties();
>> +        p.setProperty(Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
>> +
>> +        final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
>> +        Thread.currentThread().setContextClassLoader(DeployerEjb.class.getClassLoader());
>> +        try {
>> +            return (Deployer) new InitialContext(p).lookup("openejb/DeployerBusinessRemote");
>> +        } finally {
>> +            Thread.currentThread().setContextClassLoader(oldCl);
>> +        }
>> +    }
>> +}
>> 
>> 
>> 
>