[jboss-cvs] JBossAS SVN: r90027 - in branches/Branch_5_x: testsuite/imports/sections and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 9 19:59:01 EDT 2009


Author: ALRubinger
Date: 2009-06-09 19:59:01 -0400 (Tue, 09 Jun 2009)
New Revision: 90027

Added:
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestLocalBusiness.java
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatefulBean.java
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatelessBean.java
Modified:
   branches/Branch_5_x/component-matrix/pom.xml
   branches/Branch_5_x/testsuite/imports/sections/profileservice.xml
   branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/Ejb3MetricsUnitTestCase.java
Log:
[JBAS-6624] Added tests for EJB3 Metrics, defining contract w/ requirements for Jopr

Modified: branches/Branch_5_x/component-matrix/pom.xml
===================================================================
--- branches/Branch_5_x/component-matrix/pom.xml	2009-06-09 23:55:53 UTC (rev 90026)
+++ branches/Branch_5_x/component-matrix/pom.xml	2009-06-09 23:59:01 UTC (rev 90027)
@@ -76,7 +76,7 @@
     <version.org.jboss.ejb3.proxy.spi.client>1.0.0</version.org.jboss.ejb3.proxy.spi.client>
     <version.org.jboss.ejb3.proxy.clustered.client>1.0.1</version.org.jboss.ejb3.proxy.clustered.client>
     <version.org.jboss.ejb3.security.client>1.0.0</version.org.jboss.ejb3.security.client>
-    <version.org.jboss.ejb3>1.1.7-alpha-3</version.org.jboss.ejb3>
+    <version.org.jboss.ejb3>1.1.7-alpha-4</version.org.jboss.ejb3>
     <version.org.jboss.ejb3.endpoint.deployer>0.1.3</version.org.jboss.ejb3.endpoint.deployer>
     <version.org.jboss.integration>5.1.0.GA</version.org.jboss.integration>
     <version.org.jboss.jbossxb>2.0.1.GA</version.org.jboss.jbossxb>

Modified: branches/Branch_5_x/testsuite/imports/sections/profileservice.xml
===================================================================
--- branches/Branch_5_x/testsuite/imports/sections/profileservice.xml	2009-06-09 23:55:53 UTC (rev 90026)
+++ branches/Branch_5_x/testsuite/imports/sections/profileservice.xml	2009-06-09 23:59:01 UTC (rev 90027)
@@ -27,6 +27,12 @@
             <include name="testEjb2xDeployment-jar.xml"/>
          </zipfileset>
       </jar>
+   	  <!-- build testEjb3xMetrics.jar -->
+   	  <jar destfile="${build.lib}/testEjb3xMetrics.jar">
+   	    <fileset dir="${build.classes}">
+          <include name="org/jboss/test/profileservice/test/ejb3/**"/>
+        </fileset>
+       </jar>
       <!-- build testSarDeployment.sar -->
       <jar destfile="${build.lib}/testSarDeployment.sar">
          <fileset dir="${build.classes}">

Modified: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/Ejb3MetricsUnitTestCase.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/Ejb3MetricsUnitTestCase.java	2009-06-09 23:55:53 UTC (rev 90026)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/Ejb3MetricsUnitTestCase.java	2009-06-09 23:59:01 UTC (rev 90027)
@@ -18,60 +18,448 @@
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
+ */
 package org.jboss.test.profileservice.test;
 
+import java.net.URL;
+import java.util.Iterator;
 import java.util.Set;
 
+import junit.framework.TestCase;
+
 import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.deployers.spi.management.deploy.DeploymentManager;
+import org.jboss.deployers.spi.management.deploy.DeploymentProgress;
 import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedOperation;
 import org.jboss.managed.api.ManagedProperty;
-import org.jboss.metatype.api.values.SimpleValue;
-import org.jboss.metatype.api.values.TableValue;
+import org.jboss.test.profileservice.test.ejb3.TestStatefulBean;
+import org.jboss.test.profileservice.test.ejb3.TestStatelessBean;
 
