| :index-group: JMX |
| :jbake-type: page |
| :jbake-status: status=published |
| = Custom resources in an EAR archive |
| |
| O TomEE permite que você defina seus próprios recursos na sua aplicação e declare-os em `META-INF/resources.xml`. Isso permite que você injete esses recursos em qualquer componente gerenciado na sua aplicação. |
| |
| Além disso, você também pode definir um método `create` no próprio recurso ou em um POJO que atua como uma fábrica. |
| Este exemplo demonstra o uso do método `create` para registrar adicionalmente o recurso como um JMX MBean, além de disponibilizá-lo para injeção. |
| |
| == Resource |
| |
| Recursos customizados podem ser definidos usando classes Java muito simples. Nesse caso específico, como o aplicativo também deseja registrar esse como MBean, a classe de recurso precisa seguir a especificação de MBean. |
| |
| [source,java] |
| ---- |
| public class Hello implements HelloMBean { |
| |
| private AtomicInteger count = new AtomicInteger(0); |
| |
| @Override |
| public String greet(String name) { |
| if (name == null) { |
| throw new NullPointerException("Name cannot be null"); |
| } |
| |
| return "Hello, " + name; |
| } |
| |
| @Override |
| public int getCount() { |
| return count.get(); |
| } |
| |
| @Override |
| public void setCount(int value) { |
| count.set(value); |
| } |
| |
| @Override |
| public void increment() { |
| count.incrementAndGet(); |
| } |
| } |
| |
| public interface HelloMBean { |
| |
| public String greet(final String name); |
| |
| public int getCount(); |
| |
| public void setCount(int count); |
| |
| public void increment(); |
| |
| } |
| ---- |
| |
| == Método Criar(Create) |
| |
| Para evitar adicionar a lógica para registrar o recurso como um MBean em todos os recursos, a aplicação fornece a uma única classe um método `create()` que cuida dessa lógica para nós. |
| |
| [source,java] |
| ---- |
| public class JMXBeanCreator { |
| |
| private static Logger LOGGER = Logger.getLogger(JMXBeanCreator.class.getName()); |
| private Properties properties; |
| |
| public Object create() throws MBeanRegistrationException { |
| // instantiate the bean |
| |
| final String code = properties.getProperty("code"); |
| final String name = properties.getProperty("name"); |
| |
| requireNotNull(code); |
| requireNotNull(name); |
| |
| try { |
| final Class<?> cls = Class.forName(code, true, Thread.currentThread().getContextClassLoader()); |
| final Object instance = cls.newInstance(); |
| |
| final Field[] fields = cls.getDeclaredFields(); |
| for (final Field field : fields) { |
| |
| final String property = properties.getProperty(field.getName()); |
| if (property == null) { |
| continue; |
| } |
| |
| try { |
| field.setAccessible(true); |
| field.set(instance, Converter.convert(property, field.getType(), field.getName())); |
| } catch (Exception e) { |
| LOGGER.info(String.format("Unable to set value %s on field %s", property, field.getName())); |
| } |
| } |
| |
| final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); |
| final ObjectName objectName = new ObjectName(name); |
| mbs.registerMBean(instance, objectName); |
| |
| return instance; |
| |
| } catch (final ClassNotFoundException e) { |
| LOGGER.severe("Unable to find class " + code); |
| throw new MBeanRegistrationException(e); |
| } catch (final InstantiationException e) { |
| LOGGER.severe("Unable to create instance of class " + code); |
| throw new MBeanRegistrationException(e); |
| } catch (final IllegalAccessException e) { |
| LOGGER.severe("Illegal access: " + code); |
| throw new MBeanRegistrationException(e); |
| } catch (final MalformedObjectNameException e) { |
| LOGGER.severe("Malformed MBean name: " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (final InstanceAlreadyExistsException e) { |
| LOGGER.severe("Instance already exists: " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (final NotCompliantMBeanException e) { |
| LOGGER.severe("Class is not a valid MBean: " + code); |
| throw new MBeanRegistrationException(e); |
| } catch (final javax.management.MBeanRegistrationException e) { |
| LOGGER.severe("Error registering " + name + ", " + code); |
| throw new MBeanRegistrationException(e); |
| } |
| } |
| |
| private void requireNotNull(final String object) throws MBeanRegistrationException { |
| if (object == null) { |
| throw new MBeanRegistrationException("code property not specified, stopping"); |
| } |
| } |
| |
| public Properties getProperties() { |
| return properties; |
| } |
| |
| public void setProperties(final Properties properties) { |
| this.properties = properties; |
| } |
| } |
| ---- |
| |
| NOTE: que esta classe usa as propriedades definidas na configuração |
| (abaixo), combinada com reflexão, para instanciar o recurso e definir |
| seus atributos. O código acima requer duas propriedades `code` e `name` |
| para saber qual classe criar e o nome JMX sob o qual será registrada. |
| |
| == Resource |
| |
| O recurso pode ser definido em `META-INF/resources.xml` da seguinte maneira: |
| |
| [source,xml] |
| ---- |
| <Resources> |
| <Resource id="Hello" class-name="org.superbiz.resource.jmx.factory.JMXBeanCreator" factory-name="create"> |
| code org.superbiz.resource.jmx.resources.Hello |
| name superbiz.test:name=Hello |
| count 12345 |
| </Resource> |
| </Resources> |
| ---- |
| |
| NOTE: que o atributo class-name se refere à classe factory, e não |
| o recurso. Depois que o recurso for criado e vinculado ao recurso. |
| Depois que o recurso for criado e vinculado à árvore JNDI do TomEE, a fábrica não é mais usada. |
| |
| == Usando o @Resource para injeção |
| |
| O caso de teste para este exemplo demonstra a injeção em um EJB como uma maneira de acessar o recurso e também acessar o recurso via JMX. |
| |
| [source,java] |
| ---- |
| @RunWith(Arquillian.class) |
| public class JMXTest { |
| |
| @EJB |
| private TestEjb ejb; |
| |
| @Deployment |
| public static EnterpriseArchive createDeployment() { |
| |
| final JavaArchive ejbJar = new Mvn.Builder() |
| .name("jmx-ejb.jar") |
| .build(JavaArchive.class) |
| .addClass(JMXTest.class) |
| .addClass(TestEjb.class); |
| |
| final EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "jmx.ear") |
| .addAsModule(ejbJar); |
| |
| return ear; |
| } |
| |
| @Test |
| public void test() throws Exception { |
| final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); |
| final ObjectName objectName = new ObjectName("superbiz.test:name=Hello"); |
| |
| Assert.assertNotNull(ejb); |
| |
| Assert.assertEquals(0, mbs.getAttribute(objectName, "Count")); |
| Assert.assertEquals(0, ejb.getCount()); |
| |
| mbs.invoke(objectName, "increment", new Object[0], new String[0]); |
| Assert.assertEquals(1, mbs.getAttribute(objectName, "Count")); |
| Assert.assertEquals(1, ejb.getCount()); |
| |
| ejb.increment(); |
| Assert.assertEquals(2, mbs.getAttribute(objectName, "Count")); |
| Assert.assertEquals(2, ejb.getCount()); |
| |
| Attribute attribute = new Attribute("Count", 12345); |
| mbs.setAttribute(objectName, attribute); |
| Assert.assertEquals(12345, mbs.getAttribute(objectName, "Count")); |
| Assert.assertEquals(12345, ejb.getCount()); |
| |
| ejb.setCount(23456); |
| Assert.assertEquals(23456, mbs.getAttribute(objectName, "Count")); |
| Assert.assertEquals(23456, ejb.getCount()); |
| |
| Assert.assertEquals("Hello, world", mbs.invoke(objectName, "greet", new Object[] { "world" }, new String[] { String.class.getName() })); |
| Assert.assertEquals("Hello, world", ejb.greet("world")); |
| } |
| |
| @Singleton |
| @Lock(LockType.READ) |
| public static class TestEjb { |
| |
| @Resource(name="jmx/Hello") |
| private HelloMBean helloMBean; |
| |
| public String greet(String name) { |
| return helloMBean.greet(name); |
| } |
| |
| public void setCount(int count) { |
| helloMBean.setCount(count); |
| } |
| |
| public void increment() { |
| helloMBean.increment(); |
| } |
| |
| public int getCount() { |
| return helloMBean.getCount(); |
| } |
| } |
| } |
| ---- |
| |
| O atributo name `<name>/<resource-id>`é usado na anotação `@Resource` para executar a injeção. Nenhuma configuração adicional é necessária para injetar o recurso. |
| |
| == Propriedades adicionais |
| |
| Além das propriedades `code` e `name` que o código acima usa para instanciar o recurso, o próprio TomEE fornece algumas propriedades para fornecer mais controle sobre a criação de recursos. |
| |
| Os recursos são normalmente descobertos, criados e vinculados ao |
| JNDI muito cedo no processo de implementação, pois outros componentes dependem deles. Isso pode levar a problemas nos quais o classpath final da aplicação ainda não foi determinado e, portanto, o TomEE não pode carregar seu recurso personalizado. |
| |
| As seguintes propriedades podem ser usadas para alterar esse comportamento. |
| |
| * Lazy |
| |
| é um valor booleano que, quando verdadeiro, cria um proxy que adia |
| a instanciação real do recurso até a primeira vez que ele é procurado pelo JNDI. |
| Isso pode ser útil se o recurso exigir o classpath da aplicação ou para melhorar o tempo de inicialização não totalmente inicializando recursos que podem não ser usados. |
| |
| * UseAppClassLoader |
| |
| Esse valor booleano força um recurso instanciado Lazy a usar o |
| classloaders da aplicação, em vez do classloader disponível quando |
| os recursos foram processados primeiro. |
| |
| * InitializeAfterDeployment |
| |
| Essa configuração booleana força um recurso criado com a propriedade Lazy a ser instanciado depois que a aplicação é iniciada, em vez de esperar que ele seja procurado. Use esse sinalizador se precisar que o recurso seja carregado,independentemente de ser injetado em um componente gerenciado ou consultado manualmente. |
| |
| Por padrão, todas essas configurações são `false`, a menos que o TomEE encontre um recurso da aplicação personalizado que não possa ser instanciado até que a aplicação seja iniciada. |
| Nesse caso, ele definirá esses três sinalizadores para `true`, a menos que o sinalizador `Lazy` tenha sido definido explicitamente. |
| |
| == PostConstruct / PreDestroy |
| |
| Como alternativa ao uso de um método de fábrica, você pode usar `@PostConstruct` |
| e `@PreDestroy` dentro da sua classe de recurso (observe que você não pode |
| usar isso dentro de uma classe de fábrica) para gerenciar qualquer criação ou |
| atividades de limpeza. O TomEE chama automaticamente esses métodos quando o |
| aplicativo é iniciado e destruído. O uso do `@PostConstruct` |
| efetivamente força um recurso carregado lentamente a ser instanciado quando o |
| aplicativo está sendo iniciado - da mesma maneira que a propriedade `InitializeAfterDeployment` faz. |
| |
| [source,java] |
| ---- |
| public class Alternative implements AlternativeMBean { |
| |
| private static Logger LOGGER = Logger.getLogger(Alternative.class.getName()); |
| private Properties properties; |
| |
| @PostConstruct |
| public void postConstruct() throws MBeanRegistrationException { |
| // initialize the bean |
| |
| final String code = properties.getProperty("code"); |
| final String name = properties.getProperty("name"); |
| |
| requireNotNull(code); |
| requireNotNull(name); |
| |
| try { |
| final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); |
| final ObjectName objectName = new ObjectName(name); |
| mbs.registerMBean(this, objectName); |
| } catch (final MalformedObjectNameException e) { |
| LOGGER.severe("Malformed MBean name: " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (final InstanceAlreadyExistsException e) { |
| LOGGER.severe("Instance already exists: " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (final NotCompliantMBeanException e) { |
| LOGGER.severe("Class is not a valid MBean: " + code); |
| throw new MBeanRegistrationException(e); |
| } catch (final javax.management.MBeanRegistrationException e) { |
| LOGGER.severe("Error registering " + name + ", " + code); |
| throw new MBeanRegistrationException(e); |
| } |
| } |
| |
| @PreDestroy |
| public void preDestroy() throws MBeanRegistrationException { |
| final String name = properties.getProperty("name"); |
| requireNotNull(name); |
| |
| try { |
| final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); |
| final ObjectName objectName = new ObjectName(name); |
| mbs.unregisterMBean(objectName); |
| } catch (final MalformedObjectNameException e) { |
| LOGGER.severe("Malformed MBean name: " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (final javax.management.MBeanRegistrationException e) { |
| LOGGER.severe("Error unregistering " + name); |
| throw new MBeanRegistrationException(e); |
| } catch (InstanceNotFoundException e) { |
| LOGGER.severe("Error unregistering " + name); |
| throw new MBeanRegistrationException(e); |
| } |
| } |
| |
| private void requireNotNull(final String object) throws MBeanRegistrationException { |
| if (object == null) { |
| throw new MBeanRegistrationException("code property not specified, stopping"); |
| } |
| } |
| |
| public Properties getProperties() { |
| return properties; |
| } |
| |
| public void setProperties(final Properties properties) { |
| this.properties = properties; |
| } |
| |
| private int count = 0; |
| |
| @Override |
| public String greet(String name) { |
| if (name == null) { |
| throw new NullPointerException("Name cannot be null"); |
| } |
| |
| return "Hello, " + name; |
| } |
| |
| @Override |
| public int getCount() { |
| return count; |
| } |
| |
| @Override |
| public void setCount(int value) { |
| count = value; |
| } |
| |
| @Override |
| public void increment() { |
| count++; |
| } |
| } |
| ---- |
| |
| == Executando |
| |
| A execução do exemplo pode ser feita no maven com um simples comando `mvn clean install`, executado no diretório `resources-jmx-example`. |
| |
| Ao executar, você verá uma saída semelhante à seguinte. |
| |
| [source,console] |
| ---- |
| ------------------------------------------------------- |
| T E S T E S |
| ------------------------------------------------------- |
| Running org.superbiz.resource.jmx.JMXTest |
| Apr 15, 2015 12:40:09 PM org.jboss.arquillian.container.impl.MapObject populate |
| WARNING: Configuration contain properties not supported by the backing object org.apache.tomee.arquillian.remote.RemoteTomEEConfiguration |
| Unused property entries: {openejbVersion=${tomee.version}, tomcatVersion=} |
| Supported property names: [additionalLibs, httpPort, httpsPort, stopCommand, portRange, conf, debug, exportConfAsSystemProperty, type, unpackWars, version, serverXml, preloadClasses, dir, deployerProperties, stopPort, singleDumpByArchiveName, appWorkingDir, host, cleanOnStartUp, quickSession, ajpPort, artifactId, properties, singleDeploymentByArchiveName, groupId, stopHost, lib, catalina_opts, debugPort, webContextToUseWithEars, simpleLog, removeUnusedWebapps, keepServerXmlAsThis, classifier, bin] |
| Apr 15, 2015 12:40:09 PM org.apache.openejb.arquillian.common.Setup findHome |
| INFO: Unable to find home in: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote |
| Apr 15, 2015 12:40:09 PM org.apache.openejb.arquillian.common.MavenCache getArtifact |
| INFO: Downloading org.apache.openejb:apache-tomee:7.0.0-SNAPSHOT:zip:plus please wait... |
| Apr 15, 2015 12:40:10 PM org.apache.openejb.arquillian.common.Zips unzip |
| INFO: Extracting '/Users/jgallimore/.m2/repository/org/apache/openejb/apache-tomee/7.0.0-SNAPSHOT/apache-tomee-7.0.0-SNAPSHOT-plus.zip' to '/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote' |
| Apr 15, 2015 12:40:12 PM org.apache.tomee.arquillian.remote.RemoteTomEEContainer configure |
| INFO: Downloaded container to: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Started server process on port: 61309 |
| objc[20102]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Server version: Apache Tomcat (TomEE)/7.0.61 (7.0.0-SNAPSHOT) |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Server built: Mar 27 2015 12:03:56 UTC |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Server number: 7.0.61.0 |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: OS Name: Mac OS X |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: OS Version: 10.9.5 |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Architecture: x86_64 |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Java Home: /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: JVM Version: 1.7.0_71-b14 |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: JVM Vendor: Oracle Corporation |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: CATALINA_BASE: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: CATALINA_HOME: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -XX:+HeapDumpOnOutOfMemoryError |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -XX:PermSize=64m |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -XX:MaxPermSize=256m |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Xmx512m |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Xms256m |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -XX:ReservedCodeCacheSize=64m |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dtomee.httpPort=61309 |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dorg.apache.openejb.servlet.filters=org.apache.openejb.arquillian.common.ArquillianFilterRunner=/ArquillianServletRunner |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Djava.util.logging.config.file=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/conf/logging.properties |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -javaagent:/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/lib/openejb-javaagent.jar |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Djava.io.tmpdir=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/temp |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Djava.endorsed.dirs=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/endorsed |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dcatalina.base=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dcatalina.home=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dcatalina.ext.dirs=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/lib |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.startup.VersionLoggerListener log |
| INFO: Command line argument: -ea |
| Apr 15, 2015 12:40:14 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent |
| INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/jgallimore/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. |
| Apr 15, 2015 12:40:14 PM org.apache.coyote.AbstractProtocol init |
| INFO: Initializing ProtocolHandler ["http-bio-61309"] |
| Apr 15, 2015 12:40:14 PM org.apache.coyote.AbstractProtocol init |
| INFO: Initializing ProtocolHandler ["ajp-bio-8009"] |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator' |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: ******************************************************************************** |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: OpenEJB http://tomee.apache.org/ |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: Startup: Wed Apr 15 12:40:16 BST 2015 |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: Copyright 1999-2013 (C) Apache OpenEJB Project, All Rights Reserved. |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: Version: 7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: Build date: 20150415 |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: Build time: 11:37 |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: ******************************************************************************** |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: openejb.home = /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.OpenEJB$Instance <init> |
| INFO: openejb.base = /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB |
| INFO: Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@4a00b74b |
| Apr 15, 2015 12:40:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB |
| INFO: Succeeded in installing singleton service |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.ConfigurationFactory init |
| INFO: openejb configuration file is '/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/conf/tomee.xml' |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service) |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.system.apps=true' |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.ConfigurationFactory configureApplication |
| INFO: Configuring enterprise application: openejb |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.InitEjbDeployments deploy |
| INFO: Using openejb.deploymentId.format '{ejbName}' |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.InitEjbDeployments deploy |
| INFO: Auto-deploying ejb openejb/Deployer: EjbDeployment(deployment-id=openejb/Deployer) |
| Apr 15, 2015 12:40:17 PM org.apache.openejb.config.InitEjbDeployments deploy |
| INFO: Auto-deploying ejb openejb/ConfigurationInfo: EjbDeployment(deployment-id=openejb/ConfigurationInfo) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.config.InitEjbDeployments deploy |
| INFO: Auto-deploying ejb MEJB: EjbDeployment(deployment-id=MEJB) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.config.AutoConfig createContainer |
| INFO: Auto-creating a container for bean openejb/Deployer: Container(type=STATELESS, id=Default Stateless Container) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.config.AppInfoBuilder build |
| INFO: Enterprise application "openejb" loaded. |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating TransactionManager(id=Default Transaction Manager) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating SecurityService(id=Tomcat Security Service) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating Container(id=Default Stateless Container) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.Assembler createAppClassLoader |
| INFO: Not creating another application classloader for openejb |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.Assembler createApplication |
| INFO: Assembling app: openejb |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.jndiname.format={deploymentId}{interfaceType.openejbLegacyName}' |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=openejb/DeployerBusinessRemote) --> Ejb(deployment-id=openejb/Deployer) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/openejb/Deployer!org.apache.openejb.assembler.Deployer) --> Ejb(deployment-id=openejb/Deployer) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/openejb/Deployer) --> Ejb(deployment-id=openejb/Deployer) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=openejb/ConfigurationInfoBusinessRemote) --> Ejb(deployment-id=openejb/ConfigurationInfo) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/openejb/ConfigurationInfo!org.apache.openejb.assembler.classic.cmd.ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo) |
| Apr 15, 2015 12:40:18 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/openejb/ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=MEJB) --> Ejb(deployment-id=MEJB) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/MEJB!javax.management.j2ee.ManagementHome) --> Ejb(deployment-id=MEJB) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/openejb/MEJB) --> Ejb(deployment-id=MEJB) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Created Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Created Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Created Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Started Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Started Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Started Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler deployMBean |
| INFO: Deployed MBean(openejb.user.mbeans:application=openejb,group=org.apache.openejb.assembler.monitoring,name=JMXDeployer) |
| Apr 15, 2015 12:40:19 PM org.apache.openejb.assembler.classic.Assembler createApplication |
| INFO: Deployed Application(path=openejb) |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.ServiceManager initServer |
| INFO: Creating ServerService(id=cxf) |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.ServiceManager initServer |
| INFO: Creating ServerService(id=cxf-rs) |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.SimpleServiceManager start |
| INFO: ** Bound Services ** |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.SimpleServiceManager printRow |
| INFO: NAME IP PORT |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.SimpleServiceManager start |
| INFO: ------- |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.server.SimpleServiceManager start |
| INFO: Ready! |
| Apr 15, 2015 12:40:20 PM org.apache.catalina.startup.Catalina load |
| INFO: Initialization processed in 7621 ms |
| Apr 15, 2015 12:40:20 PM org.apache.tomee.catalina.OpenEJBNamingContextListener bindResource |
| INFO: Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'. |
| Apr 15, 2015 12:40:20 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating Resource(id=UserDatabase) |
| Apr 15, 2015 12:40:20 PM org.apache.catalina.core.StandardService startInternal |
| INFO: Starting service Catalina |
| Apr 15, 2015 12:40:20 PM org.apache.catalina.core.StandardEngine startInternal |
| INFO: Starting Servlet Engine: Apache Tomcat (TomEE)/7.0.61 (7.0.0-SNAPSHOT) |
| Apr 15, 2015 12:40:21 PM org.apache.coyote.AbstractProtocol start |
| INFO: Starting ProtocolHandler ["http-bio-61309"] |
| Apr 15, 2015 12:40:21 PM org.apache.coyote.AbstractProtocol start |
| INFO: Starting ProtocolHandler ["ajp-bio-8009"] |
| Apr 15, 2015 12:40:21 PM org.apache.catalina.startup.Catalina start |
| INFO: Server startup in 247 ms |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.client.EventLogger log |
| INFO: RemoteInitialContextCreated{providerUri=http://localhost:61309/tomee/ejb} |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.util.JarExtractor extract |
| INFO: Extracting jar: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx.ear |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.util.JarExtractor extract |
| INFO: Extracted path: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.util.JarExtractor extract |
| INFO: Extracting jar: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx/arquillian-protocol.war |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.util.JarExtractor extract |
| INFO: Extracted path: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx/arquillian-protocol |
| Apr 15, 2015 12:40:21 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.deployments.classpath.filter.systemapps=false' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.default.deployment-module=org.apache.openejb.config.WebModule' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.default.deployment-module=org.apache.openejb.config.WebModule' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.config.DeploymentsResolver processUrls |
| INFO: Found EjbModule in classpath: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx/jmx-ejb.jar |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.default.deployment-module=org.apache.openejb.config.WebModule' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.default.deployment-module=org.apache.openejb.config.WebModule' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.default.deployment-module=org.apache.openejb.config.WebModule' |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.config.DeploymentsResolver loadFromClasspath |
| INFO: Searched 6 classpath urls in 1605 milliseconds. Average 267 milliseconds per url. |
| Apr 15, 2015 12:40:23 PM org.apache.openejb.config.ConfigurationFactory configureApplication |
| INFO: Configuring enterprise application: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.InitEjbDeployments deploy |
| INFO: Auto-deploying ejb TestEjb: EjbDeployment(deployment-id=TestEjb) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=jmx/Hello, type=Resource, provider-id=jmx/Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig createContainer |
| INFO: Auto-creating a container for bean jmx-ejb.Comp1256115069: Container(type=MANAGED, id=Default Managed Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating Container(id=Default Managed Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.core.managed.SimplePassivater init |
| INFO: Using directory /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/apache-tomee-remote/apache-tomee-plus-7.0.0-SNAPSHOT/temp for stateful session passivation |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'java:comp/env/jmx/Hello' in bean jmx-ejb.Comp1256115069 to Resource(id=jmx/Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/jmx/Hello' in bean jmx-ejb.Comp1256115069 to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/Hello' in bean jmx-ejb.Comp1256115069 to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig createContainer |
| INFO: Auto-creating a container for bean TestEjb: Container(type=SINGLETON, id=Default Singleton Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating Container(id=Default Singleton Container) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'java:comp/env/jmx/Hello' in bean TestEjb to Resource(id=jmx/Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/jmx/Hello' in bean TestEjb to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/Hello' in bean TestEjb to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/jmx/Hello' in bean jmx_org.superbiz.resource.jmx.JMXTest to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AutoConfig processResourceRef |
| INFO: Auto-linking resource-ref 'openejb/Resource/Hello' in bean jmx_org.superbiz.resource.jmx.JMXTest to Resource(id=Hello) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.AppInfoBuilder build |
| INFO: Enterprise application "/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx" loaded. |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.Assembler createAppClassLoader |
| INFO: Creating dedicated application classloader for jmx |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.Assembler createApplication |
| INFO: Assembling app: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=TestEjbLocalBean) --> Ejb(deployment-id=TestEjb) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/jmx/jmx-ejb/TestEjb!org.superbiz.resource.jmx.JMXTest$TestEjb) --> Ejb(deployment-id=TestEjb) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.assembler.classic.JndiBuilder bind |
| INFO: Jndi(name=global/jmx/jmx-ejb/TestEjb) --> Ejb(deployment-id=TestEjb) |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.cdi.CdiBuilder initSingleton |
| INFO: Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@4a00b74b |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication |
| INFO: OpenWebBeans Container is starting... |
| Apr 15, 2015 12:40:24 PM org.apache.webbeans.plugins.PluginLoader startUp |
| INFO: Adding OpenWebBeansPlugin : [CdiPlugin] |
| Apr 15, 2015 12:40:24 PM org.apache.webbeans.plugins.PluginLoader startUp |
| Apr 15, 2015 12:40:25 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints |
| INFO: All injection points were validated successfully. |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication |
| INFO: OpenWebBeans Container has started, it took 186 ms. |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Created Ejb(deployment-id=TestEjb, ejb-name=TestEjb, container=Default Singleton Container) |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler startEjbs |
| INFO: Started Ejb(deployment-id=TestEjb, ejb-name=TestEjb, container=Default Singleton Container) |
| Apr 15, 2015 12:40:25 PM org.apache.tomee.catalina.TomcatWebAppBuilder deployWebApps |
| INFO: using default host: localhost |
| Apr 15, 2015 12:40:25 PM org.apache.tomee.catalina.TomcatWebAppBuilder init |
| INFO: ------------------------- localhost -> /arquillian-protocol |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.util.OptionsLog info |
| INFO: Using 'openejb.session.manager=org.apache.tomee.catalina.session.QuickSessionManager' |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.cdi.CdiBuilder initSingleton |
| INFO: Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@4a00b74b |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication |
| INFO: OpenWebBeans Container is starting... |
| Apr 15, 2015 12:40:25 PM org.apache.webbeans.plugins.PluginLoader startUp |
| INFO: Adding OpenWebBeansPlugin : [CdiPlugin] |
| Apr 15, 2015 12:40:25 PM org.apache.webbeans.plugins.PluginLoader startUp |
| Apr 15, 2015 12:40:25 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints |
| INFO: All injection points were validated successfully. |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication |
| INFO: OpenWebBeans Container has started, it took 17 ms. |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler createRecipe |
| INFO: Creating Resource(id=jmx/Hello, aliases=Hello) |
| Apr 15, 2015 12:40:25 PM org.superbiz.resource.jmx.factory.JMXBeanCreator create |
| INFO: Unable to set value 12345 on field count |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler logUnusedProperties |
| WARNING: Property "code" not supported by "jmx/Hello" |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler logUnusedProperties |
| WARNING: Property "name" not supported by "jmx/Hello" |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler logUnusedProperties |
| WARNING: Property "count" not supported by "jmx/Hello" |
| Apr 15, 2015 12:40:25 PM org.apache.openejb.assembler.classic.Assembler createApplication |
| INFO: Deployed Application(path=/Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx) |
| Apr 15, 2015 12:40:26 PM org.apache.openejb.client.EventLogger log |
| INFO: RemoteInitialContextCreated{providerUri=http://localhost:61309/tomee/ejb} |
| Apr 15, 2015 12:40:26 PM org.apache.openejb.assembler.classic.Assembler destroyApplication |
| INFO: Undeploying app: /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx |
| Apr 15, 2015 12:40:27 PM org.apache.openejb.arquillian.common.TomEEContainer undeploy |
| INFO: cleaning /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx.ear |
| Apr 15, 2015 12:40:27 PM org.apache.openejb.arquillian.common.TomEEContainer undeploy |
| INFO: cleaning /Users/jgallimore/tmp/tomee-1.7.x/examples/resources-jmx-example/resources-jmx-ejb/target/arquillian-test-working-dir/0/jmx |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.464 sec |
| Apr 15, 2015 12:40:27 PM org.apache.catalina.core.StandardServer await |
| INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance. |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol pause |
| INFO: Pausing ProtocolHandler ["http-bio-61309"] |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol pause |
| INFO: Pausing ProtocolHandler ["ajp-bio-8009"] |
| Apr 15, 2015 12:40:27 PM org.apache.catalina.core.StandardService stopInternal |
| INFO: Stopping service Catalina |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol stop |
| INFO: Stopping ProtocolHandler ["http-bio-61309"] |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol stop |
| INFO: Stopping ProtocolHandler ["ajp-bio-8009"] |
| Apr 15, 2015 12:40:27 PM org.apache.openejb.server.SimpleServiceManager stop |
| INFO: Stopping server services |
| Apr 15, 2015 12:40:27 PM org.apache.openejb.assembler.classic.Assembler destroyApplication |
| INFO: Undeploying app: openejb |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol destroy |
| INFO: Destroying ProtocolHandler ["http-bio-61309"] |
| Apr 15, 2015 12:40:27 PM org.apache.coyote.AbstractProtocol destroy |
| INFO: Destroying ProtocolHandler ["ajp-bio-8009"] |
| |
| Results : |
| |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 |
| ---- |
| |
| NOTE: as seguintes linhas mostrando a criação do recurso. |
| |
| [source,java] |
| ---- |
| Apr 15, 2015 12:40:24 PM org.apache.openejb.config.ConfigurationFactory configureService |
| INFO: Configuring Service(id=jmx/Hello, type=Resource, provider-id=jmx/Hello) |
| ---- |