You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2006/08/19 23:19:34 UTC

svn commit: r432880 - in /incubator/harmony/enhanced/classlib/trunk: depends/files/ make/ modules/lang-management/ modules/lang-management/.settings/ modules/lang-management/META-INF/ modules/lang-management/make/ modules/lang-management/src/ modules/l...

Author: ndbeyer
Date: Sat Aug 19 14:19:31 2006
New Revision: 432880

URL: http://svn.apache.org/viewvc?rev=432880&view=rev
Log:
Create lang-management module and check in initial class stubs, interfaces and implementations.

Added:
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.core.prefs
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.ui.prefs
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/MANIFEST.MF
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java   (with props)
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/
    incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java   (with props)
Modified:
    incubator/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties
    incubator/harmony/enhanced/classlib/trunk/make/build-java.xml

Modified: incubator/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties?rev=432880&r1=432879&r2=432880&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties (original)
+++ incubator/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties Sat Aug 19 14:19:31 2006
@@ -86,8 +86,8 @@
 bootclasspath.source.11=jndi-src.jar
 bootclasspath.source.packageroot.11=/
 
-bootclasspath.12=lang_mgt.jar
-bootclasspath.source.12=lang_mgt-src.jar
+bootclasspath.12=lang-management.jar
+bootclasspath.source.12=lang-management-src.jar
 bootclasspath.source.packageroot.12=/
 
 bootclasspath.13=logging.jar

Modified: incubator/harmony/enhanced/classlib/trunk/make/build-java.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/make/build-java.xml?rev=432880&r1=432879&r2=432880&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/make/build-java.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/make/build-java.xml Sat Aug 19 14:19:31 2006
@@ -128,6 +128,7 @@
             <src path="modules/swing/src/main/java/common" />
             <src path="modules/text/src/main/java" />
             <src path="modules/x-net/src/main/java/" />