-
 /**
- * Basic EJB3 metrics unit testcase.
+ * Ejb3MetricsUnitTestCase
  * 
+ * Asserts that ManagementObjects and corresponding 
+ * properties/operations are exposed in expected form for
+ * SLSB, SFSB, MDB.  
+ * 
  * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @author <a href="mailto:andrew.rubinger at redhat.com">ALR</a>
  * @version $Revision$
  */
 public class Ejb3MetricsUnitTestCase extends AbstractProfileServiceTest
 {
 
+   // ---------------------------------------------------------------------------------------||
+   // Class Members -------------------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||   
+
+   /**
+    * Component type for the EJB3 namespace
+    */
+   private static final String COMPONENT_TYPE_EJB3 = "EJB3";
+
+   /**
+    * Component subtype for Stateless Session Beans
+    */
+   private static final String COMPONENT_SUBTYPE_SLSB = "SLSB";
+
+   /**
+    * Component subtype for Stateful Session Beans
+    */
+   private static final String COMPONENT_SUBTYPE_SFSB = "SFSB";
+
+   /**
+    * Component subtype for Message-Driven Beans
+    */
+   private static final String COMPONENT_SUBTYPE_MDB = "MDB";
+
+   /**
+    * Suffix of @ManagementObject.name for metrics
+    */
+   private static final String MANAGEMENT_OBJECT_NAME_SUFFIX_METRICS = "-metrics";
+
+   /**
+    * Suffix of @ManagementObject.name for instance metrics
+    */
+   private static final String MANAGEMENT_OBJECT_NAME_SUFFIX_INSTANCE = MANAGEMENT_OBJECT_NAME_SUFFIX_METRICS
+         + "-instance";
+
+   /**
+    * Suffix of @ManagementObject.name for invocation metrics
+    */
+   private static final String MANAGEMENT_OBJECT_NAME_SUFFIX_INVOCATION = MANAGEMENT_OBJECT_NAME_SUFFIX_METRICS
+         + "-invocation";
+
+   /**
+    * Properties which should be exposed by the SLSB instance metrics
+    */
+   private static final String[] PROPERTY_NAMES_SLSB_INSTANCE_METRICS = new String[]
+   {"currentSize", "createCount", "removeCount", "availableCount", "maxSize"};
+
+   /**
+    * Properties which should be exposed by the SFSB instance metrics
+    */
+   private static final String[] PROPERTY_NAMES_SFSB_INSTANCE_METRICS = new String[]
+   {"currentSize", "createCount", "removeCount", "availableCount", "maxSize", "cacheSize", "totalSize",
+         "passivatedCount"};
+
+   /**
+    * Properties which should be exposed by the invocation metrics
+    */
+   private static final String[] PROPERTY_NAMES_INVOCATION_METRICS = new String[]
+   {"stats", "lastResetTime"};
+
+   /**
+    * Properties which should be exposed by the invocation metrics
+    */
+   private static final String[] OPERATION_NAMES_INVOCATION_METRICS = new String[]
+   {"resetStats"};
+
+   /**
+    * The name of the test JAR to deploy
+    */
+   private static final String NAME_TEST_JAR = "testEjb3xMetrics.jar";
+
+   // ---------------------------------------------------------------------------------------||
+   // Instance Members ----------------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||
+
+   /**
+    * The hook to ManagementObjects
+    */
+   private ManagementView managementView;
+
+   /**
+    * Profile Service deployer; required to get things in management view
+    */
+   private DeploymentManager deploymentManager;
+
+   /**
+    * Repository names from the deployment
+    */
+   private String[] repositoryNames;
+
+   // ---------------------------------------------------------------------------------------||
+   // Constructor ---------------------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||
+
+   /**
+    * Constructor
+    * 
+    * @param name
+    */
    public Ejb3MetricsUnitTestCase(String name)
    {
       super(name);
    }
-   
-   public void testMetrics() throws Exception
+
+   // ---------------------------------------------------------------------------------------||
+   // Lifecycle -----------------------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||
+
+   /**
+    * Deploys the test JAR via the ProfileService-aware DeploymentManager
+    */
+   @Override
+   protected void setUp() throws Exception
    {
-     ManagementView mgtView = getManagementView();
-     
-     ComponentType sessionType = new ComponentType("EJB3", "Session");
-     Set<ManagedComponent> sessions = mgtView.getComponentsForType(sessionType);
+      // Call Super
+      super.setUp();
 
-     // Get stats property
-     ManagedComponent session = sessions.iterator().next();     
-     ManagedProperty stats = session.getProperty("stats");
-     assertNotNull(stats);
-     TableValue table = (TableValue) stats.getValue();
-     assertNotNull(table);
-     getLog().debug(table);
-     
-     //
-     ComponentType slsbType = new ComponentType("EJB3", "SLSB");
-     Set<ManagedComponent> slsbs = mgtView.getComponentsForType(slsbType);
-     
-     ManagedComponent slsb = slsbs.iterator().next();
-     ManagedProperty currentSize = slsb.getProperty("currentSize");
-     assertNotNull(currentSize);
-     SimpleValue simple = (SimpleValue ) currentSize.getValue();
-     assertNotNull(simple);
-     getLog().debug(simple);
-      
+      // Get the Deployment Manager
+      deploymentManager = this.getDeploymentManager();
+
+      // Deploy the test JAR
+      final String deployName = NAME_TEST_JAR;
+      final URL contentURL = super.getDeployURL(deployName);
+      final DeploymentProgress distributeProgress = deploymentManager.distribute(deployName, contentURL, true);
+      distributeProgress.run();
+      repositoryNames = distributeProgress.getDeploymentID().getRepositoryNames();
+      final DeploymentProgress startProgress = deploymentManager.start(repositoryNames);
+      log.info("Deploying: " + repositoryNames);
+      startProgress.run();
+
+      // Set the Management View
+      managementView = this.getManagementView();
    }
-   
+
+   /**
+    * Undeploys the test JAR
+    */
+   @Override
+   protected void tearDown() throws Exception
+   {
+      // Undeploy the test JAR
+      log.info("Undeploying: " + repositoryNames);
+      final DeploymentProgress stopProgress = deploymentManager.stop(repositoryNames);
+      stopProgress.run();
+      final DeploymentProgress removeProgress = deploymentManager.remove(repositoryNames);
+      removeProgress.run();
+
+      // Null out
+      repositoryNames = null;
+      deploymentManager = null;
+      managementView = null;
+
+      // Call super
+      super.tearDown();
+   }
+
+   // ---------------------------------------------------------------------------------------||
+   // Tests ---------------------------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||
+
+   /**
+    * Ensures that instance metrics are exposed for SLSBs
+    * (backed by the bean pool) in expected form 
+    * 
+    * @throws Exception
+    */
+   public void testSlsbInstanceMetrics() throws Exception
+   {
+      // Log
+      this.getLog().info("testSlsbInstanceMetrics");
+
+      // Get Component and ensure exists
+      final String ejbName = TestStatelessBean.class.getSimpleName();
+      final String suffix = MANAGEMENT_OBJECT_NAME_SUFFIX_INSTANCE;
+      final String componentName = ejbName + suffix;
+      final ManagedComponent component = this.getManagedComponent(COMPONENT_SUBTYPE_SLSB, componentName);
+
+      // Test
+      this.ensureManagementPropertiesExposed(component, PROPERTY_NAMES_SLSB_INSTANCE_METRICS);
+
+      //      ManagedProperty slsbStats = slsb.getProperty("stats");
+      //      assertNotNull(slsbStats);
+      //      TableValue table = (TableValue) slsbStats.getValue();
+      //      assertNotNull(table);
+      //      getLog().debug(table);
+
+      //
+      //     ComponentType slsbType = new ComponentType("EJB3", "SLSB");
+      //     Set<ManagedComponent> slsbs = mgtView.getComponentsForType(slsbType);
+      //     
+      //     ManagedComponent slsb = slsbs.iterator().next();
+      //     ManagedProperty currentSize = slsb.getProperty("currentSize");
+      //     assertNotNull(currentSize);
+      //     SimpleValue simple = (SimpleValue ) currentSize.getValue();
+      //     assertNotNull(simple);
+      //     getLog().debug(simple);
+
+   }
+
+   /**
+    * Ensures that invocation metrics are exposed for SLSBs
+    * are in expected form 
+    * 
+    * @throws Exception
+    */
+   public void testSlsbInvocationMetrics() throws Exception
+   {
+      // Log
+      this.getLog().info("testSlsbInvocationMetrics");
+
+      // Get Component and ensure exists
+      final String ejbName = TestStatelessBean.class.getSimpleName();
+      final String suffix = MANAGEMENT_OBJECT_NAME_SUFFIX_INVOCATION;
+      final String componentName = ejbName + suffix;
+      final ManagedComponent component = this.getManagedComponent(COMPONENT_SUBTYPE_SLSB, componentName);
+
+      // Test
+      this.ensureManagementPropertiesExposed(component, PROPERTY_NAMES_INVOCATION_METRICS);
+
+      // Test all operations exposed
+      this.ensureManagementOperationsExposed(component, OPERATION_NAMES_INVOCATION_METRICS);
+   }
+
+   /**
+    * Ensures that instance metrics are exposed for SFSBs
+    * (backed by the bean cache) in expected form 
+    * 
+    * @throws Exception
+    */
+   public void testSfsbInstanceMetrics() throws Exception
+   {
+      // Log
+      this.getLog().info("testSfsbInstanceMetrics");
+
+      // Get Component and ensure exists
+      final String ejbName = TestStatefulBean.class.getSimpleName();
+      final String suffix = MANAGEMENT_OBJECT_NAME_SUFFIX_INSTANCE;
+      final String componentName = ejbName + suffix;
+      final ManagedComponent component = this.getManagedComponent(COMPONENT_SUBTYPE_SFSB, componentName);
+
+      // Test
+      this.ensureManagementPropertiesExposed(component, PROPERTY_NAMES_SFSB_INSTANCE_METRICS);
+   }
+
+   /**
+    * Ensures that invocation metrics are exposed for SFSBs
+    * are in expected form 
+    * 
+    * @throws Exception
+    */
+   public void testSfsbInvocationMetrics() throws Exception
+   {
+      // Log
+      this.getLog().info("testSfsbInvocationMetrics");
+
+      // Get Component and ensure exists
+      final String ejbName = TestStatefulBean.class.getSimpleName();
+      final String suffix = MANAGEMENT_OBJECT_NAME_SUFFIX_INVOCATION;
+      final String componentName = ejbName + suffix;
+      final ManagedComponent component = this.getManagedComponent(COMPONENT_SUBTYPE_SFSB, componentName);
+
+      // Test all properties exposed
+      this.ensureManagementPropertiesExposed(component, PROPERTY_NAMES_INVOCATION_METRICS);
+
+      // Test all operations exposed
+      this.ensureManagementOperationsExposed(component, OPERATION_NAMES_INVOCATION_METRICS);
+   }
+
+   // ---------------------------------------------------------------------------------------||
+   // Internal Helper Methods ---------------------------------------------------------------||
+   // ---------------------------------------------------------------------------------------||
+
+   /**
+    * Obtains the component of the specified subtype and name, failing the test if not found
+    * 
+    * @param componentSubType 
+    * @param componentName
+    * @throws IllegalArgumentException If any of the arguments were not specified
+    * @throws Exception If a general error occured
+    */
+   protected ManagedComponent getManagedComponent(final String componentSubType, final String componentName)
+         throws Exception
+   {
+      // Log
+      this.getLog().info("getManagedComponent");
+
+      // Precondition checks
+      if (componentSubType == null || componentSubType.length() == 0)
+      {
+         throw new IllegalArgumentException("componentSubType must be specified");
+      }
+      if (componentName == null || componentName.length() == 0)
+      {
+         throw new IllegalArgumentException("componentName must be specified");
+      }
+
+      // Get the SLSB Type
+      final ComponentType componentType = new ComponentType(COMPONENT_TYPE_EJB3, componentSubType);
+      final Set<ManagedComponent> components = managementView.getComponentsForType(componentType);
+
+      // Get SLSB
+      final Iterator<ManagedComponent> componentsIt = components.iterator();
+      ManagedComponent component = null;
+      while (componentsIt.hasNext())
+      {
+         // Obtain the next component
+         final ManagedComponent currentComponent = componentsIt.next();
+         final String name = currentComponent.getName();
+
+         // Ensure it's the component we're looking for
+         if (name.equals(componentName))
+         {
+            component = currentComponent;
+            break;
+         }
+      }
+
+      // Ensure we've got the component
+      if (component == null)
+      {
+         TestCase.fail("Component not found; no managed object with name \"" + componentName + "\" in: " + components);
+      }
+
+      // Obtains the Component
+      return component;
+   }
+
+   /**
+    * Ensures that the specified management properties are exposed for
+    * the specified component
+    * 
+    * @param The component
+    * @param expectedProperties Properties expected to be exposed by the specified component
+    * @throws IllegalArgumentException If any of the arguments are blank or null
+    * @throws Exception 
+    */
+   protected void ensureManagementPropertiesExposed(final ManagedComponent component, final String[] expectedProperties)
+         throws IllegalArgumentException, Exception
+   {
+
+      // Log
+      this.getLog().info("ensureManagementPropertiesExposed");
+
+      // Precondition checks
+      if (component == null)
+      {
+         throw new IllegalArgumentException("component must be specified");
+      }
+      if (expectedProperties == null)
+      {
+         throw new IllegalArgumentException("expectedProperties must be specified");
+      }
+
+      // Ensure all expected properties are in place
+      for (final String expectedProperty : expectedProperties)
+      {
+         final ManagedProperty prop = component.getProperty(expectedProperty);
+         TestCase.assertNotNull("Component did not contain expected managed property \"" + expectedProperty + "\": "
+               + component, prop);
+      }
+   }
+
+   /**
+    * Ensures that the specified management operations are exposed for
+    * the specified component
+    * 
+    * @param The component
+    * @param expectedOperationNames Operation names expected to be exposed by the specified component
+    * @throws IllegalArgumentException If any of the arguments are blank or null
+    * @throws Exception 
+    */
+   protected void ensureManagementOperationsExposed(final ManagedComponent component,
+         final String[] expectedOperationNames) throws IllegalArgumentException, Exception
+   {
+
+      // Log
+      this.getLog().info("ensureManagementOperationsExposed");
+
+      // Precondition checks
+      if (component == null)
+      {
+         throw new IllegalArgumentException("component must be specified");
+      }
+      if (expectedOperationNames == null)
+      {
+         throw new IllegalArgumentException("expectedProperties must be specified");
+      }
+
+      // Obtain managed operations for this component
+      final Set<ManagedOperation> operations = component.getOperations();
+
+      // For all expected operations
+      for (final String expectedOperation : expectedOperationNames)
+      {
+         // Ensure it's exposed
+         boolean found = false;
+         for (final ManagedOperation currentOperation : operations)
+         {
+            if (currentOperation.getName().equals(expectedOperation))
+            {
+               found = true;
+               break;
+            }
+         }
+
+         // Ensure the operation was found
+         TestCase.assertTrue("Component did not contain expected managed operation \"" + expectedOperation + "\": "
+               + component, found);
+      }
+   }
+
 }
