[jboss-cvs] JBossAS SVN: r81835 - in trunk: bootstrap/src/main/org/jboss/bootstrap and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Nov 30 16:11:30 EST 2008


Author: scott.stark at jboss.org
Date: 2008-11-30 16:11:30 -0500 (Sun, 30 Nov 2008)
New Revision: 81835

Modified:
   trunk/bootstrap/.classpath
   trunk/bootstrap/src/main/org/jboss/bootstrap/AbstractServerImpl.java
   trunk/bootstrap/src/main/org/jboss/bootstrap/BaseServerConfig.java
   trunk/bootstrap/src/main/org/jboss/bootstrap/microcontainer/ServerImpl.java
   trunk/system/src/main/org/jboss/deployers/plugins/managed/KernelDeploymentManagedObjectCreator.java
   trunk/system/src/main/org/jboss/system/server/profileservice/ProfileServiceBootstrap.java
   trunk/testsuite/src/main/org/jboss/test/profileservice/test/ServerManagedObjectsTestCase.java
Log:
JBAS-5529, JBAS-5523, core server managed objects and state information

Modified: trunk/bootstrap/.classpath
===================================================================
--- trunk/bootstrap/.classpath	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/bootstrap/.classpath	2008-11-30 21:11:30 UTC (rev 81835)
@@ -13,5 +13,7 @@
 	<classpathentry exported="true" kind="lib" path="/thirdparty/jboss/common-logging-spi/lib/jboss-logging-spi.jar"/>
 	<classpathentry exported="true" kind="lib" path="/thirdparty/oswego-concurrent/lib/concurrent.jar"/>
 	<classpathentry exported="true" kind="lib" path="/thirdparty/apache-xerces/lib/xercesImpl.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/jboss-man/lib/jboss-managed.jar" sourcepath="/thirdparty/jboss/jboss-man/lib/jboss-managed-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/jboss-man/lib/jboss-metatype.jar" sourcepath="/thirdparty/jboss/jboss-man/lib/jboss-metatype-sources.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/bootstrap/src/main/org/jboss/bootstrap/AbstractServerImpl.java
===================================================================
--- trunk/bootstrap/src/main/org/jboss/bootstrap/AbstractServerImpl.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/bootstrap/src/main/org/jboss/bootstrap/AbstractServerImpl.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -39,6 +39,7 @@
 import org.jboss.bootstrap.spi.ServerConfig;
 import org.jboss.bootstrap.spi.ServerProcess;
 import org.jboss.logging.Logger;
+import org.jboss.managed.api.annotation.ManagementProperty;
 import org.jboss.net.protocol.URLStreamHandlerFactory;
 import org.jboss.util.StopWatch;
 
@@ -305,6 +306,7 @@
     * @return          Typed server configuration object.
     * @throws IllegalStateException    Not initialized.
     */