+            <src path="modules/lang-management/src/main/java/" />
 
             <classpath location="${build.output}" />
             <classpath>

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Aug 19 14:19:31 2006
@@ -0,0 +1 @@
+bin

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath Sat Aug 19 14:19:31 2006
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+    <classpathentry output="bin/main" kind="src" path="src/main/java"/>
+    <classpathentry output="bin/test" kind="src" path="src/test/java"/>
+    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+    <classpathentry sourcepath="JUNIT_SRC_HOME/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
+    <classpathentry kind="output" path="bin"/>
+</classpath>

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.classpath
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project Sat Aug 19 14:19:31 2006
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+    <name>lang-management</name>
+    <comment></comment>
+    <projects>
+    </projects>
+    <buildSpec>
+        <buildCommand>
+            <name>org.eclipse.jdt.core.javabuilder</name>
+            <arguments>
+            </arguments>
+        </buildCommand>
+        <buildCommand>
+            <name>org.eclipse.pde.ManifestBuilder</name>
+            <arguments>
+            </arguments>
+        </buildCommand>
+        <buildCommand>
+            <name>org.eclipse.pde.SchemaBuilder</name>
+            <arguments>
+            </arguments>
+        </buildCommand>
+    </buildSpec>
+    <natures>
+        <nature>org.eclipse.pde.PluginNature</nature>
+        <nature>org.eclipse.jdt.core.javanature</nature>
+    </natures>
+</projectDescription>

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.project
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.core.prefs?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.core.prefs (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.core.prefs Sat Aug 19 14:19:31 2006
@@ -0,0 +1,12 @@
+#Sat Aug 19 00:12:25 CDT 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.ui.prefs
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.ui.prefs?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.ui.prefs (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/.settings/org.eclipse.jdt.ui.prefs Sat Aug 19 14:19:31 2006
@@ -0,0 +1,3 @@
+#Sat Aug 19 00:12:24 CDT 2006
+eclipse.preferences.version=1
+internal.default.compliance=default

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/MANIFEST.MF?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/MANIFEST.MF (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/META-INF/MANIFEST.MF Sat Aug 19 14:19:31 2006
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Harmony Lang-Management
+Bundle-SymbolicName: org.apache.harmony.langmanagement
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Eclipse-JREBundle: true
+Import-Package: java.lang,
+ java.lang.reflect,
+ java.security,
+ java.util,
+ javax.management,
+ javax.management.modelmbean,
+ javax.management.openmbean
+Export-Package: java.lang.management,
+ org.apache.harmony.langmanagement.tests.java.lang.management

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml Sat Aug 19 14:19:31 2006
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 2006 The Apache Software Foundation or its
+    licensors, as applicable.
+  
+    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.
+-->
+
+<project name="LANG-MANAGEMENT Build" default="build" basedir=".">
+    <description>Build for LANG-MANAGEMENT component</description>
+
+    <!-- import common properties -->
+    <import file="${basedir}/../../make/properties.xml" />
+
+    <!-- set global properties for this build. -->
+    <xmlproperty file="make/hyproperties.xml" semanticAttributes="true" />
+
+    <fileset id="classes" dir="${hy.build}">
+        <includesfile name="${hy.lang-management}/make/patternset.txt" />
+        <excludesfile name="${hy.hdk}/build/patternsets/luni-kernel.txt" />
+        <excludesfile name="${hy.hdk}/build/patternsets/security-kernel.txt" />
+    </fileset>
+
+    <!-- Set build.compiler to "org.eclipse.jdt.core.JDTCompilerAdapter" to
+         use the Eclipse Java compiler. -->
+    <property name="build.compiler" value="modern" />
+
+    <target name="build" depends="compile.java, build.jar" />
+
+    <target name="test" depends="build, compile.tests, run.tests" />
+
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset refid="classes" />
+            <fileset dir="${hy.lang-management.bin.test}" />
+        </delete>
+    </target>
+
+    <target name="compile.java">
+        <echo message="Compiling LANG-MANAGEMENT classes" />
+
+        <mkdir dir="${hy.build}" />
+
+        <javac sourcepath=""
+               srcdir="${hy.lang-management.src.main.java}"
+               destdir="${hy.build}"
+               source="${hy.javac.source}"
+               target="${hy.javac.target}"
+               debug="${hy.javac.debug}">
+
+            <bootclasspath>
+                <fileset dir="${hy.jdk}/jre/lib/boot">
+                    <include name="**/*.jar" />
+                </fileset>
+            </bootclasspath>
+        </javac>
+    </target>
+
+    <target name="build.jar" depends="svn-info">
+        <jar destfile="${hy.jdk}/jre/lib/boot/${hy.lang-management.packaging.jarname}.jar"
+             manifest="${hy.lang-management}/META-INF/MANIFEST.MF">
+            <fileset refid="classes" />
+            <manifest>
+                <attribute name="Implementation-Version" value="${svn.info}"/> 
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="compile.tests">
+        <echo message="Compiling LANG-MANAGEMENT tests" />
+
+        <mkdir dir="${hy.lang-management.bin.test}" />
+
+        <javac srcdir="${hy.lang-management.src.test.java}"
+               destdir="${hy.lang-management.bin.test}"
+               sourcepath=""
+               source="${hy.javac.source}"
+               target="${hy.javac.target}"
+               debug="${hy.javac.debug}">
+
+            <bootclasspath>
+                <fileset dir="${hy.jdk}/jre/lib/boot">
+                    <include name="**/*.jar" />
+                </fileset>
+            </bootclasspath>
+            <classpath location="../../build/tests" />
+            <classpath location="${hy.hdk}/build/test/support.jar" />
+        </javac>
+    </target>
+
+    <target name="run.tests">
+
+        <mkdir dir="${hy.tests.reports}" />
+
+        <property name="test.jre.home" value="${hy.jdk}/jre" />
+
+        <junit fork="yes"
+               forkmode="once"
+               printsummary="withOutAndErr"
+               errorproperty="test.errors"
+               failureproperty="test.failures"
+               showoutput="on"
+               dir="${hy.lang-management.bin.test}"
+               jvm="${test.jre.home}/bin/java">
+
+            <jvmarg value="-showversion"/>
+
+            <env key="JAVA_HOME" value="${test.jre.home}"/>
+
+            <classpath>
+                <pathelement path="${hy.lang-management.bin.test}"/>
+            </classpath>
+            <classpath location="${hy.hdk}/build/test/support.jar" />
+
+            <formatter type="xml" />
+
+            <test name="${test.case}" todir="${hy.tests.reports}"
+                 if="test.case" />
+
+            <batchtest todir="${hy.tests.reports}" haltonfailure="no"
+                unless="test.case">
+
+                <fileset dir="${hy.lang-management.src.test.java}"/>
+            </batchtest>
+        </junit>
+        <antcall target="touch-failures-file" />
+        <antcall target="touch-errors-file" />
+    </target>
+
+    <target name="touch-failures-file" if="test.failures">
+        <echo file="${hy.tests.reports}/test.failures"
+            append="true">lang-management${line.separator}</echo>
+    </target>
+
+    <target name="touch-errors-file" if="test.errors">
+        <echo file="${hy.tests.reports}/test.errors"
+            append="true">lang-management${line.separator}</echo>
+    </target>
+
+</project>

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml Sat Aug 19 14:19:31 2006
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 2006 The Apache Software Foundation or its licensors, as applicable.
+  
+    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.
+-->
+
+<hy>
+   <lang-management location=".">
+      <src>
+         <main>
+            <java location="src/main/java" />
+            <resources location="src/main/resources" />
+         </main>
+         <test>
+            <java location="src/test/java" />
+            <resources location="src/test/resources" />
+         </test>
+      </src>
+      <bin>
+        <main location="bin/main" />
+        <test location="bin/test" />
+      </bin>
+      <packaging>
+        <jarname>lang-management</jarname>
+      </packaging>
+   </lang-management>
+
+   <hdk location="../../deploy" />
+   <jdk location="../../deploy/jdk" />
+   <build location="../../build/classes" />
+
+   <tests>
+      <reports location="../../build/test_report" />
+   </tests>
+</hy>

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/hyproperties.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt Sat Aug 19 14:19:31 2006
@@ -0,0 +1,15 @@
+# Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+# 
+# 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.
+ 
+java/lang/management/*

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/make/patternset.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,62 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the class loading system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=ClassLoading
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface ClassLoadingMXBean {
+    /**
+     * <p>
+     * The number of classes currently loaded in the JVM.
+     * </p>
+     * 
+     * @return The number of loaded classes.
+     */
+    int getLoadedClassCount();
+
+    /**
+     * <p>
+     * The total number of classes the JVM has loaded since startup.
+     * </p>
+     * 
+     * @return The total number of classes loaded.
+     */
+    long getTotalLoadedClassCount();
+
+    /**
+     * <p>
+     * The number of classes that have been unloaded in the JVM since startup.
+     * </p>
+     * 
+     * @return The number of classes unloaded.
+     */
+    long getUnloadedClassCount();
+
+    /**
+     * <p>
+     * Indicates whether or not the verbose output is enabled for the class
+     * loading system.
+     * </p>
+     * 
+     * @return <code>true</code> is verbose output is enabled, otherwise <code>false</code>.
+     */
+    boolean isVerbose();
+
+    /**
+     * <p>
+     * Enables or disables the verbose output of the class loading system.
+     * </p>
+     * 
+     * @param value <code>true</code> to enable, <code>false</code> to
+     *        disable.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void setVerbose(boolean value);
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ClassLoadingMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,42 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the compilation system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=Compilation
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface CompilationMXBean {
+    /**
+     * <p>
+     * The name of the compilation system.
+     * </p>
+     * 
+     * @return The compiler's name.
+     */
+    String getName();
+
+    /**
+     * <p>
+     * The approximate, cumulative time (in milliseconds) spent performing
+     * compilation.
+     * </p>
+     * 
+     * @return The total time spent compiling.
+     * @throws UnsupportedOperationException if this is not supported.
+     */
+    long getTotalCompilationTime();
+
+    /**
+     * <p>
+     * Indicates whether or not the JVM supports compilation time monitoring.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, otherwise <code>false</code>.
+     */
+    boolean isCompilationTimeMonitoringSupported();
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/CompilationMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,34 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the garbage collector system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code> pattern: java.lang:type=GarbageCollector,name=<i>collector_name</i>
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface GarbageCollectorMXBean extends MemoryManagerMXBean {
+    /**
+     * <p>
+     * The number of collections that have been executed by this collector. A
+     * value of <code>-1</code> means that collection counts are undefined for
+     * this collector.
+     * </p>
+     * 
+     * @return The number of collections executed.
+     */
+    long getCollectionCount();
+
+    /**
+     * <p>
+     * The approximate, cumulative time (in milliseconds) spent executing
+     * collections for this collector.
+     * </p>
+     * 
+     * @return The time spent collecting garbage.
+     */
+    long getCollectionTime();
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/GarbageCollectorMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,132 @@
+package java.lang.management;
+
+import java.util.Collections;
+import java.util.List;
+
+import javax.management.MBeanServer;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+
+/**
+ * <p>
+ * The factory for retrieving all managed object for the JVM as well as the
+ * JVM's MBean server.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public class ManagementFactory {
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link ClassLoadingMXBean}.
+     * </p>
+     */
+    public static final String CLASS_LOADING_MXBEAN_NAME = "java.lang:type=ClassLoading";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link CompilationMXBean}.
+     * </p>
+     */
+    public static final String COMPILATION_MXBEAN_NAME = "java.lang:type=Compilation";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for
+     * {@link GarbageCollectorMXBean}.
+     * </p>
+     */
+    public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE = "java.lang:type=GarbageCollector";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for
+     * {@link MemoryManagerMXBean}.
+     * </p>
+     */
+    public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE = "java.lang:type=MemoryManager";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link MemoryMXBean}.
+     * </p>
+     */
+    public static final String MEMORY_MXBEAN_NAME = "java.lang:type=Memory";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link MemoryPoolMXBean}.
+     * </p>
+     */
+    public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE = "java.lang:type=MemoryPool";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for
+     * {@link OperatingSystemMXBean}.
+     * </p>
+     */
+    public static final String OPERATING_SYSTEM_MXBEAN_NAME = "java.lang:type=OperatingSystem";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link RuntimeMXBean}.
+     * </p>
+     */
+    public static final String RUNTIME_MXBEAN_NAME = "java.lang:type=Runtime";
+
+    /**
+     * <p>
+     * The String value of the {@link ObjectName} for {@link ThreadMXBean}.
+     * </p>
+     */
+    public static final String THREAD_MXBEAN_NAME = "java.lang:type=Threading";
+
+    public static ClassLoadingMXBean getClassLoadingMXBean() {
+        return null;
+    }
+
+    public static CompilationMXBean getCompilationMXBean() {
+        return null;
+    }
+
+    public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans() {
+        return Collections.emptyList();
+    }
+
+    public static List<MemoryManagerMXBean> getMemoryManagerMXBeans() {
+        return Collections.emptyList();
+    }
+
+    public static MemoryMXBean getMemoryMXBean() {
+        return null;
+    }
+
+    public static List<MemoryPoolMXBean> getMemoryPoolMXBeans() {
+        return null;
+    }
+
+    public static OperatingSystemMXBean getOperatingSystemMXBean() {
+        return null;
+    }
+
+    public static MBeanServer getPlatformMBeanServer() {
+        return null;
+    }
+
+    public static RuntimeMXBean getRuntimeMXBean() {
+        return null;
+    }
+
+    public static ThreadMXBean getThreadMXBean() {
+        return null;
+    }
+
+    public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection,
+            String mxbeanName, Class<T> mxbeanInterface) {
+        return null;
+    }
+
+    private ManagementFactory() {
+    }
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,52 @@
+package java.lang.management;
+
+import java.security.BasicPermission;
+import java.security.SecurityPermission;
+
+/**
+ * <p>
+ * A {@link SecurityPermission} for use with the management system.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public class ManagementPermission extends BasicPermission {
+    private static final long serialVersionUID = 1897496590799378737L;
+
+    /**
+     * <p>
+     * Constructs and instance with the given name.
+     * </p>
+     * 
+     * @param name The permission name, which must be <code>"monitor"</code>
+     *        or <code>"control"</code>.
+     * @throws IllegalArgumentException if <code>name</code> is invalid.
+     */
+    public ManagementPermission(String name) {
+        super(name);
+        if (!"control".equals(name) && !"monitor".equals(name)) {
+            throw new IllegalArgumentException();
+        }
+    }
+
+    /**
+     * <p>
+     * Constructs and instance with the given name.
+     * </p>
+     * 
+     * @param name The permission name, which must be <code>"monitor"</code>
+     *        or <code>"control"</code>.
+     * @param actions This is not used, so it must be <code>null</code> or
+     *        empty.
+     * @throws IllegalArgumentException if <code>name</code> is invalid.
+     */
+    public ManagementPermission(String name, String actions) {
+        super(name, actions);
+        if (!"control".equals(name) && !"monitor".equals(name)) {
+            throw new IllegalArgumentException();
+        }
+        if (actions != null && actions.length() != 0) {
+            throw new IllegalArgumentException();
+        }
+    }
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ManagementPermission.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,70 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the memory system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=Memory
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface MemoryMXBean {
+    /**
+     * <p>
+     * Invokes the JVM's garbage collector; equivalent to {@link System#gc()}.
+     * </p>
+     */
+    void gc();
+
+    /**
+     * <p>
+     * The current memory usage for the heap; memory used for object allocation.
+     * </p>
+     * 
+     * @return A {@link MemoryUsage} instance representing heap memory.
+     */
+    MemoryUsage getHeapMemoryUsage();
+
+    /**
+     * <p>
+     * The current memory usage outside of the heap.
+     * </p>
+     * 
+     * @return A {@link MemoryUsage} instance representing non-heap memory.
+     */
+    MemoryUsage getNonHeapMemoryUsage();
+
+    /**
+     * <p>
+     * The approximate number of objects that are about to be finalized.
+     * </p>
+     * 
+     * @return The number of objects about to be finalized.
+     */
+    int getObjectPendingFinalizationCount();
+
+    /**
+     * <p>
+     * Indicates whether or not the verbose output is enabled for the memory
+     * system.
+     * </p>
+     * 
+     * @return <code>true</code> is verbose output is enabled, otherwise
+     *         <code>false</code>.
+     */
+    boolean isVerbose();
+
+    /**
+     * <p>
+     * Enables or disables the verbose output of the memory system.
+     * </p>
+     * 
+     * @param value <code>true</code> to enable, <code>false</code> to
+     *        disable.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void setVerbose(boolean value);
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,42 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for a memory manager system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code> pattern: java.lang:type=MemoryManager,name=<i>manager_name</i>
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface MemoryManagerMXBean {
+    /**
+     * <p>
+     * The names of the memory pools being managed by this manager.
+     * </p>
+     * 
+     * @return A <code>String[]</code> of pool names.
+     */
+    String[] getMemoryPoolNames();
+
+    /**
+     * <p>
+     * The name of the memory manager.
+     * </p>
+     * 
+     * @return The manager's name.
+     */
+    String getName();
+
+    /**
+     * <p>
+     * Indicates whether or not the manager is currently valid. A memory manager
+     * may be removed by a JVM and become invalid.
+     * </p>
+     * 
+     * @return <code>true</code> if the manager is valid, <code>false</code>
+     *         otherwise.
+     */
+    boolean isValid();
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryManagerMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,67 @@
+package java.lang.management;
+
+import javax.management.openmbean.CompositeData;
+
+/**
+ * <p>
+ * Memory notification information.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public class MemoryNotificationInfo {
+    public static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED = "java.management.memory.collection.threshold.exceeded";
+
+    public static final String MEMORY_THRESHOLD_EXCEEDED = "java.management.memory.threshold.exceeded";
+
+    /**
+     * <p>
+     * Constructs a MemoryNotificationInfo object from the CompositeData passed.
+     * </p>
+     * 
+     * @param cd The CompositeDate object to retrieve data from.
+     * @return A MemoryNotificationInfo instance.
+     * @throws IllegalArgumentException if <code>cd</code> does not contain
+     *         MemoryUsage data.
+     */
+    public static MemoryNotificationInfo from(CompositeData cd) {
+        String poolName = (String) cd.get("poolName");
+        MemoryUsage usage = MemoryUsage.from((CompositeData) cd.get("usage"));
+        long count = ((Long) cd.get("count")).longValue();
+        return new MemoryNotificationInfo(poolName, usage, count);
+    }
+
+    private final String poolName;
+
+    private final MemoryUsage usage;
+
+    private final long count;
+
+    /**
+     * <p>
+     * Constructs a MemoryNotificationInfo instance.
+     * </p>
+     * 
+     * @param poolName The memory pool name.
+     * @param usage The memory usage snapshot.
+     * @param count The threshold crossing count.
+     */
+    public MemoryNotificationInfo(String poolName, MemoryUsage usage, long count) {
+        super();
+        this.poolName = poolName;
+        this.usage = usage;
+        this.count = count;
+    }
+
+    public String getPoolName() {
+        return poolName;
+    }
+
+    public MemoryUsage getUsage() {
+        return usage;
+    }
+
+    public long getCount() {
+        return count;
+    }
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryNotificationInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,219 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for a memory pool.
+ * </p>
+ * <p>
+ * <code>ObjectName</code> pattern: java.lang:type=MemoryPool,name=<i>pool_name</i>
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface MemoryPoolMXBean {
+    /**
+     * <p>
+     * The memory usage of the JVM's most recent attempt to recycle unused
+     * objects in this pool. If this feature is not supported, then
+     * <code>null</code> will be returned.
+     * </p>
+     * 
+     * @return A {@link MemoryUsage} instance representing the most recent
+     *         attempt to recycle unused objects; <code>null</code> may be
+     *         returned to indicated this method is not supported.
+     */
+    MemoryUsage getCollectionUsage();
+
+    /**
+     * <p>
+     * The collection usage threshold (in bytes) of this pool; the default is
+     * zero.
+     * </p>
+     * 
+     * @return The collection usage threshold value.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isCollectionUsageThresholdSupported()
+     */
+    long getCollectionUsageThreshold();
+
+    /**
+     * <p>
+     * The number of times the collection usage threshold has been reached or
+     * exceeded.
+     * </p>
+     * 
+     * @return The number of times the collection usage threshold has been
+     *         reached or exceeded.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isCollectionUsageThresholdSupported()
+     */
+    long getCollectionUsageThresholdCount();
+
+    /**
+     * <p>
+     * The names of the memory managers that manage this pool; there will be at
+     * least one memory manager for each pool.
+     * </p>
+     * 
+     * @return A <code>String[]</code> of memory manager names.
+     */
+    String[] getMemoryManagerNames();
+
+    /**
+     * <p>
+     * The name of this memory pool.
+     * </p>
+     * 
+     * @return The name of this memory pool.
+     */
+    String getName();
+
+    /**
+     * <p>
+     * The peak memory usage of this pool since JVM startup or since the last
+     * reset of the peak.
+     * </p>
+     * 
+     * @return A {@link MemoryUsage} instance representing the peak usage.
+     * @see #resetPeakUsage()
+     */
+    MemoryUsage getPeakUsage();
+
+    /**
+     * <p>
+     * The memory type of this pool.
+     * </p>
+     * 
+     * @return The pool's memory type.
+     */
+    MemoryType getType();
+
+    /**
+     * <p>
+     * The approximate, current memory usage of this pool. This method will
+     * return <code>null</code> if the pool is invalid.
+     * </p>
+     * 
+     * @return A {@link MemoryUsage} instance representing the current usage or
+     *         <code>null</code> if the pool is invalid.
+     */
+    MemoryUsage getUsage();
+
+    /**
+     * <p>
+     * The current usage threshold (in bytes) of this pool.
+     * </p>
+     * 
+     * @return The current usage threshold.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isUsageThresholdSupported()
+     */
+    long getUsageThreshold();
+
+    /**
+     * <p>
+     * The number of times the usage threshold has been met or exceeded.
+     * </p>
+     * 
+     * @return The number of times the usage threshold has been met or exceeded.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isUsageThresholdSupported()
+     */
+    long getUsageThresholdCount();
+
+    /**
+     * <p>
+     * Indicates whether or not the collection usage threshold has been met or
+     * exceeded after the most recent collection.
+     * </p>
+     * 
+     * @return <code>true</code> if the collection usage threshold was met or
+     *         exceeded, otherwise <code>false</code>.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isCollectionUsageThresholdSupported()
+     */
+    boolean isCollectionUsageThresholdExceeded();
+
+    /**
+     * <p>
+     * Indicates whether or not this pool supports collection threshold
+     * monitoring.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, <code>false</code> otherwise.
+     */
+    boolean isCollectionUsageThresholdSupported();
+
+    /**
+     * <p>
+     * Indicates whether or not the usage threshold is currently met or
+     * exceeded.
+     * </p>
+     * 
+     * @return <code>true</code> if the usage threshold is met or exceeded,
+     *         otherwise <code>false</code>.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @see #isUsageThresholdSupported()
+     */
+    boolean isUsageThresholdExceeded();
+
+    /**
+     * <p>
+     * Indicates whether or not usage threshold monitoring is supported.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, otherwise <code>false</code>.
+     */
+    boolean isUsageThresholdSupported();
+
+    /**
+     * <p>
+     * Indicates whether or not the pool is currently valid. A memory pool may
+     * be removed by a JVM and become invalid.
+     * </p>
+     * 
+     * @return <code>true</code> if the pool is valid, <code>false</code>
+     *         otherwise.
+     */
+    boolean isValid();
+
+    /**
+     * <p>
+     * Resets the peak memory usage to the current value.
+     * </p>
+     * 
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void resetPeakUsage();
+
+    /**
+     * <p>
+     * Sets the collection usage threshold (in bytes) for this memory pool.
+     * </p>
+     * 
+     * @param threshold The new, non-negative threshold.
+     * @throws IllegalArgumentException if <code>threshold</code> is negative
+     *         or greater than the maximum amount supported by this pool, if
+     *         defined.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void setCollectionUsageThreshold(long threshold);
+
+    /**
+     * <p>
+     * Sets the usage threshold (in bytes) for this memory pool.
+     * </p>
+     * 
+     * @param threshold The new, non-negative threshold.
+     * @throws IllegalArgumentException if <code>threshold</code> is negative
+     *         or greater than the maximum amount supported by this pool, if
+     *         defined.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void setUsageThreshold(long threshold);
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryPoolMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,23 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * Types of memory pools.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public enum MemoryType {
+    /**
+     * <p>
+     * Heap memory type.
+     * </p>
+     */
+    HEAP,
+    /**
+     * <p>
+     * Non-heap memory type.
+     * </p>
+     */
+    NON_HEAP
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,95 @@
+package java.lang.management;
+
+import javax.management.openmbean.CompositeData;
+
+/**
+ * <p>
+ * A memory usage snapshot.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public class MemoryUsage {
+
+    /**
+     * <p>
+     * Constructs a MemoryUsage object from the CompositeData passed.
+     * </p>
+     * 
+     * @param cd The CompositeDate object to retrieve data from.
+     * @return A MemoryUsage instance.
+     * @throws IllegalArgumentException if <code>cd</code> does not contain
+     *         MemoryUsage data.
+     */
+    public static MemoryUsage from(CompositeData cd) {
+        long init = ((Long) cd.get("init")).longValue();
+        long used = ((Long) cd.get("used")).longValue();
+        long committed = ((Long) cd.get("committed")).longValue();
+        long max = ((Long) cd.get("max")).longValue();
+        return new MemoryUsage(init, used, committed, max);
+    }
+
+    private final long init;
+
+    private final long used;
+
+    private final long committed;
+
+    private final long max;
+
+    /**
+     * <p>
+     * Constructs a new MemoryUsage instance.
+     * </p>
+     * 
+     * @param init The initial amount of memory (bytes) or <code>-1</code> if
+     *        undefined.
+     * @param used The amount of memory used (bytes).
+     * @param committed The amount of memory committed (bytes).
+     * @param max The maximum amount of memory available or <code>-1</code> if
+     *        undefined.
+     * @throws IllegalArgumentException if <code>init</code> or
+     *         <code>max</code> are less than -1, <code>used</code> or
+     *         <code>committed</code> is negative, <code>used</code> is
+     *         greater than <code>committed</code> or <code>committed</code>
+     *         is greater than <code>max</code> if defined.
+     */
+    public MemoryUsage(long init, long used, long committed, long max) {
+        super();
+        if (init < -1 || max < -1) {
+            throw new IllegalArgumentException();
+        }
+        if (used < 0 || committed < 0 || used > committed) {
+            throw new IllegalArgumentException();
+        }
+        if (max != -1 && committed > max) {
+            throw new IllegalArgumentException();
+        }
+        this.init = init;
+        this.used = used;
+        this.committed = committed;
+        this.max = max;
+    }
+
+    public long getCommitted() {
+        return committed;
+    }
+
+    public long getInit() {
+        return init;
+    }
+
+    public long getMax() {
+        return max;
+    }
+
+    public long getUsed() {
+        return used;
+    }
+
+    @Override
+    public String toString() {
+        return "MemoryUsage: init=" + init + "used=" + used + "committed=" + committed + "max="
+                + max;
+    }
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/MemoryUsage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,62 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the operating system the JVM is running on.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=OperatingSystem
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface OperatingSystemMXBean {
+    /**
+     * <p>
+     * The operating system's architecture; equivalent to
+     * <code>System.getProperty("os.arch")</code>.
+     * </p>
+     * 
+     * @return The underlying architecture of the operating system.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getArch();
+
+    /**
+     * <p>
+     * The number of processors available to the JVM; equivalent to
+     * {@link Runtime#availableProcessors()}.
+     * </p>
+     * 
+     * @return The number of available processors; guaranteed to be at least one.
+     */
+    int getAvailableProcessors();
+
+    /**
+     * <p>
+     * The name of the operating system; equivalent to
+     * <code>System.getProperty("os.name")</code>.
+     * </p>
+     * 
+     * @return The name of the operating system.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getName();
+
+    /**
+     * <p>
+     * The operating system's version; equivalent to
+     * <code>System.getProperty("os.version")</code>.
+     * </p>
+     * 
+     * @return The version of the operating system.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getVersion();
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/OperatingSystemMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,205 @@
+package java.lang.management;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * The management interface for the runtime system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=Runtime
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface RuntimeMXBean {
+    /**
+     * <p>
+     * The boot class path used by the JVM's bootstrap class loader.
+     * </p>
+     * 
+     * @return The boot class path.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     * @see #isBootClassPathSupported()
+     */
+    String getBootClassPath();
+
+    /**
+     * <p>
+     * The class path of the JVM; equivalent to
+     * <code>System.getProperty("java.class.path")</code>.
+     * </p>
+     * 
+     * @return The class path.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getClassPath();
+
+    /**
+     * <p>
+     * The input arguments passed to the JVM upon invocation.
+     * </p>
+     * 
+     * @return A List of arguments passed to the JVM.
+     * 
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     */
+    List<String> getInputArguments();
+
+    /**
+     * <p>
+     * The library path of the JVM; equivalent to
+     * <code>System.getProperty("java.library.path")</code>.
+     * </p>
+     * 
+     * @return The library path.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getLibraryPath();
+
+    /**
+     * <p>
+     * The version of the management specification implemented by the JVM.
+     * </p>
+     * 
+     * @return The management specification version.
+     */
+    String getManagementSpecVersion();
+
+    /**
+     * <p>
+     * The name of the JVM.
+     * </p>
+     * 
+     * @return The name of the JVM.
+     */
+    String getName();
+
+    /**
+     * <p>
+     * The JVM specification name; equivalent to
+     * <code>System.getProperty("java.vm.specification.name")</code>.
+     * </p>
+     * 
+     * @return The JVM specification name.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getSpecName();
+
+    /**
+     * <p>
+     * The JVM specification vendor; equivalent to
+     * <code>System.getProperty("java.vm.specification.vendor")</code>.
+     * </p>
+     * 
+     * @return The JVM specification vendor.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getSpecVendor();
+
+    /**
+     * <p>
+     * The JVM specification version; equivalent to
+     * <code>System.getProperty("java.vm.specification.version")</code>.
+     * </p>
+     * 
+     * @return The JVM specification version.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getSpecVersion();
+
+    /**
+     * <p>
+     * The approximate start time (in milliseconds) of the JVM. The time is
+     * specified by {@link System#currentTimeMillis()}.
+     * </p>
+     * 
+     * @return The start time of the JVM.
+     */
+    long getStartTime();
+
+    /**
+     * <p>
+     * The current JVM system properties, as defined by
+     * {@link System#getProperties()}. Any properties whose name or value is
+     * not of type <code>String</code> are excluded.
+     * </p>
+     * 
+     * @return The library path.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    Map<String, String> getSystemProperties();
+
+    /**
+     * <p>
+     * The approximate time elapsed (in milliseconds) since the JVM started.
+     * </p>
+     * 
+     * @return The JVM's up time.
+     */
+    long getUpTime();
+
+    /**
+     * <p>
+     * The JVM name; equivalent to
+     * <code>System.getProperty("java.vm.name")</code>.
+     * </p>
+     * 
+     * @return The JVM name.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getVmName();
+
+    /**
+     * <p>
+     * The JVM vendor; equivalent to
+     * <code>System.getProperty("java.vm.vendor")</code>.
+     * </p>
+     * 
+     * @return The JVM vendor.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getVmVendor();
+
+    /**
+     * <p>
+     * The JVM version; equivalent to
+     * <code>System.getProperty("java.vm.version")</code>.
+     * </p>
+     * 
+     * @return The JVM version.
+     * @throws SecurityException if the
+     *         {@link SecurityManager#checkPropertiesAccess(String)} doesn't
+     *         allow access.
+     */
+    String getVmVersion();
+
+    /**
+     * <p>
+     * Indicates whether or not the boot class path is supported by this JVM.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, <code>false</code> otherwise.
+     */
+    boolean isBootClassPathSupported();
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/RuntimeMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,78 @@
+package java.lang.management;
+
+import javax.management.openmbean.CompositeData;
+
+/**
+ * <p>
+ * Thread information.
+ * </p>
+ * 
+ * @since 1.5
+ */
+public class ThreadInfo {
+
+    public static ThreadInfo from(CompositeData cd) {
+        return null;
+    }
+
+    ThreadInfo() {
+        super();
+    }
+
+    public long getBlockedCount() {
+        return -1;
+    }
+
+    public long getBlockedTime() {
+        return -1;
+    }
+
+    public String getLockName() {
+        return null;
+    }
+
+    public long getLockOwnerId() {
+        return -1;
+    }
+
+    public String getLockOwnerName() {
+        return null;
+    }
+
+    public StackTraceElement[] getStackTrace() {
+        return null;
+    }
+
+    public long getThreadId() {
+        return -1;
+    }
+
+    public String getThreadName() {
+        return null;
+    }
+
+    public Thread.State getThreadState() {
+        return null;
+    }
+
+    public long getWaitedCount() {
+        return -1;
+    }
+
+    public long getWaitedTime() {
+        return -1;
+    }
+
+    public boolean isInNative() {
+        return false;
+    }
+
+    public boolean isSuspended() {
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return super.toString();
+    }
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,283 @@
+package java.lang.management;
+
+/**
+ * <p>
+ * The management interface for the thread system.
+ * </p>
+ * <p>
+ * <code>ObjectName</code>: java.lang:type=Threading
+ * </p>
+ * 
+ * @since 1.5
+ */
+public interface ThreadMXBean {
+    /**
+     * <p>
+     * Finds cycles of threads that are in deadlock waiting to acquire and
+     * object monitor.
+     * </p>
+     * 
+     * @return An array of thread IDs of deadlocked.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     * @see Thread#getId()
+     */
+    long[] findMonitorDeadlockedThreads();
+
+    /**
+     * <p>
+     * The ID of all currently live threads.
+     * </p>
+     * 
+     * @return An array of thread IDs.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     * @see Thread#getId()
+     */
+    long[] getAllThreadIds();
+
+    /**
+     * <p>
+     * The total CPU time (in nanoseconds) for the current thread. This is
+     * convenience method for {@link #getThreadCpuTime(long) getThreadCpuTime}<code>(Thread.currentThread().getId());</code>.
+     * </p>
+     * 
+     * @return The total CPU time for the current thread.
+     * @throws UnsupportedOperationException if this is not supported.
+     */
+    long getCurrentThreadCpuTime();
+
+    /**
+     * <p>
+     * The total user time (in nanoseconds) for the current thread. This is
+     * convenience method for {@link #getThreadUserTime(long) getThreadUserTime}<code>(Thread.currentThread().getId());</code>.
+     * </p>
+     * 
+     * @return The total user time for the current thread.
+     * @throws UnsupportedOperationException if this is not supported.
+     */
+    long getCurrentThreadUserTime();
+
+    /**
+     * <p>
+     * The current number of live daemon threads.
+     * </p>
+     * 
+     * @return The number of daemon threads.
+     */
+    int getDaemonThreadCount();
+
+    /**
+     * <p>
+     * The peak number of live threads since JVM start or the last reset.
+     * </p>
+     * 
+     * @return The peak number of threads.
+     * @see #resetPeakThreadCount()
+     */
+    int getPeakThreadCount();
+
+    /**
+     * <p>
+     * The current number of live threads (daemon and non-daemon).
+     * </p>
+     * 
+     * @return The number of threads.
+     */
+    int getThreadCount();
+
+    /**
+     * <p>
+     * The total CPU time (in nanoseconds) for the given thread.
+     * </p>
+     * 
+     * @param id The ID of the thread to get the CPU time for.
+     * @return The total CPU time for the current thread or -1 if the thread is
+     *         not alive or measurement is not enabled.
+     * @throws IllegalArgumentException if <code>id</code> is less than or
+     *         equal to 0.
+     * @throws UnsupportedOperationException if this is not supported.
+     */
+    long getThreadCpuTime(long id);
+
+    /**
+     * <p>
+     * The thread information for the given thread with a stack trace depth of
+     * zero.
+     * </p>
+     * 
+     * @param id The ID of the thread to get information for.
+     * @return A {@link ThreadInfo} instance representing the information of the
+     *         given thread or <code>null</code> if the thread is not alive or
+     *         doesn't exist.
+     * @throws IllegalArgumentException if <code>id</code> is less than or
+     *         equal to 0.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     */
+    ThreadInfo getThreadInfo(long id);
+
+    /**
+     * <p>
+     * The thread information for the given threads with a stack trace depth of
+     * zero.
+     * </p>
+     * 
+     * @param ids An array of IDs of the threads to get information for.
+     * @return An array of {@link ThreadInfo} instance representing the
+     *         information of the given threads.
+     * @throws IllegalArgumentException if and element in <code>ids</code> is
+     *         less than or equal to 0.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     */
+    ThreadInfo[] getThreadInfo(long[] ids);
+
+    /**
+     * <p>
+     * The thread information for the given threads, which is qualified by a
+     * maximum stack trace depth.
+     * </p>
+     * 
+     * @param ids An array of IDs of the threads to get information for.
+     * @param maxDepth The maximum depth of the stack trace to return in the
+     *        {@link ThreadInfo}. If zero, then an empty array is stored. If
+     *        {@link Integer#MAX_VALUE}, then the entire stack trace is
+     *        returned.
+     * @return An array of {@link ThreadInfo} instance representing the
+     *         information of the given threads.
+     * @throws IllegalArgumentException if and element in <code>ids</code> is
+     *         less than or equal to 0.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     */
+    ThreadInfo[] getThreadInfo(long[] ids, int maxDepth);
+
+    /**
+     * <p>
+     * The thread information for the given thread with a stack trace depth of
+     * zero.
+     * </p>
+     * 
+     * @param id The ID of the thread to get information for.
+     * @param maxDepth The maximum depth of the stack trace to return in the
+     *        {@link ThreadInfo}. If zero, then an empty array is stored. If
+     *        {@link Integer#MAX_VALUE}, then the entire stack trace is
+     *        returned.
+     * @return A {@link ThreadInfo} instance representing the information of the
+     *         given thread or <code>null</code> if the thread is not alive or
+     *         doesn't exist.
+     * @throws IllegalArgumentException if <code>id</code> is less than or
+     *         equal to 0.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("monitor")</code>.
+     */
+    ThreadInfo getThreadInfo(long id, int maxDepth);
+
+    /**
+     * <p>
+     * The total user time (in nanoseconds) for the given thread.
+     * </p>
+     * 
+     * @param id The ID of the thread to get the user time for.
+     * @return The total user time for the current thread or -1 if the thread is
+     *         not alive or measurement is not enabled.
+     * @throws IllegalArgumentException if <code>id</code> is less than or
+     *         equal to 0.
+     * @throws UnsupportedOperationException if this is not supported.
+     */
+    long getThreadUserTime(long id);
+
+    /**
+     * <p>
+     * The total number of threads that have been created and started within the
+     * JVM.
+     * </p>
+     * 
+     * @return The total number of created and started threads.
+     */
+    long getTotalStartedThreadCount();
+
+    /**
+     * <p>
+     * Indicates whether or not current thread CPU time monitoring is supported.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, otherwise <code>false</code>.
+     */
+    boolean isCurrentThreadCpuTimeSupported();
+
+    /**
+     * <p>
+     * Indicates whether or not thread contention monitoring is enabled.
+     * </p>
+     * 
+     * @return <code>true</code> if enabled, otherwise <code>false</code>.
+     */
+    boolean isThreadContentionMonitoringEnabled();
+
+    /**
+     * <p>
+     * Indicates whether or not thread contention monitoring is supported.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, otherwise <code>false</code>.
+     */
+    boolean isThreadContentionMonitoringSupported();
+
+    /**
+     * <p>
+     * Indicates whether or not thread CPU time monitoring is enabled.
+     * </p>
+     * 
+     * @return <code>true</code> if enabled, otherwise <code>false</code>.
+     */
+    boolean isThreadCpuTimeEnabled();
+
+    /**
+     * <p>
+     * Indicates whether or not thread CPU time monitoring is supported.
+     * </p>
+     * 
+     * @return <code>true</code> if supported, otherwise <code>false</code>.
+     */
+    boolean isThreadCpuTimeSupported();
+
+    /**
+     * <p>
+     * Resets the peak thread count to the current thread count.
+     * </p>
+     * 
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     */
+    void resetPeakThreadCount();
+
+    /**
+     * <p>
+     * Enables or disables thread contention monitoring.
+     * </p>
+     * 
+     * @param enable <code>true</code> to enable, <code>false</code> to
+     *        disable.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     * @see #isThreadContentionMonitoringSupported()
+     */
+    void setThreadContentionMonitoringEnabled(boolean enable);
+
+    /**
+     * <p>
+     * Enables or disables thread CPU time monitoring.
+     * </p>
+     * 
+     * @param enable <code>true</code> to enable, <code>false</code> to
+     *        disable.
+     * @throws UnsupportedOperationException if this is not supported.
+     * @throws SecurityException if caller doesn't have
+     *         <code>ManagementPermission("control")</code>.
+     * @see #isThreadCpuTimeSupported()
+     */
+    void setThreadCpuTimeEnabled(boolean enable);
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/main/java/java/lang/management/ThreadMXBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java?rev=432880&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java Sat Aug 19 14:19:31 2006
@@ -0,0 +1,61 @@
+package org.apache.harmony.langmanagement.tests.java.lang.management;
+
+import java.lang.management.ManagementPermission;
+
+import junit.framework.TestCase;
+
+public class ManagementPermissionTest extends TestCase {
+
+    public void testManagementPermissionString() {
+        ManagementPermission control = new ManagementPermission("control");
+        assertEquals("control", control.getName());
+
+        ManagementPermission monitor = new ManagementPermission("monitor");
+        assertEquals("monitor", monitor.getName());
+
+        try {
+            new ManagementPermission("invalid");
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+    }
+
+    public void testManagementPermissionStringString() {
+        ManagementPermission control = new ManagementPermission("control", null);
+        assertEquals("control", control.getName());
+        
+        control = new ManagementPermission("control", "");
+        assertEquals("control", control.getName());
+
+        ManagementPermission monitor = new ManagementPermission("monitor", null);
+        assertEquals("monitor", monitor.getName());
+        
+        monitor = new ManagementPermission("monitor", "");
+        assertEquals("monitor", monitor.getName());
+
+        try {
+            new ManagementPermission("invalid", null);
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+        
+        try {
+            new ManagementPermission("invalid", "");
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+        
+        try {
+            new ManagementPermission("control", "actions");
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+        
+        try {
+            new ManagementPermission("monitor", "actions");
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+    }
+
+}

Propchange: incubator/harmony/enhanced/classlib/trunk/modules/lang-management/src/test/java/org/apache/harmony/langmanagement/tests/java/lang/management/ManagementPermissionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native