-

Added: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestLocalBusiness.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestLocalBusiness.java	                        (rev 0)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestLocalBusiness.java	2009-06-09 23:59:01 UTC (rev 90027)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.profileservice.test.ejb3;
+
+/**
+ * TestLocalBusiness
+ *
+ * Local Business Interface of a test EJB
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public interface TestLocalBusiness
+{
+   // No business methods required
+}

Added: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatefulBean.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatefulBean.java	                        (rev 0)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatefulBean.java	2009-06-09 23:59:01 UTC (rev 90027)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.profileservice.test.ejb3;
+
+import javax.ejb.Local;
+import javax.ejb.Stateful;
+
+/**
+ * TestStatefulBean
+ * 
+ * A test SFSB with no business methods
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+ at Stateful
+ at Local(TestLocalBusiness.class)
+public class TestStatefulBean implements TestLocalBusiness
+{
+   // No business methods required
+}

Added: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatelessBean.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatelessBean.java	                        (rev 0)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/test/ejb3/TestStatelessBean.java	2009-06-09 23:59:01 UTC (rev 90027)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.profileservice.test.ejb3;
+
+import javax.ejb.Local;
+import javax.ejb.Stateless;
+
+/**
+ * TestStatelessBean
+ * 
+ * A test SLSB with no business methods
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+ at Stateless
+ at Local(TestLocalBusiness.class)
+public class TestStatelessBean implements TestLocalBusiness
+{
+   // No business methods required
+}




More information about the jboss-cvs-commits mailing list