You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/03/03 00:01:38 UTC

svn commit: r1076449 - in /tapestry/tapestry5/trunk/tapestry-jmx: ./ src/main/java/org/apache/tapestry5/internal/jmx/ src/main/java/org/apache/tapestry5/jmx/ src/test/conf/ src/test/java/org/apache/tapestry5/jmx/integration/ src/test/java/org/example/t...

Author: hlship
Date: Wed Mar  2 23:01:37 2011
New Revision: 1076449

URL: http://svn.apache.org/viewvc?rev=1076449&view=rev
Log:
TAP5-1455: Rebuild the tapestry-jmx tests now that PagePool is no longer available as a JMX MBean

Added:
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/Sample.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImpl.java
      - copied, changed from r1076448, tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImplMBean.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/log4j.properties
Modified:
    tapestry/tapestry5/trunk/tapestry-jmx/pom.xml
    tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/JmxModule.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/MBeanSupport.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/conf/testng.xml
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/pages/RemotePoolManagement.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/AppModule.java
    tapestry/tapestry5/trunk/tapestry-jmx/src/test/webapp/RemotePoolManagement.tml

Modified: tapestry/tapestry5/trunk/tapestry-jmx/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/pom.xml?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/pom.xml (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/pom.xml Wed Mar  2 23:01:37 2011
@@ -41,6 +41,9 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                  <argLine>-Dtapestry.service-reloading-enabled=false</argLine>
+                </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/internal/jmx/MBeanSupportImpl.java Wed Mar  2 23:01:37 2011
@@ -1,10 +1,10 @@
-// Copyright 2010 The Apache Software Foundation
+// Copyright 2010, 2011 The Apache Software Foundation
 //
 // Licensed 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
+// 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,
@@ -20,22 +20,25 @@ import java.lang.management.ManagementFa
 import java.util.List;
 import java.util.Set;
 
+import javax.annotation.PostConstruct;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
+import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.internal.util.OneShotLock;
+import org.apache.tapestry5.ioc.services.RegistryShutdownHub;
 import org.apache.tapestry5.ioc.services.RegistryShutdownListener;
 import org.apache.tapestry5.jmx.MBeanSupport;
 import org.slf4j.Logger;
 
 public class MBeanSupportImpl implements MBeanSupport, RegistryShutdownListener
 {
-    private Logger logger;
+    private final Logger logger;
+
+    private final MBeanServer server;
 
-    private MBeanServer server;
-    
     private final OneShotLock lock = new OneShotLock();
 
     private final Set<ObjectName> registeredBeans = CollectionFactory.newSet();
@@ -43,28 +46,55 @@ public class MBeanSupportImpl implements
     public MBeanSupportImpl(Logger logger)
     {
         this.logger = logger;
-        
+
         // TODO: Agent Id should be configurable
         final List<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
 
-        if (servers != null && 0 <  servers.size())
+        MBeanServer server = null;
+
+        if (servers != null && 0 < servers.size())
         {
-            this.server = servers.get(0);
+            server = servers.get(0);
         }
 
         if (this.server == null)
         {
-            this.server = ManagementFactory.getPlatformMBeanServer();
+            server = ManagementFactory.getPlatformMBeanServer();
+        }
+
+        this.server = server;
+    }
+
+    @PostConstruct
+    public void listenForShutdown(RegistryShutdownHub hub)
+    {
+        hub.addRegistryShutdownListener(this);
+    }
+
+    public void register(Object bean, String name)
+    {
+        register(bean, toObjectName(name));
+    }
+
+    private static ObjectName toObjectName(String name)
+    {
+        try
+        {
+            return new ObjectName(name);
+        }
+        catch (Exception ex)
+        {
+            throw new RuntimeException(ex);
         }
     }
 
     public void register(final Object object, final ObjectName objectName)
     {
         lock.check();
-        
+
         if (this.server.isRegistered(objectName))
             return;
-        
+
         try
         {
             this.server.registerMBean(object, objectName);
@@ -82,10 +112,10 @@ public class MBeanSupportImpl implements
     public void unregister(final ObjectName objectName)
     {
         lock.check();
-        
+
         doUnregister(objectName);
     }
-    
+
     private void doUnregister(final ObjectName objectName)
     {
         if (this.server.isRegistered(objectName))
@@ -95,8 +125,8 @@ public class MBeanSupportImpl implements
                 this.server.unregisterMBean(objectName);
 
                 this.logger.info(format("Unregistered MBean '%s' from server", objectName));
-                
-                if(registeredBeans.contains(objectName))
+
+                if (registeredBeans.contains(objectName))
                     registeredBeans.remove(objectName);
             }
             catch (final Exception e)

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/JmxModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/JmxModule.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/JmxModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/JmxModule.java Wed Mar  2 23:01:37 2011
@@ -1,10 +1,10 @@
-// Copyright 2010 The Apache Software Foundation
+// Copyright 2010, 2011 The Apache Software Foundation
 //
 // Licensed 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
+// 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,
@@ -13,44 +13,16 @@
 // limitations under the License.
 package org.apache.tapestry5.jmx;
 
-import javax.management.ObjectName;
-
 import org.apache.tapestry5.internal.jmx.MBeanSupportImpl;
-import org.apache.tapestry5.internal.services.PagePool;
-import org.apache.tapestry5.ioc.annotations.Autobuild;
-import org.apache.tapestry5.ioc.services.RegistryShutdownHub;
+import org.apache.tapestry5.ioc.ServiceBinder;
 
 /**
  * Module for JMX services.
- *
  */
 public class JmxModule
 {
-    public MBeanSupport buildMBeanSupport(RegistryShutdownHub shutdownHub, @Autobuild MBeanSupportImpl service)
-    {
-        shutdownHub.addRegistryShutdownListener(service);
-        
-        return service;
-    }
-    
-    public static PagePool decoratePagePool(final PagePool pagePool, final MBeanSupport managedBeanSupport)
-    { 
-        final ObjectName objectName = buildObjectName("org.apache.tapestry5:service=PagePool");
-        
-        managedBeanSupport.register(pagePool, objectName);
-        
-        return pagePool;
-    }
-    
-    private static ObjectName buildObjectName(String name)
+    public static void bind(ServiceBinder binder)
     {
-        try
-        {
-            return new ObjectName(name);
-        }
-        catch (Exception e)
-        {
-            throw new RuntimeException(e);
-        }
+        binder.bind(MBeanSupport.class, MBeanSupportImpl.class);
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/MBeanSupport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/MBeanSupport.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/MBeanSupport.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/main/java/org/apache/tapestry5/jmx/MBeanSupport.java Wed Mar  2 23:01:37 2011
@@ -1,10 +1,10 @@
-// Copyright 20010 The Apache Software Foundation
+// Copyright 2010, 2011 The Apache Software Foundation
 //
 // Licensed 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
+// 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,
@@ -17,26 +17,40 @@ package org.apache.tapestry5.jmx;
 import javax.management.ObjectName;
 
 /**
- * Creates an MBean server and registers MBeans with the created server. The registered MBeans are unregistered when Registry is shut down.
+ * Creates an MBean server and registers MBeans with the created server. The registered MBeans are unregistered when
+ * Registry is shut down.
  * 
  * @since 5.2.0
  */
-public interface MBeanSupport 
+public interface MBeanSupport
 {
 
     /**
      * Registers the specified MBean with the server.
      * 
-     * @param bean the MBean instance
-     * @param objectName the name for the MBean
+     * @param bean
+     *            the MBean instance
+     * @param objectName
+     *            the name for the MBean
      */
-    void register(final Object bean, final ObjectName objectName);
+    void register(Object bean, ObjectName objectName);
 
     /**
-     * Unregisters the specified MBean from the server.
+     * Registers the specific MBean with the server.
      * 
-     * @param objectName the name for the MBean
+     * @param bean
+     *            the MBean instance
+     * @param name
+     *            string name used to create an {@link ObjectName}
+     * @since 5.3.0
      */
-    void unregister(final ObjectName objectName);
+    void register(Object bean, String name);
 
-}
\ No newline at end of file
+    /**
+     * Unregisters the specified MBean from the server.
+     * 
+     * @param objectName
+     *            the name for the MBean
+     */
+    void unregister(ObjectName objectName);
+}

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/test/conf/testng.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/conf/testng.xml?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/conf/testng.xml (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/conf/testng.xml Wed Mar  2 23:01:37 2011
@@ -1,22 +1,12 @@
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-	<!--
-		Copyright 2010 The Apache Software Foundation Licensed 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.
-	-->
 
 <suite name="Tapestry JMX" parallel="false" thread-count="10" annotations="1.5" verbose="2">
-    <parameter name="tapestry.integration-webapp" value="src/test/webapp"/>
 
-    <test name="Tapestry JMX Integration Tests">
-        <packages>
-            <package name="org.apache.tapestry5.jmx.integration"/>
-        </packages>
-    </test>
+  <test name="Tapestry JMX Integration Tests">
+    <parameter name="tapestry.web-app-folder" value="src/test/webapp"/>
+
+    <packages>
+      <package name="org.apache.tapestry5.jmx.integration"/>
+    </packages>
+  </test>
 </suite>

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java Wed Mar  2 23:01:37 2011
@@ -13,25 +13,20 @@
 // limitations under the License.
 package org.apache.tapestry5.jmx.integration;
 
-import org.apache.tapestry5.test.AbstractIntegrationTestSuite;
+import org.apache.tapestry5.test.SeleniumTestCase;
 import org.testng.annotations.Test;
 
 @Test(sequential = true, groups = "integration")
-public class TapestryJmxIntegrationTests extends AbstractIntegrationTestSuite
+public class TapestryJmxIntegrationTests extends SeleniumTestCase
 {
-
-    public TapestryJmxIntegrationTests()
-    {
-        super("src/test/webapp");
-    }
-
     /** TAP5-978 */
     @Test
     public void remote_pool_management()
     {
+        openBaseURL();
 
-        start("Remote Pool Management");
+        clickAndWait("link=Remote Pool Management");
 
-        assertTextPresent("SoftWait: 10");
+        assertText("sample-value", "42");
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/pages/RemotePoolManagement.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/pages/RemotePoolManagement.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/pages/RemotePoolManagement.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/pages/RemotePoolManagement.java Wed Mar  2 23:01:37 2011
@@ -1,10 +1,10 @@
-// Copyright 2010 The Apache Software Foundation
+// Copyright 2010, 2011 The Apache Software Foundation
 //
 // Licensed 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
+// 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,
@@ -20,12 +20,12 @@ import javax.management.ObjectName;
 
 public class RemotePoolManagement
 {
-    
-    public Object getSoftWait() throws Exception
+
+    public Object getSampleValue() throws Exception
     {
         MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-        
-        return server.getAttribute(new ObjectName("org.apache.tapestry5:service=PagePool"), "SoftWait");
+
+        return server.getAttribute(new ObjectName("org.example.testapp.services:service=Sample"), "SampleValue");
     }
 
 }

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/AppModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/AppModule.java?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/AppModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/AppModule.java Wed Mar  2 23:01:37 2011
@@ -1,10 +1,10 @@
-// Copyright 2010 The Apache Software Foundation
+// Copyright 2010, 2011 The Apache Software Foundation
 //
 // Licensed 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
+// 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,
@@ -16,15 +16,30 @@ package org.example.testapp.services;
 
 import org.apache.tapestry5.SymbolConstants;
 import org.apache.tapestry5.ioc.MappedConfiguration;
+import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.Decorate;
 import org.apache.tapestry5.ioc.annotations.SubModule;
 import org.apache.tapestry5.jmx.JmxModule;
+import org.apache.tapestry5.jmx.MBeanSupport;
 
 @SubModule(JmxModule.class)
 public class AppModule
 {
+    public static void bind(ServiceBinder binder)
+    {
+        binder.bind(Sample.class);
+    }
+
     public static void contributeApplicationDefaults(MappedConfiguration<String, String> configuration)
     {
         configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
-        configuration.add(SymbolConstants.PAGE_POOL_ENABLED, "true");
     }
-}
\ No newline at end of file
+
+    @Decorate(serviceInterface = Sample.class)
+    public static Sample enableJMXForSample(Sample service, MBeanSupport managedBeanSupport)
+    {
+        managedBeanSupport.register(service, "org.example.testapp.services:service=Sample");
+
+        return service;
+    }
+}

Added: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/Sample.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/Sample.java?rev=1076449&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/Sample.java (added)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/Sample.java Wed Mar  2 23:01:37 2011
@@ -0,0 +1,20 @@
+// Copyright 2011 The Apache Software Foundation
+//
+// Licensed 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.example.testapp.services;
+
+public interface Sample
+{
+    int getSampleValue();
+}

Copied: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImpl.java (from r1076448, tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImpl.java?p2=tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImpl.java&p1=tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java&r1=1076448&r2=1076449&rev=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/apache/tapestry5/jmx/integration/TapestryJmxIntegrationTests.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImpl.java Wed Mar  2 23:01:37 2011
@@ -1,4 +1,4 @@
-// Copyright 2009, 2010 The Apache Software Foundation
+// Copyright 2011 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -11,27 +11,16 @@
 // 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.tapestry5.jmx.integration;
 
-import org.apache.tapestry5.test.AbstractIntegrationTestSuite;
-import org.testng.annotations.Test;
+package org.example.testapp.services;
 
-@Test(sequential = true, groups = "integration")
-public class TapestryJmxIntegrationTests extends AbstractIntegrationTestSuite
-{
-
-    public TapestryJmxIntegrationTests()
-    {
-        super("src/test/webapp");
-    }
+import org.apache.tapestry5.ioc.annotations.EagerLoad;
 
-    /** TAP5-978 */
-    @Test
-    public void remote_pool_management()
+@EagerLoad
+public class SampleImpl implements Sample, SampleImplMBean
+{
+    public int getSampleValue()
     {
-
-        start("Remote Pool Management");
-
-        assertTextPresent("SoftWait: 10");
+        return 42;
     }
 }

Added: tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImplMBean.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImplMBean.java?rev=1076449&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImplMBean.java (added)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/java/org/example/testapp/services/SampleImplMBean.java Wed Mar  2 23:01:37 2011
@@ -0,0 +1,19 @@
+// Copyright 2011 The Apache Software Foundation
+//
+// Licensed 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.example.testapp.services;
+
+public interface SampleImplMBean extends Sample
+{
+}

Added: tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/log4j.properties?rev=1076449&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/log4j.properties (added)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/resources/log4j.properties Wed Mar  2 23:01:37 2011
@@ -0,0 +1,10 @@
+log4j.rootCategory=INFO, A1
+
+# A1 is set to be a ConsoleAppender. 
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=[%p] %c{1} %m%n
+
+log4j.category.org.example.testapp=debug

Modified: tapestry/tapestry5/trunk/tapestry-jmx/src/test/webapp/RemotePoolManagement.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jmx/src/test/webapp/RemotePoolManagement.tml?rev=1076449&r1=1076448&r2=1076449&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jmx/src/test/webapp/RemotePoolManagement.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-jmx/src/test/webapp/RemotePoolManagement.tml Wed Mar  2 23:01:37 2011
@@ -1,7 +1,10 @@
 <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
 
   <h1>Remote Pool Management Demo</h1>
-  
-  <p>SoftWait: ${softWait}</p>
+
+  <p>
+    Sample value:
+    <span id="sample-value">${sampleValue}</span>
+  </p>
 
 </html>
\ No newline at end of file