+   @ManagementProperty(managed=true)
    public ServerConfig getConfig() throws IllegalStateException
    {
       if (config == null)
@@ -704,41 +706,49 @@
 //                             Server Information                        //
 ///////////////////////////////////////////////////////////////////////////
 
+   @ManagementProperty(description="The server start time")
    public Date getStartDate()
    {
       return startDate;
    }
 
+   @ManagementProperty(description="The server version string")
    public String getVersion()
    {
       return version.toString();
    }
 
+   @ManagementProperty(description="The server version name")
    public String getVersionName()
    {
       return version.getName();
    }
 
+   @ManagementProperty(description="The server version number string")
    public String getVersionNumber()
    {
       return version.getVersionNumber();
    }
 
+   @ManagementProperty(description="The server build number")
    public String getBuildNumber()
    {
       return version.getBuildNumber();
    }
 
+   @ManagementProperty(description="The server build JVM")
    public String getBuildJVM()
    {
       return version.getBuildJVM();
    }
 
+   @ManagementProperty(description="The server build OS")
    public String getBuildOS()
    {
       return version.getBuildOS();
    }
 
+   @ManagementProperty(description="The server build ID")
    public String getBuildID()
    {
       return version.getBuildID();
@@ -748,6 +758,7 @@
     * The server build date
     * @return server build date
     */
+   @ManagementProperty(description="The server build date")
    public String getBuildDate()
    {
       return version.getBuildDate();

Modified: trunk/bootstrap/src/main/org/jboss/bootstrap/BaseServerConfig.java
===================================================================
--- trunk/bootstrap/src/main/org/jboss/bootstrap/BaseServerConfig.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/bootstrap/src/main/org/jboss/bootstrap/BaseServerConfig.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -23,12 +23,25 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.reflect.Type;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Properties;
 
 import org.jboss.bootstrap.spi.Server;
 import org.jboss.bootstrap.spi.ServerConfig;
+import org.jboss.managed.api.annotation.ManagementComponent;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperties;
+import org.jboss.managed.api.annotation.ManagementProperty;
+import org.jboss.managed.api.annotation.ViewUse;
+import org.jboss.metatype.api.annotations.MetaMapping;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.metatype.spi.values.MetaMapper;
 import org.jboss.util.NestedRuntimeException;
 import org.jboss.util.Null;
 import org.jboss.util.Primitives;
@@ -50,6 +63,13 @@
  * @author Scott.Stark at jboss.org
  * @version <tt>$Revision: 41281 $</tt>
  */
+ at ManagementObject(
+      name="jboss.system:type=ServerConfig",
+      isRuntime=true,
+      properties=ManagementProperties.EXPLICIT,
+      description="provides a view of server config information",
+      componentType=@ManagementComponent(type="MCBean", subtype="*")
+   )
 public class BaseServerConfig implements ServerConfig
 {
    /** The configuration properties to pull data from. */
@@ -137,6 +157,8 @@
    //                             Typed Access                            //
    /////////////////////////////////////////////////////////////////////////
 
+   @ManagementProperty(description="the bootstrap url",
+         use={ViewUse.STATISTIC})
    public URL getBootstrapURL()
    {
       if (bootstrapURL == null)
@@ -156,16 +178,23 @@
       return bootstrapURL;
    }
 
+   @ManagementProperty(description="the local home directory which the server is running from",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getHomeDir()
    {
       return homeDir;
    }
 
+   @ManagementProperty(description="home URL which the server is running from",
+         use={ViewUse.STATISTIC})
    public URL getHomeURL()
    {
       return homeURL;
    }
 
+   @ManagementProperty(description="the bootstrap library URL for the server.",
+         use={ViewUse.STATISTIC})
    public URL getLibraryURL()
    {
       if (libraryURL == null)
@@ -215,6 +244,8 @@
       return (URL) patchURL;
    }
 
+   @ManagementProperty(description="the name of the active profile the sever is using",
+         use={ViewUse.STATISTIC})
    public String getServerName()
    {
       if (serverName == null)
@@ -225,6 +256,9 @@
       return serverName;
    }
 
+   @ManagementProperty(description="the base directory for calculating server home directories",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerBaseDir()
    {
       if (serverBaseDir == null)
@@ -239,6 +273,9 @@
       return serverBaseDir;
    }
 
+   @ManagementProperty(description="the server home directory",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerHomeDir()
    {
       if (serverHomeDir == null)
@@ -254,13 +291,16 @@
    }
 
    /**
-    * Get the directory where temporary files will be stored. The associated
+    * Get the directory where log files will be stored. The associated
     * ServerConfig.SERVER_LOG_DIR system property needs to be set before
     * the logging framework is used.
     *
     * @see ServerConfig#SERVER_LOG_DIR
-    * @return the writable temp directory
+    * @return the writable log directory
     */
+   @ManagementProperty(description="the server log directory",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerLogDir()
    {
       if (serverLogDir == null)
@@ -280,7 +320,10 @@
     *
     * @return the writable temp directory
     */
-   public File getServerTempDir()
+   @ManagementProperty(description="the directory where temporary files will be stored",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
+  public File getServerTempDir()
    {
       if (serverTempDir == null)
       {
@@ -299,6 +342,9 @@
     *
     * @return the data directory
     */
+   @ManagementProperty(description="the directory where local data will be stored",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerDataDir()
    {
       if (serverDataDir == null)
@@ -318,6 +364,9 @@
     * 
     * @return the directory
     */
+   @ManagementProperty(description="the directory for platform native files",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerNativeDir()
    {
       String fileName = System.getProperty(NATIVE_DIR_PROPERTY);
@@ -331,11 +380,16 @@
     * 
     * @return the directory
     */
+   @ManagementProperty(description="the temporary deployment dir",
+         use={ViewUse.STATISTIC})
+   @MetaMapping(FileMetaMapper.class)
    public File getServerTempDeployDir()
    {
       return new File(getServerTempDir(), "deploy");
    }
 
+   @ManagementProperty(description="the base URL for calculating server home URLs",
+         use={ViewUse.STATISTIC})
    public URL getServerBaseURL()
    {
       if (serverBaseURL == null)
@@ -357,6 +411,8 @@
       return serverBaseURL;
    }
 
+   @ManagementProperty(description="the server home URL",
+         use={ViewUse.STATISTIC})
    public URL getServerHomeURL()
    {
       if (serverHomeURL == null)
@@ -378,6 +434,8 @@
       return serverHomeURL;
    }
 
+   @ManagementProperty(description="the server home URL",
+         use={ViewUse.STATISTIC})
    public URL getServerLibraryURL()
    {
       if (serverLibraryURL == null)
@@ -399,6 +457,8 @@
       return serverLibraryURL;
    }
 
+   @ManagementProperty(description="the common library URL base",
+         use={ViewUse.STATISTIC})
    public URL getCommonBaseURL()
    {
       if (commonBaseURL == null)
@@ -420,6 +480,8 @@
       return commonBaseURL;
    }
    
+   @ManagementProperty(description="the URL for the common library jars",
+         use={ViewUse.STATISTIC})
    public URL getCommonLibraryURL()
    {
       if (commonLibraryURL == null)
@@ -638,6 +700,8 @@
     *
     * @return    The filename of the root deployable.
     */
+   @ManagementProperty(description="the filename of the root deployable that will be used to finalize the bootstrap process",
+         use={ViewUse.STATISTIC})
    public String getRootDeploymentFilename()
    {
       if (rootDeployableFilename == null)
@@ -687,8 +751,44 @@
       return null;
    }
 
+   @ManagementProperty(description="the server Specification-Version",
+         use={ViewUse.STATISTIC})
    public String getSpecificationVersion()
    {
       return serverSpecificationVersion;
    }
+
+   /**
+    * TODO: move to managed project, JBMAN-49
+    */
+   public static class FileMetaMapper extends MetaMapper<File>
+   {
+      @Override
+      public MetaValue createMetaValue(MetaType metaType, File object)
+      {
+         return SimpleValueSupport.wrap(object.getAbsolutePath());
+      }
+      @Override
+      public MetaType getMetaType()
+      {
+         return SimpleMetaType.STRING;
+      }
+      @Override
+      public Type mapToType()
+      {
+         return File.class;
+      }
+
+      @Override
+      public File unwrapMetaValue(MetaValue metaValue)
+      {
+         SimpleValue svalue = (SimpleValue) metaValue;
+         File f = null;
+         if(svalue != null)
+         {
+            f = new File(svalue.getValue().toString());
+         }
+         return f;
+      }
+   }
 }

Modified: trunk/bootstrap/src/main/org/jboss/bootstrap/microcontainer/ServerImpl.java
===================================================================
--- trunk/bootstrap/src/main/org/jboss/bootstrap/microcontainer/ServerImpl.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/bootstrap/src/main/org/jboss/bootstrap/microcontainer/ServerImpl.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -42,6 +42,10 @@
 import org.jboss.kernel.spi.deployment.KernelDeployment;
 import org.jboss.kernel.spi.event.KernelEvent;
 import org.jboss.kernel.spi.event.KernelEventManager;
+import org.jboss.managed.api.annotation.ManagementComponent;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperties;
+import org.jboss.managed.api.annotation.ManagementProperty;
 import org.jboss.util.StopWatch;
 
 /**
@@ -50,6 +54,13 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
+ at ManagementObject(
+      name="jboss.system:type=MCServer",
+      isRuntime=true,
+      properties=ManagementProperties.EXPLICIT,
+      description="the MCServer bootstrap view",
+      componentType=@ManagementComponent(type="MCBean", subtype="*")
+   )
 public class ServerImpl extends AbstractServerImpl
    implements MCServer
 {
@@ -70,6 +81,7 @@
     * 
     * @return the kernel
     */
+   @ManagementProperty(ignored=true)
    public Kernel getKernel()
    {
       return kernel;
@@ -78,6 +90,7 @@
     * Get the kernel deployments
     * @return the kernel deployments
     */
+   @ManagementProperty(ignored=true)
    public Map<String, KernelDeployment> getDeployments()
    {
       Map<String, KernelDeployment> deployments = null;

Modified: trunk/system/src/main/org/jboss/deployers/plugins/managed/KernelDeploymentManagedObjectCreator.java
===================================================================
--- trunk/system/src/main/org/jboss/deployers/plugins/managed/KernelDeploymentManagedObjectCreator.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/system/src/main/org/jboss/deployers/plugins/managed/KernelDeploymentManagedObjectCreator.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -144,11 +144,6 @@
             ManagedPropertyImpl beansMP = new ManagedPropertyImpl(bmdfMO, fields);
             newProps.put("beans", beansMP);
 
-            // Add a state property
-            Fields stateFields = getFields("state", ControllerStateMetaType.TYPE);
-            ManagedPropertyImpl stateMP = new ManagedPropertyImpl(bmdfMO, stateFields);
-            newProps.put("state", stateMP);
-
             // Create a ManagedObject for each of the beans BeanMetaData
             List<BeanMetaData> beans = bmdf.getBeans();
             if(beans != null)
@@ -203,6 +198,13 @@
       {
          MutableManagedObject mmo = (MutableManagedObject) mo;
          mmo.setParent(parentMO);
+         Map<String, ManagedProperty> oldProps = mmo.getProperties();
+         Map<String, ManagedProperty> newProps = new HashMap<String, ManagedProperty>(oldProps);
+         // Add a state property
+         Fields stateFields = getFields("state", ControllerStateMetaType.TYPE);
+         ManagedPropertyImpl stateMP = new ManagedPropertyImpl(mmo, stateFields);
+         newProps.put("state", stateMP);
+         mmo.setProperties(newProps);
       }
       return new GenericValueSupport(AbstractManagedObjectFactory.MANAGED_OBJECT_META_TYPE, mo);
    }
@@ -219,6 +221,7 @@
       fields.setMetaType(type);
       fields.setName(name);
       fields.setMandatory(false);
+      fields.setDescription("The bean controller state");
 
       return fields;
    }

Modified: trunk/system/src/main/org/jboss/system/server/profileservice/ProfileServiceBootstrap.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/profileservice/ProfileServiceBootstrap.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/system/src/main/org/jboss/system/server/profileservice/ProfileServiceBootstrap.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -33,7 +33,10 @@
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.bootstrap.spi.Bootstrap;
 import org.jboss.bootstrap.spi.Server;
+import org.jboss.bootstrap.spi.ServerConfig;
 import org.jboss.bootstrap.spi.microcontainer.MCServer;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.ControllerState;
 import org.jboss.deployers.client.spi.IncompleteDeploymentException;
 import org.jboss.deployers.client.spi.main.MainDeployer;
 import org.jboss.deployers.plugins.main.MainDeployerImpl;
@@ -44,25 +47,33 @@
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer.KernelDeploymentVisitor;
 import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelController;
 import org.jboss.kernel.spi.deployment.KernelDeployment;
 import org.jboss.logging.Logger;
 import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.Fields;
 import org.jboss.managed.api.ManagedDeployment;
 import org.jboss.managed.api.ManagedObject;
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.managed.api.MutableManagedObject;
 import org.jboss.managed.api.ManagedDeployment.DeploymentPhase;
 import org.jboss.managed.api.annotation.ManagementComponent;
+import org.jboss.managed.api.annotation.ViewUse;
 import org.jboss.managed.api.factory.ManagedObjectFactory;
 import org.jboss.managed.plugins.DefaultFieldsImpl;
 import org.jboss.managed.plugins.ManagedComponentImpl;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
 import org.jboss.metatype.api.types.ArrayMetaType;
+import org.jboss.metatype.api.types.MetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.metatype.api.values.ArrayValueSupport;
+import org.jboss.metatype.api.values.EnumValue;
+import org.jboss.metatype.api.values.EnumValueSupport;
 import org.jboss.profileservice.spi.Profile;
 import org.jboss.profileservice.spi.ProfileKey;
 import org.jboss.profileservice.spi.ProfileService;
+import org.jboss.profileservice.spi.types.ControllerStateMetaType;
 
 /**
  * Bootstraps the profile service
@@ -78,7 +89,7 @@
    
    /** The name of the profile that is being booted */
    protected String profileName = "default";
-   
+
    /** The server MainDeployer */
    protected MainDeployer mainDeployer;
 
@@ -428,7 +439,9 @@
       if(server instanceof MCServer)
       {
          MCServer mcserver = MCServer.class.cast(server);
+         Kernel kernel = mcserver.getKernel();
          serverDeployments = mcserver.getDeployments();
+         ManagedDeployment firstDeployment = null;
          for(KernelDeployment kd : serverDeployments.values())
          {
             ManagedObject kdMO = mof.initManagedObject(kd, null);
@@ -445,6 +458,8 @@
                continue;
             }
             ManagedDeployment md = mgtDeploymentCreator.build(deploymentUnit, kdMOs, null);
+            if(firstDeployment == null)
+               firstDeployment = md;
             for(DeploymentUnit compUnit : deploymentUnit.getComponents())
             {
                BeanMetaData bmd = compUnit.getAttachment(BeanMetaData.class);
@@ -463,22 +478,28 @@
                   {
                      Map<String, ManagedProperty> oldProps = mmo.getProperties();
                      Map<String, ManagedProperty> newProps = new HashMap<String, ManagedProperty>(oldProps);
-                     DefaultFieldsImpl fields = new DefaultFieldsImpl();
-                     fields.setName("alias");
+                     ArrayMetaType aliasType = new ArrayMetaType(SimpleMetaType.STRING, false);
+                     DefaultFieldsImpl fields = getFields("alias", aliasType);
                      fields.setDescription("Aliases of the bean");
-                     fields.setMandatory(false);
-                     ArrayMetaType type = new ArrayMetaType(SimpleMetaType.STRING, false);
-                     fields.setMetaType(type);
                      String[] aliases = new String[bmdAliases.size()];
-                     Iterator i = bmdAliases.iterator();
+                     Iterator<?> i = bmdAliases.iterator();
                      for(int n = 0; i.hasNext(); n++)
                      {
                         aliases[n] = i.next().toString();
                      }
-                     ArrayValueSupport value = new ArrayValueSupport(type, aliases);
+                     ArrayValueSupport value = new ArrayValueSupport(aliasType, aliases);
                      fields.setValue(value);
                      ManagedPropertyImpl aliasesMP = new ManagedPropertyImpl(bmdMO, fields);
                      newProps.put("alias", aliasesMP);
+                     // Add a state property
+                     DefaultFieldsImpl stateFields = getFields("state", ControllerStateMetaType.TYPE);
+                     stateFields.setViewUse(new ViewUse[]{ViewUse.STATISTIC});
+                     EnumValue stateValue = getState(bmd.getName(), kernel);
+                     stateFields.setValue(stateValue);
+                     stateFields.setDescription("The bean controller state");
+                     ManagedPropertyImpl stateMP = new ManagedPropertyImpl(mmo, stateFields);
+                     newProps.put("state", stateMP);
+                     // Update the properties
                      mmo.setProperties(newProps);
                   }
                }
@@ -498,6 +519,54 @@
             if(md != null)
                bootstrapMDs.put(kd.getName(), md);
          }
+
+         // Add other Server managed objects
+         if(firstDeployment != null)
+         {
+            ComponentType type = KnownComponentTypes.MCBean.Any.getType();
+            // MCServer
+            ManagedObject serverMO = mof.initManagedObject(mcserver, null);
+            ManagedComponentImpl serverComp = new ManagedComponentImpl(type, firstDeployment, serverMO);
+            firstDeployment.addComponent("MCServer", serverComp);
+            // ServerConfig
+            ServerConfig config = mcserver.getConfig();
+            ManagedObject mo = mof.initManagedObject(config, null);
+            ManagedComponentImpl configComp = new ManagedComponentImpl(type, firstDeployment, mo);
+            firstDeployment.addComponent("ServerConfig", configComp);
+            log.debug("Created ManagedComponent of type: "+type+" for ServerConfig");
+         }
       }
    }
+
+   /**
+    * Create a DefaultFieldsImpl for the given property name and type
+    * @param name - the property name
+    * @param type - the property type
+    * @return return the fields implementation
+    */
+   protected DefaultFieldsImpl getFields(String name, MetaType type)
+   {
+      DefaultFieldsImpl fields = new DefaultFieldsImpl();
+      fields.setMetaType(type);
+      fields.setName(name);
+      fields.setMandatory(false);
+
+      return fields;
+   }
+   /**
+    * Get the state of a bean
+    * 
+    * @param name the bean name
+    * @return state enum value
+    */
+   protected EnumValue getState(Object name, Kernel kernel)
+   {
+      KernelController controller = kernel.getController();
+      ControllerContext context = controller.getContext(name, null);
+      if (context == null)
+         throw new IllegalStateException("Context not installed: " + name);
+
+      ControllerState state = context.getState();
+      return new EnumValueSupport(ControllerStateMetaType.TYPE, state.getStateString());
+   }
 }

Modified: trunk/testsuite/src/main/org/jboss/test/profileservice/test/ServerManagedObjectsTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/profileservice/test/ServerManagedObjectsTestCase.java	2008-11-30 19:41:48 UTC (rev 81834)
+++ trunk/testsuite/src/main/org/jboss/test/profileservice/test/ServerManagedObjectsTestCase.java	2008-11-30 21:11:30 UTC (rev 81835)
@@ -31,6 +31,9 @@
 import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedComponent;
 import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.EnumMetaType;
+import org.jboss.metatype.api.values.EnumValue;
+import org.jboss.metatype.api.values.EnumValueSupport;
 import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.profileservice.management.matchers.AliasMatcher;
 import org.jboss.profileservice.spi.ProfileKey;
@@ -39,8 +42,10 @@
 import org.jboss.virtual.VFS;
 
 /**
+ * Tests of key server bean managed object views
+ * 
  * @author Scott.Stark at jboss.org
- * @version $Revision:$
+ * @version $Revision$
  */
 public class ServerManagedObjectsTestCase
    extends JBossTestCase
@@ -71,21 +76,50 @@
       Map<String, ManagedProperty> props = mc.getProperties();
       getLog().info(props.keySet());
       // , activeThreadGroupCount, hostAddress, OSVersion, javaVMName, totalMemory, activeThreadCount, alias, hostName, javaVMVendor, javaVendor, javaVMVersion, OSName, javaVersion
+      // maxMemory
       ManagedProperty maxMemory = props.get("maxMemory");
       long maxMemoryValue = getLong(maxMemory);
       assertTrue("maxMemory > 1MB", maxMemoryValue > 1024*1024);
+      // freeMemory
       ManagedProperty freeMemory = props.get("freeMemory");
       long freeMemoryValue = getLong(freeMemory);
       assertTrue("freeMemory > 1MB", freeMemoryValue > 1024*1024);
+      // availableProcessors
       ManagedProperty availableProcessors = props.get("availableProcessors");
       long availableProcessorsValue = getLong(availableProcessors);
       assertTrue("availableProcessors > 0", availableProcessorsValue > 0);
-
+      // The bean state
       ManagedProperty state = props.get("state");
-      getLog().info(state);
-      
+      assertNotNull("state", state);
+      EnumMetaType stateType = (EnumMetaType) state.getMetaType();
+      EnumValue stateValue = (EnumValue) state.getValue();
+      getLog().info("state: "+stateValue);
+      EnumValue installed = new EnumValueSupport(stateType, "Installed");
+      assertEquals(installed, stateValue);
    }
 
+   public void testMCServer()
+      throws Exception
+   {
+      ManagementView mgtView = getManagementView();
+      ComponentType type = KnownComponentTypes.MCBean.Any.getType();
+      ManagedComponent mc = mgtView.getComponent("jboss.system:type=MCServer", type);
+      assertNotNull(mc);
+      Map<String, ManagedProperty> props = mc.getProperties();
+      getLog().info(props);
+   }
+
+   public void testServerConfig()
+      throws Exception
+   {
+      ManagementView mgtView = getManagementView();
+      ComponentType type = KnownComponentTypes.MCBean.Any.getType();
+      ManagedComponent mc = mgtView.getComponent("jboss.system:type=ServerConfig", type);
+      assertNotNull(mc);
+      Map<String, ManagedProperty> props = mc.getProperties();
+      getLog().info(props);
+   }
+
    /**
     * Obtain the ProfileService.ManagementView
     * @return
@@ -114,5 +148,4 @@
       Number value = (Number) mv.getValue();
       return value.longValue();
    }
-
 }


Property changes on: trunk/testsuite/src/main/org/jboss/test/profileservice/test/ServerManagedObjectsTestCase.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision




More information about the jboss-cvs-commits mailing list