flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cd...@apache.org
Subject [38/51] [partial] FLEX-34306 - [BlazeDS] Make the BlazeDS build run on Windows machines - Added some mkdir commands to the ANT Build.java - Did some fine-tuning to resolve some compile errors
Date Mon, 05 May 2014 20:08:52 GMT
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/4f6a3052/modules/core/src/flex/management/jmx/MBeanOperationInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/flex/management/jmx/MBeanOperationInfo.java b/modules/core/src/flex/management/jmx/MBeanOperationInfo.java
old mode 100755
new mode 100644
index a514ba5..7cd7ecd
--- a/modules/core/src/flex/management/jmx/MBeanOperationInfo.java
+++ b/modules/core/src/flex/management/jmx/MBeanOperationInfo.java
@@ -1,119 +1,119 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.management.jmx;
-
-/**
- * Remotable MBeanOperationInfo class that complies with Flash serialization requirements.
- *
- * @author shodgson
- */
-public class MBeanOperationInfo
-{
-    /**
-     * The operation name.
-     */
-    public String name;
-    
-    /**
-     * The operation description.
-     */
-    public String description;
-    
-    /**
-     * The operation's argument signature.
-     */
-    public MBeanParameterInfo[] signature;
-    
-    /**
-     * The operation's return type.
-     */
-    public String returnType;
-    
-    /**
-     * The impact of the operation; one of <code>INFO, ACTION, ACTION_INFO, UNKNOWN</code>.
-     */
-    public int impact;
-    
-    /**
-     * Constructs an empty <code>MBeanOperationInfo</code> instance.    
-     */
-    public MBeanOperationInfo()
-    {}
-    
-    /**
-     * Constructs a <code>MBeanOperationInfo</code> instance based upon a
-     * <code>javax.management.MBeanOperationInfo</code> instance.
-     * 
-     * @param mbeanOperationInfo The JMX <code>MBeanOperationInfo</code> instance to base this instance on.
-     */
-    public MBeanOperationInfo(javax.management.MBeanOperationInfo mbeanOperationInfo)
-    {
-        name = mbeanOperationInfo.getName();
-        description = mbeanOperationInfo.getDescription();
-        signature = convertSignature(mbeanOperationInfo.getSignature());
-        returnType = mbeanOperationInfo.getReturnType();
-        impact = mbeanOperationInfo.getImpact();
-    }
-    
-    /**
-     * Utility method to convert this <code>MBeanOperationInfo</code> to a
-     * <code>javax.management.MBeanOperationInfo</code> instance.
-     * 
-     * @return A JMX <code>MBeanOperationInfo</code> based upon this instance.
-     */
-    public javax.management.MBeanOperationInfo toMBeanOperationInfo()
-    {
-        return new javax.management.MBeanOperationInfo(name,
-                                                       description,
-                                                       convertSignature(signature),
-                                                       returnType,
-                                                       impact);
-    }
-    
-    /**
-     * Utility method to convert JMX parameter info instances to Flash friendly parameter info instances.
-     * 
-     * @param source JMX parameter info instances.
-     * @return Flash friendly parameter info instances.
-     */
-    private MBeanParameterInfo[] convertSignature(javax.management.MBeanParameterInfo[] source)
-    {
-        MBeanParameterInfo[] signature = new MBeanParameterInfo[source.length];
-        for (int i = 0; i < source.length; i++)
-        {
-            signature[i] = new MBeanParameterInfo(source[i]);
-        }
-        return signature;
-    }
-    
-    /**
-     * Utility method to convert Flash friendly parameter info instances to JMX parameter info instances.
-     * 
-     * @param source Flash friendly parameter info instances.
-     * @return JMX parameter info instances.
-     */
-    private javax.management.MBeanParameterInfo[] convertSignature(MBeanParameterInfo[] source)
-    {
-        javax.management.MBeanParameterInfo[] signature = new javax.management.MBeanParameterInfo[source.length];
-        for (int i = 0; i < source.length; i++)
-        {
-            signature[i] = source[i].toMBeanParameterInfo();
-        }
-        return signature;
-    }
-        
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flex.management.jmx;
+
+/**
+ * Remotable MBeanOperationInfo class that complies with Flash serialization requirements.
+ *
+ * @author shodgson
+ */
+public class MBeanOperationInfo
+{
+    /**
+     * The operation name.
+     */
+    public String name;
+    
+    /**
+     * The operation description.
+     */
+    public String description;
+    
+    /**
+     * The operation's argument signature.
+     */
+    public MBeanParameterInfo[] signature;
+    
+    /**
+     * The operation's return type.
+     */
+    public String returnType;
+    
+    /**
+     * The impact of the operation; one of <code>INFO, ACTION, ACTION_INFO, UNKNOWN</code>.
+     */
+    public int impact;
+    
+    /**
+     * Constructs an empty <code>MBeanOperationInfo</code> instance.    
+     */
+    public MBeanOperationInfo()
+    {}
+    
+    /**
+     * Constructs a <code>MBeanOperationInfo</code> instance based upon a
+     * <code>javax.management.MBeanOperationInfo</code> instance.
+     * 
+     * @param mbeanOperationInfo The JMX <code>MBeanOperationInfo</code> instance to base this instance on.
+     */
+    public MBeanOperationInfo(javax.management.MBeanOperationInfo mbeanOperationInfo)
+    {
+        name = mbeanOperationInfo.getName();
+        description = mbeanOperationInfo.getDescription();
+        signature = convertSignature(mbeanOperationInfo.getSignature());
+        returnType = mbeanOperationInfo.getReturnType();
+        impact = mbeanOperationInfo.getImpact();
+    }
+    
+    /**
+     * Utility method to convert this <code>MBeanOperationInfo</code> to a
+     * <code>javax.management.MBeanOperationInfo</code> instance.
+     * 
+     * @return A JMX <code>MBeanOperationInfo</code> based upon this instance.
+     */
+    public javax.management.MBeanOperationInfo toMBeanOperationInfo()
+    {
+        return new javax.management.MBeanOperationInfo(name,
+                                                       description,
+                                                       convertSignature(signature),
+                                                       returnType,
+                                                       impact);
+    }
+    
+    /**
+     * Utility method to convert JMX parameter info instances to Flash friendly parameter info instances.
+     * 
+     * @param source JMX parameter info instances.
+     * @return Flash friendly parameter info instances.
+     */
+    private MBeanParameterInfo[] convertSignature(javax.management.MBeanParameterInfo[] source)
+    {
+        MBeanParameterInfo[] signature = new MBeanParameterInfo[source.length];
+        for (int i = 0; i < source.length; i++)
+        {
+            signature[i] = new MBeanParameterInfo(source[i]);
+        }
+        return signature;
+    }
+    
+    /**
+     * Utility method to convert Flash friendly parameter info instances to JMX parameter info instances.
+     * 
+     * @param source Flash friendly parameter info instances.
+     * @return JMX parameter info instances.
+     */
+    private javax.management.MBeanParameterInfo[] convertSignature(MBeanParameterInfo[] source)
+    {
+        javax.management.MBeanParameterInfo[] signature = new javax.management.MBeanParameterInfo[source.length];
+        for (int i = 0; i < source.length; i++)
+        {
+            signature[i] = source[i].toMBeanParameterInfo();
+        }
+        return signature;
+    }
+        
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/4f6a3052/modules/core/src/flex/management/jmx/MBeanParameterInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/flex/management/jmx/MBeanParameterInfo.java b/modules/core/src/flex/management/jmx/MBeanParameterInfo.java
old mode 100755
new mode 100644
index d56b941..96db81a
--- a/modules/core/src/flex/management/jmx/MBeanParameterInfo.java
+++ b/modules/core/src/flex/management/jmx/MBeanParameterInfo.java
@@ -1,73 +1,73 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.management.jmx;
-
-/**
- * Remotable MBeanParameterInfo class that complies with Flash serialization requirements.
- *
- * @author shodgson
- */
-public class MBeanParameterInfo
-{
-    /**
-     * The name of the parameter.
-     */
-    public String name;
-    
-    /**
-     * The Java type for the parameter.
-     */
-    public String type;
-    
-    /**
-     * The description for the parameter.
-     */
-    public String description;
-    
-    /**
-     * Constructs an empty <code>MBeanParameterInfo</code> instance.
-     */
-    public MBeanParameterInfo()
-    {}
-    
-    /**
-     * Constructs a <code>MBeanParameterInfo</code> instance based upon a
-     * <code>javax.management.MBeanParameterInfo</code> instance.
-     * 
-     * @param mbeanParameterInfo The JMX <code>MBeanParameterInfo</code> instance to base this instance on.
-     */
-    public MBeanParameterInfo(javax.management.MBeanParameterInfo mbeanParameterInfo)
-    {
-        name = mbeanParameterInfo.getName();
-        type = mbeanParameterInfo.getType();
-        description = mbeanParameterInfo.getDescription();
-    }
-    
-    /**
-     * Utility method to convert this <code>MBeanParameterInfo</code> to a
-     * <code>javax.management.MBeanParameterInfo</code> instance.
-     * 
-     * @return A JMX <code>MBeanParameterInfo</code> based upon this instance.
-     */
-    public javax.management.MBeanParameterInfo toMBeanParameterInfo()
-    {
-        return new javax.management.MBeanParameterInfo(name,
-                                                       type,
-                                                       description);
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flex.management.jmx;
+
+/**
+ * Remotable MBeanParameterInfo class that complies with Flash serialization requirements.
+ *
+ * @author shodgson
+ */
+public class MBeanParameterInfo
+{
+    /**
+     * The name of the parameter.
+     */
+    public String name;
+    
+    /**
+     * The Java type for the parameter.
+     */
+    public String type;
+    
+    /**
+     * The description for the parameter.
+     */
+    public String description;
+    
+    /**
+     * Constructs an empty <code>MBeanParameterInfo</code> instance.
+     */
+    public MBeanParameterInfo()
+    {}
+    
+    /**
+     * Constructs a <code>MBeanParameterInfo</code> instance based upon a
+     * <code>javax.management.MBeanParameterInfo</code> instance.
+     * 
+     * @param mbeanParameterInfo The JMX <code>MBeanParameterInfo</code> instance to base this instance on.
+     */
+    public MBeanParameterInfo(javax.management.MBeanParameterInfo mbeanParameterInfo)
+    {
+        name = mbeanParameterInfo.getName();
+        type = mbeanParameterInfo.getType();
+        description = mbeanParameterInfo.getDescription();
+    }
+    
+    /**
+     * Utility method to convert this <code>MBeanParameterInfo</code> to a
+     * <code>javax.management.MBeanParameterInfo</code> instance.
+     * 
+     * @return A JMX <code>MBeanParameterInfo</code> based upon this instance.
+     */
+    public javax.management.MBeanParameterInfo toMBeanParameterInfo()
+    {
+        return new javax.management.MBeanParameterInfo(name,
+                                                       type,
+                                                       description);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/4f6a3052/modules/core/src/flex/management/jmx/MBeanServerGateway.java
----------------------------------------------------------------------
diff --git a/modules/core/src/flex/management/jmx/MBeanServerGateway.java b/modules/core/src/flex/management/jmx/MBeanServerGateway.java
old mode 100755
new mode 100644
index f522dec..9747748
--- a/modules/core/src/flex/management/jmx/MBeanServerGateway.java
+++ b/modules/core/src/flex/management/jmx/MBeanServerGateway.java
@@ -1,909 +1,909 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.management.jmx;
-
-import flex.management.BaseControl;
-import flex.management.MBeanServerLocatorFactory;
-import flex.management.ManagementException;
-
-import java.util.Iterator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.IntrospectionException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.MalformedObjectNameException;
-import javax.management.MBeanException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ReflectionException;
-import javax.management.RuntimeOperationsException;
-
-/**
- * Remoting gateway to the MBean server that hosts Flex MBeans.
- * <p>
- * Some base javax.management.MBeanServer methods are unimplemented due to the
- * fact that we're interacting with the MBean server from remote Flash clients.
- * Some methods have been modified to better suite remote Flash clients. Other
- * methods are additive, serving as a convenience for Flex applications.
- * </p><p>
- * Unimplemented methods from the base MBeanServer API:
- * <ul>
- *   <li>getDomains() - JMX 1.2</li>
- *   <li>addNotificationListener()/removeNotificationListener() - Flash objects
- *       cannot listen directly for MBean notifications.</li>
- *   <li>instantiate() - returns a reference to a Java object that is not useful
- *       to a remote Flash client.</li>
- *   <li>deserialize() - deprecated.</li>
- *   <li>getClassLoaderFor() - meaningless to a Flash client.</li>
- *   <li>getClassLoader() - meaningless to a Flash client.</li>
- *   <li>getClassLoaderRepository() - meaningless to a Flash client.</li>
- * </ul>
- * </p><p>
- * Modifications to the base MBeanServer API:
- * <ul>
- *   <li>* All ObjectName arguments are typed as String because serialization in either
- *       direction doesn't support ObjectNames that are patterns. This does not effect
- *       ObjectNames that are not patterns that are returned to the client.</li>
- *   <li>queryMBeans() - returns an Array of ObjectInstances rather than a java.util.Set
- *       and does not currently support the QueryExp argument.</li>
- *   <li>queryNames() returns an Array of ObjectNames rather than a java.util.Set
- *       and does not currently support the QueryExp argument.</li>
- *   <li>getAttributes() returns an Array of Attributes rather than an AttributeList.</li>
- *   <li>setAttributes() accepts and returns Arrays of Attributes rather than AttributeLists.</li>
- * </ul>
- * </p><p>
- * Additonal Flex-specific methods:
- * <ul>
- *   <li>getFlexMBeanCount()</li>
- *   <li>getFlexDomains()</li>
- *   <li>getFlexMBeanObjectNames()</li>
- * </ul>
- * </p>
- *
- * @author shodgson
- */
-public class MBeanServerGateway
-{
-    // Error string constants.
-    private static final int MALFORMED_OBJECTNAME = 10400;
-    private static final int GETINFO_INTROSPECTION_ERR = 10406;
-    private static final int MBEAN_NOTFOUND = 10407;
-    private static final int GETINFO_REFLECT_ERR = 10408;
-    private static final int ATTRIB_NOTFOUND = 10409;
-    private static final int GETATTRIB_EXCEPTION = 10410;
-    private static final int GETATTRIB_REFLECT_ERR = 10411;
-    private static final int GETATTRIB_NULL_ARGUMENT = 10412;
-    private static final int GETATTRIBS_REFLECT_ERR = 10413;
-    private static final int GETATTRIBS_NULL_ARGUMENT = 10414;
-    private static final int INVOKE_REFLECT_ERR = 10415;
-    private static final int INVOKE_ERR = 10416;
-    private static final int CREATE_ERR = 10417;
-    private static final int INSTANCE_EXISTS = 10418;
-    private static final int NOT_COMPLIANT = 10419;
-    private static final int MBEAN_PREREG_ERR = 10420;
-    private static final int MBEAN_PREDEREG_ERR = 10421;
-    private static final int SETATTRIB_REFLECT_ERR = 10422;
-    private static final int SETATTRIB_EXCEPTION = 10423;
-    private static final int INVALID_ATTRIB_VALUE = 10424;
-    private static final int SETATTRIBS_REFLECT_ERR = 10425;
-    
-    private MBeanServer server;
-
-    /**
-     * Constructs a new MBeanServerGateway. The gateway exposes the MBean server
-     * that Flex MBean are registered with in a remoting-friendly fashion.
-     */
-    public MBeanServerGateway()
-    {
-        server = MBeanServerLocatorFactory.getMBeanServerLocator().getMBeanServer();
-    }
-
-    /////////////////////////////////////
-    //
-    // Core MBeanServer API
-    //
-    /////////////////////////////////////
-
-    /**
-     * Instantiates and registers an MBean with the MBean server.
-     *
-     * @param className The class name for the MBean to instantiate.
-     * @param objectName The object name of the MBean.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
-     */
-    public ObjectInstance createMBean(String className, String objectName)
-    {
-        javax.management.ObjectName name = null;
-        if (objectName != null)
-            name = validateObjectName(objectName);
-        try
-        {
-            return new ObjectInstance(server.createMBean(className, name));
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceAlreadyExistsException iaee)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
-            me.setRootCause(iaee);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (NotCompliantMBeanException ncmbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(NOT_COMPLIANT, new Object[] {className});
-            me.setRootCause(ncmbe);
-            throw me;
-        }
-    }
-
-    /**
-     * Instantiates and registers an MBean with the MBean server. The class loader
-     * to use to load the MBean class is identified by its ObjectName.
-     *
-     * @param className The class name for the MBean to instantiate.
-     * @param objectName The object name of the MBean.
-     * @param loaderName The object name of the desired class loader.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
-     */
-    public ObjectInstance createMBean(String className, String objectName, String loaderName)
-    {
-        javax.management.ObjectName name = null;
-        javax.management.ObjectName loader = null;
-        if (objectName != null)
-            name = validateObjectName(objectName);
-        if (loaderName != null)
-            loader = validateObjectName(loaderName);
-        try
-        {
-            return new ObjectInstance(server.createMBean(className, name, loader));
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceAlreadyExistsException iaee)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
-            me.setRootCause(iaee);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (NotCompliantMBeanException ncmbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(NOT_COMPLIANT, new Object[] {className});
-            me.setRootCause(ncmbe);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-    }
-
-    /**
-     * Instantiates and registers an MBean with the MBean server.
-     *
-     * @param className The class name for the MBean to instantiate.
-     * @param objectName The object name of the MBean.
-     * @param params An array of parameters to pass to the MBean constructor.
-     * @param signature An array containing the type signature for the constructor to invoke.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
-     */
-    public ObjectInstance createMBean(String className, String objectName, Object[] params, String[] signature)
-    {
-        javax.management.ObjectName name = null;
-        if (objectName != null)
-            name = validateObjectName(objectName);
-        try
-        {
-            return new ObjectInstance(server.createMBean(className, name, params, signature));
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceAlreadyExistsException iaee)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
-            me.setRootCause(iaee);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (NotCompliantMBeanException ncmbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(NOT_COMPLIANT, new Object[] {className});
-            me.setRootCause(ncmbe);
-            throw me;
-        }
-    }
-
-    /**
-     * Instantiates and registers an MBean with the MBean server. The class loader
-     * to use to load the MBean class is identified by its ObjectName.
-     *
-     * @param className The class name for the MBean to instantiate.
-     * @param objectName The object name of the MBean.
-     * @param loaderName The object name of the desired class loader.
-     * @param params An array of parameters to pass to the MBean constructor.
-     * @param signature An array containing the type signature for the constructor to invoke.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
-     */
-    public ObjectInstance createMBean(String className, String objectName, String loaderName, Object[] params, String[] signature)
-    {
-        javax.management.ObjectName name = null;
-        javax.management.ObjectName loader = null;
-        if (objectName != null)
-            name = validateObjectName(objectName);
-        if (loaderName != null)
-            loader = validateObjectName(loaderName);
-        try
-        {
-            return new ObjectInstance(server.createMBean(className, name, loader, params, signature));
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceAlreadyExistsException iaee)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
-            me.setRootCause(iaee);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(CREATE_ERR, new Object[] {name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (NotCompliantMBeanException ncmbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(NOT_COMPLIANT, new Object[] {className});
-            me.setRootCause(ncmbe);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-    }
-
-    /**
-     * Registers a pre-existing object as an MBean with the MBean server.
-     *
-     * @param object The object to register as an MBean.
-     * @param objectName The object name for the MBean.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
-     */
-    public ObjectInstance registerMBean(Object object, String objectName)
-    {
-        javax.management.ObjectName name = null;
-        if (objectName != null)
-            name = validateObjectName(objectName);
-        try
-        {
-            return new ObjectInstance(server.registerMBean(object, name));
-        }
-        catch (InstanceAlreadyExistsException iaee)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
-            me.setRootCause(iaee);
-            throw me;
-        }
-        catch (NotCompliantMBeanException ncmbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(NOT_COMPLIANT, new Object[] {object.getClass().getName()});
-            me.setRootCause(ncmbe);
-            throw me;
-        }
-        catch (MBeanRegistrationException mbre)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_PREREG_ERR, new Object[] {name});
-            me.setRootCause(mbre);
-            throw me;
-        }
-    }
-
-    /**
-     * Unregisters an MBean from the MBean server.
-     *
-     * @param objectName The object name of the MBean to unregister.
-     */
-    public void unregisterMBean(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            server.unregisterMBean(name);
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (MBeanRegistrationException mbre)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_PREDEREG_ERR, new Object[] {name});
-            me.setRootCause(mbre);
-            throw me;
-        }
-    }
-
-    /**
-     * Gets the ObjectInstance for the specified MBean registered with the
-     * MBean server.
-     *
-     * @param objectName The object name of the MBean.
-     * @return An ObjectInstance containing the ObjectName and Java class name of the MBean.
-     */
-    public ObjectInstance getObjectInstance(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            return new ObjectInstance(server.getObjectInstance(name));
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-    }
-
-    /**
-     * Gets MBeans controlled by the MBean server. This method allows the following to be obtained:
-     * All MBeans, or a set of MBeans specified by pattern matching on the ObjectName, or a specific
-     * MBean.
-     * <p>
-     * This method does not support a QueryExp argument for additional filtering of the queried set.
-     * </p>
-     *
-     * @param objectName The object name pattern identifying the MBeans to retrieve.
-     * @return A set of ObjectInstances for the selected MBeans.
-     */
-    public ObjectInstance[] queryMBeans(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        Set result = server.queryMBeans(name, null);
-        int n = result.size();
-        if (n > 0)
-        {
-            ObjectInstance[] toReturn = new ObjectInstance[n];
-            int i = 0;
-            for (Iterator iter = result.iterator(); iter.hasNext();) 
-            {
-                toReturn[i++] = new ObjectInstance((javax.management.ObjectInstance)iter.next());
-            }
-            return toReturn;
-        }
-        else
-        {
-            return new ObjectInstance[0];
-        }
-    }
-
-    /**
-     * Gets the names of MBeans controlled by the MBean server. This method allows the following to be
-     * obtained: The names of all MBeans, the names of the set of MBeans matching the ObjectName pattern,
-     * a specific MBean name.
-     * <p>
-     * This method does not support a QueryExp argument for additional filtering of the queried set.
-     * </p>
-     *
-     * @param objectName The object name pattern identifying the MBean names to retrieve.
-     * @return A set of ObjectNames for the selected MBeans.
-     */
-    public ObjectName[] queryNames(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        Set result = server.queryNames(name, null);
-        int n = result.size();
-        if (n > 0)
-        {
-            ObjectName[] toReturn = new ObjectName[n];
-            int i = 0;
-            for (Iterator iter = result.iterator(); iter.hasNext();)
-            {
-                toReturn[i++] = new ObjectName((javax.management.ObjectName)iter.next());
-            }
-            return toReturn;
-        }
-        else
-        {
-            return new ObjectName[0];
-        }
-    }
-
-    /**
-     * Checks whether an MBean, identified by its object name, is already registered with the MBean server.
-     *
-     * @param objectName The object name of the MBean to be checked.
-     * @return True if the MBean is already registered in the MBean server, false otherwise.
-     */
-    public boolean isRegistered(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        return server.isRegistered(name);
-    }
-
-    /**
-     * Returns the total number of beans registered in the MBean server.
-     *
-     * @return The number of registered MBeans.
-     */
-    public Integer getMBeanCount()
-    {
-        return server.getMBeanCount();
-    }
-
-    /**
-     * Gets the value of a specific attribute of a named MBean. The MBean is identified by its object name.
-     *
-     * @param objectName The object name of the MBean from which the attribute is to be retrieved.
-     * @param attribute The name of the attribute to be retrieved.
-     * @return The value of the retrieved attribute.
-     */
-    public Object getAttribute(String objectName, String attribute)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            return server.getAttribute(name, attribute);
-        }
-        catch (AttributeNotFoundException anfe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(ATTRIB_NOTFOUND, new Object[] {attribute, name});
-            me.setRootCause(anfe);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETATTRIB_EXCEPTION, new Object[] {attribute, name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETATTRIB_REFLECT_ERR, new Object[] {attribute, name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (RuntimeOperationsException roe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETATTRIB_NULL_ARGUMENT);
-            me.setRootCause(roe);
-            throw me;
-        }
-    }
-
-    /**
-     * Gets the values of several attributes of a named MBean.
-     *
-     * @param objectName The object name of the MBean to get attribute values from.
-     * @param attributes The names of the attributes to get values for.
-     * @return The attributes, each containing their name and value.
-     */
-    public Attribute[] getAttributes(String objectName, String[] attributes)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            AttributeList result = server.getAttributes(name, attributes);
-            Attribute[] values = new Attribute[result.size()];
-            for (int i = 0; i < result.size(); i++)
-            {
-                values[i] = new Attribute((javax.management.Attribute)result.get(i));
-            }
-            return values;
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETATTRIBS_REFLECT_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (RuntimeOperationsException roe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETATTRIBS_NULL_ARGUMENT);
-            me.setRootCause(roe);
-            throw me;
-        }
-    }
-
-    /**
-     * Sets the value of the attribute for the specified MBean.
-     *
-     * @param objectName The name of the MBean.
-     * @param attribute The attribute to set.
-     */
-    public void setAttribute(String objectName, Attribute attribute)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        javax.management.Attribute attrib = validateAttribute(attribute);
-        try
-        {
-            server.setAttribute(name, attrib);
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(SETATTRIB_REFLECT_ERR, new Object[] {attrib.getName(), name});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (AttributeNotFoundException anfe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(ATTRIB_NOTFOUND, new Object[] {attrib.getName(), name});
-            me.setRootCause(anfe);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(SETATTRIB_EXCEPTION, new Object[] {attrib.getName(), name});
-            me.setRootCause(mbe);
-            throw me;
-        }
-        catch (InvalidAttributeValueException iave)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INVALID_ATTRIB_VALUE, new Object[] {attrib.getValue(), attrib.getName(), name});
-            me.setRootCause(iave);
-            throw me;
-        }
-    }
-
-    /**
-     * Sets the values for several attributes of the specified MBean.
-     *
-     * @param objectName The object name for the MBean.
-     * @param attributes The attributes to set.
-     * @return The attributes that were set with their new values.
-     */
-    public Attribute[] setAttributes(String objectName, Attribute[] attributes)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        AttributeList attribList = new AttributeList();
-        for (int i = 0; i < attributes.length; i++)
-        {
-            attribList.add(attributes[i].toAttribute());
-        }
-        try
-        {
-            AttributeList result = server.setAttributes(name, attribList);
-            Attribute[] values = new Attribute[result.size()];
-            for (int i = 0; i < result.size(); i++)
-            {
-                values[i] = new Attribute((javax.management.Attribute)result.get(i));
-            }
-            return values;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(SETATTRIBS_REFLECT_ERR, new Object[] {name});
-            me.setRootCause(re);
-            throw me;
-        }
-    }
-
-    /**
-     * Invokes an operation on an MBean.
-     *
-     * @param objectName The object name of the MBean to invoke the operation on.
-     * @param operationName The operation to invoke.
-     * @param params The parameters for the operation invocation.
-     * @param signature The parameter signature for the operation.
-     * @return The object returned by the operation invocation.
-     */
-    public Object invoke(String objectName, String operationName, Object[] params, String[] signature)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            return server.invoke(name, operationName, params, signature);
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INVOKE_REFLECT_ERR, new Object[]  {operationName, objectName});
-            me.setRootCause(re);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (MBeanException mbe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(INVOKE_ERR, new Object[]  {operationName, objectName});
-            me.setRootCause(mbe);
-            throw me;
-        }
-    }
-
-    /**
-     * Returns the default domain used for naming MBeans.
-     *
-     * @return The default domain.
-     */
-    public String getDefaultDomain()
-    {
-        return server.getDefaultDomain();
-    }
-
-    /**
-     * This method discovers the attributes and operations that an MBean exposes for management
-     * by a Flash client.
-     *
-     * @param objectName The name of the MBean to get metadata for.
-     * @return An MBeanInfo instance that describes the MBean.
-     */
-    public flex.management.jmx.MBeanInfo getMBeanInfo(String objectName)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            return new MBeanInfo(server.getMBeanInfo(name));
-        }
-        catch (IntrospectionException ie)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETINFO_INTROSPECTION_ERR, new Object[] {objectName});
-            me.setRootCause(ie);
-            throw me;
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
-            me.setRootCause(infe);
-            throw me;
-        }
-        catch (ReflectionException re)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(GETINFO_REFLECT_ERR, new Object[] {objectName});
-            me.setRootCause(re);
-            throw me;
-        }
-    }
-
-
-    /**
-     * Returns true if the specified MBean is an instance of the specified class; otherwise false.
-     *
-     * @param objectName The object name of the MBean.
-     * @param className The name of the class.
-     * @return true if the specified MBean is an instance of the specified class; otherwise false.
-     */
-    public boolean isInstanceOf(String objectName, String className)
-    {
-        javax.management.ObjectName name = validateObjectName(objectName);
-        try
-        {
-            return server.isInstanceOf(name, className);
-        }
-        catch (InstanceNotFoundException infe)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
-            me.setRootCause(infe);
-            throw me;
-        }
-    }
-
-    ////////////////////////////////
-    //
-    // Additive Flex-specific API
-    //
-    ////////////////////////////////
-
-    /**
-     * Returns all the object names for Flex related MBeans.
-     *
-     * @return The object names for all Flex related MBeans.
-     */
-    public ObjectName[] getFlexMBeanObjectNames()
-    {
-        javax.management.ObjectName pattern = validateObjectName(BaseControl.DOMAIN_PREFIX + "*:*");
-        Set result = server.queryNames(pattern, null);
-        ObjectName[] names = new ObjectName[result.size()];
-        int i = 0;
-        for (Iterator iter = result.iterator(); iter.hasNext(); )
-        {
-            names[i++] = new ObjectName((javax.management.ObjectName)iter.next());
-        }
-        return names;
-    }
-
-    /**
-     * Returns the number of narrowed Flex MBeans registered in the MBean server.
-     *
-     * @return The number of narrowed Flex MBeans registered in the MBean server.
-     */
-    public Integer getFlexMBeanCount()
-    {
-        return new Integer(getFlexMBeanObjectNames().length);
-    }
-
-    /**
-     * Returns the narrowed list of Flex domains in which any MBean is currently registered.
-     * The domains are returned in naturally sorted order.
-     *
-     * @return The narrowed list of Flex domains in which any MBean is currently registered.
-     */
-    public String[] getFlexDomains()
-    {
-        ObjectName[] names = getFlexMBeanObjectNames();
-        Set domains = new TreeSet();
-        String name;
-        String domain;
-        if (names.length > 0)
-        {
-            for (int i = 0; i < names.length; ++i)
-            {
-                name = names[i].canonicalName;
-                domain = name.substring(0, name.indexOf(':'));
-                if (!domains.contains(domain))
-                {
-                    domains.add(domain);
-                }
-            }
-        }
-        return (String[])domains.toArray(new String[domains.size()]);
-    }
-
-    ///////////////////////////////
-    //
-    // Internal helper methods
-    //
-    ///////////////////////////////
-
-    /**
-     * Helper method to validate that we have a well-formed ObjectName string.
-     *
-     * @param objectName The object name to validate.
-     * @return The valid ObjectName.
-     */
-    private javax.management.ObjectName validateObjectName(String objectName)
-    {
-        try
-        {
-            return new javax.management.ObjectName(objectName);
-        }
-        catch (MalformedObjectNameException mone)
-        {
-            ManagementException me = new ManagementException();
-            me.setMessage(MALFORMED_OBJECTNAME, new Object[] {objectName});
-            throw me;
-        }
-    }
-
-    /**
-     * Helper method to validate that we have a well-formed Attribute.
-     *
-     * @param attribute The attribute to validate.
-     * @return The valid Attribute.
-     */
-    private javax.management.Attribute validateAttribute(Attribute attribute)
-    {
-        return attribute.toAttribute();
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flex.management.jmx;
+
+import flex.management.BaseControl;
+import flex.management.MBeanServerLocatorFactory;
+import flex.management.ManagementException;
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.IntrospectionException;
+import javax.management.InvalidAttributeValueException;
+import javax.management.MalformedObjectNameException;
+import javax.management.MBeanException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.NotCompliantMBeanException;
+import javax.management.ReflectionException;
+import javax.management.RuntimeOperationsException;
+
+/**
+ * Remoting gateway to the MBean server that hosts Flex MBeans.
+ * <p>
+ * Some base javax.management.MBeanServer methods are unimplemented due to the
+ * fact that we're interacting with the MBean server from remote Flash clients.
+ * Some methods have been modified to better suite remote Flash clients. Other
+ * methods are additive, serving as a convenience for Flex applications.
+ * </p><p>
+ * Unimplemented methods from the base MBeanServer API:
+ * <ul>
+ *   <li>getDomains() - JMX 1.2</li>
+ *   <li>addNotificationListener()/removeNotificationListener() - Flash objects
+ *       cannot listen directly for MBean notifications.</li>
+ *   <li>instantiate() - returns a reference to a Java object that is not useful
+ *       to a remote Flash client.</li>
+ *   <li>deserialize() - deprecated.</li>
+ *   <li>getClassLoaderFor() - meaningless to a Flash client.</li>
+ *   <li>getClassLoader() - meaningless to a Flash client.</li>
+ *   <li>getClassLoaderRepository() - meaningless to a Flash client.</li>
+ * </ul>
+ * </p><p>
+ * Modifications to the base MBeanServer API:
+ * <ul>
+ *   <li>* All ObjectName arguments are typed as String because serialization in either
+ *       direction doesn't support ObjectNames that are patterns. This does not effect
+ *       ObjectNames that are not patterns that are returned to the client.</li>
+ *   <li>queryMBeans() - returns an Array of ObjectInstances rather than a java.util.Set
+ *       and does not currently support the QueryExp argument.</li>
+ *   <li>queryNames() returns an Array of ObjectNames rather than a java.util.Set
+ *       and does not currently support the QueryExp argument.</li>
+ *   <li>getAttributes() returns an Array of Attributes rather than an AttributeList.</li>
+ *   <li>setAttributes() accepts and returns Arrays of Attributes rather than AttributeLists.</li>
+ * </ul>
+ * </p><p>
+ * Additonal Flex-specific methods:
+ * <ul>
+ *   <li>getFlexMBeanCount()</li>
+ *   <li>getFlexDomains()</li>
+ *   <li>getFlexMBeanObjectNames()</li>
+ * </ul>
+ * </p>
+ *
+ * @author shodgson
+ */
+public class MBeanServerGateway
+{
+    // Error string constants.
+    private static final int MALFORMED_OBJECTNAME = 10400;
+    private static final int GETINFO_INTROSPECTION_ERR = 10406;
+    private static final int MBEAN_NOTFOUND = 10407;
+    private static final int GETINFO_REFLECT_ERR = 10408;
+    private static final int ATTRIB_NOTFOUND = 10409;
+    private static final int GETATTRIB_EXCEPTION = 10410;
+    private static final int GETATTRIB_REFLECT_ERR = 10411;
+    private static final int GETATTRIB_NULL_ARGUMENT = 10412;
+    private static final int GETATTRIBS_REFLECT_ERR = 10413;
+    private static final int GETATTRIBS_NULL_ARGUMENT = 10414;
+    private static final int INVOKE_REFLECT_ERR = 10415;
+    private static final int INVOKE_ERR = 10416;
+    private static final int CREATE_ERR = 10417;
+    private static final int INSTANCE_EXISTS = 10418;
+    private static final int NOT_COMPLIANT = 10419;
+    private static final int MBEAN_PREREG_ERR = 10420;
+    private static final int MBEAN_PREDEREG_ERR = 10421;
+    private static final int SETATTRIB_REFLECT_ERR = 10422;
+    private static final int SETATTRIB_EXCEPTION = 10423;
+    private static final int INVALID_ATTRIB_VALUE = 10424;
+    private static final int SETATTRIBS_REFLECT_ERR = 10425;
+    
+    private MBeanServer server;
+
+    /**
+     * Constructs a new MBeanServerGateway. The gateway exposes the MBean server
+     * that Flex MBean are registered with in a remoting-friendly fashion.
+     */
+    public MBeanServerGateway()
+    {
+        server = MBeanServerLocatorFactory.getMBeanServerLocator().getMBeanServer();
+    }
+
+    /////////////////////////////////////
+    //
+    // Core MBeanServer API
+    //
+    /////////////////////////////////////
+
+    /**
+     * Instantiates and registers an MBean with the MBean server.
+     *
+     * @param className The class name for the MBean to instantiate.
+     * @param objectName The object name of the MBean.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
+     */
+    public ObjectInstance createMBean(String className, String objectName)
+    {
+        javax.management.ObjectName name = null;
+        if (objectName != null)
+            name = validateObjectName(objectName);
+        try
+        {
+            return new ObjectInstance(server.createMBean(className, name));
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceAlreadyExistsException iaee)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
+            me.setRootCause(iaee);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (NotCompliantMBeanException ncmbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(NOT_COMPLIANT, new Object[] {className});
+            me.setRootCause(ncmbe);
+            throw me;
+        }
+    }
+
+    /**
+     * Instantiates and registers an MBean with the MBean server. The class loader
+     * to use to load the MBean class is identified by its ObjectName.
+     *
+     * @param className The class name for the MBean to instantiate.
+     * @param objectName The object name of the MBean.
+     * @param loaderName The object name of the desired class loader.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
+     */
+    public ObjectInstance createMBean(String className, String objectName, String loaderName)
+    {
+        javax.management.ObjectName name = null;
+        javax.management.ObjectName loader = null;
+        if (objectName != null)
+            name = validateObjectName(objectName);
+        if (loaderName != null)
+            loader = validateObjectName(loaderName);
+        try
+        {
+            return new ObjectInstance(server.createMBean(className, name, loader));
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceAlreadyExistsException iaee)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
+            me.setRootCause(iaee);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (NotCompliantMBeanException ncmbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(NOT_COMPLIANT, new Object[] {className});
+            me.setRootCause(ncmbe);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+    }
+
+    /**
+     * Instantiates and registers an MBean with the MBean server.
+     *
+     * @param className The class name for the MBean to instantiate.
+     * @param objectName The object name of the MBean.
+     * @param params An array of parameters to pass to the MBean constructor.
+     * @param signature An array containing the type signature for the constructor to invoke.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
+     */
+    public ObjectInstance createMBean(String className, String objectName, Object[] params, String[] signature)
+    {
+        javax.management.ObjectName name = null;
+        if (objectName != null)
+            name = validateObjectName(objectName);
+        try
+        {
+            return new ObjectInstance(server.createMBean(className, name, params, signature));
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceAlreadyExistsException iaee)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
+            me.setRootCause(iaee);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (NotCompliantMBeanException ncmbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(NOT_COMPLIANT, new Object[] {className});
+            me.setRootCause(ncmbe);
+            throw me;
+        }
+    }
+
+    /**
+     * Instantiates and registers an MBean with the MBean server. The class loader
+     * to use to load the MBean class is identified by its ObjectName.
+     *
+     * @param className The class name for the MBean to instantiate.
+     * @param objectName The object name of the MBean.
+     * @param loaderName The object name of the desired class loader.
+     * @param params An array of parameters to pass to the MBean constructor.
+     * @param signature An array containing the type signature for the constructor to invoke.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
+     */
+    public ObjectInstance createMBean(String className, String objectName, String loaderName, Object[] params, String[] signature)
+    {
+        javax.management.ObjectName name = null;
+        javax.management.ObjectName loader = null;
+        if (objectName != null)
+            name = validateObjectName(objectName);
+        if (loaderName != null)
+            loader = validateObjectName(loaderName);
+        try
+        {
+            return new ObjectInstance(server.createMBean(className, name, loader, params, signature));
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceAlreadyExistsException iaee)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
+            me.setRootCause(iaee);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(CREATE_ERR, new Object[] {name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (NotCompliantMBeanException ncmbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(NOT_COMPLIANT, new Object[] {className});
+            me.setRootCause(ncmbe);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+    }
+
+    /**
+     * Registers a pre-existing object as an MBean with the MBean server.
+     *
+     * @param object The object to register as an MBean.
+     * @param objectName The object name for the MBean.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the new MBean.
+     */
+    public ObjectInstance registerMBean(Object object, String objectName)
+    {
+        javax.management.ObjectName name = null;
+        if (objectName != null)
+            name = validateObjectName(objectName);
+        try
+        {
+            return new ObjectInstance(server.registerMBean(object, name));
+        }
+        catch (InstanceAlreadyExistsException iaee)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INSTANCE_EXISTS, new Object[] {name});
+            me.setRootCause(iaee);
+            throw me;
+        }
+        catch (NotCompliantMBeanException ncmbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(NOT_COMPLIANT, new Object[] {object.getClass().getName()});
+            me.setRootCause(ncmbe);
+            throw me;
+        }
+        catch (MBeanRegistrationException mbre)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_PREREG_ERR, new Object[] {name});
+            me.setRootCause(mbre);
+            throw me;
+        }
+    }
+
+    /**
+     * Unregisters an MBean from the MBean server.
+     *
+     * @param objectName The object name of the MBean to unregister.
+     */
+    public void unregisterMBean(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            server.unregisterMBean(name);
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (MBeanRegistrationException mbre)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_PREDEREG_ERR, new Object[] {name});
+            me.setRootCause(mbre);
+            throw me;
+        }
+    }
+
+    /**
+     * Gets the ObjectInstance for the specified MBean registered with the
+     * MBean server.
+     *
+     * @param objectName The object name of the MBean.
+     * @return An ObjectInstance containing the ObjectName and Java class name of the MBean.
+     */
+    public ObjectInstance getObjectInstance(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            return new ObjectInstance(server.getObjectInstance(name));
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+    }
+
+    /**
+     * Gets MBeans controlled by the MBean server. This method allows the following to be obtained:
+     * All MBeans, or a set of MBeans specified by pattern matching on the ObjectName, or a specific
+     * MBean.
+     * <p>
+     * This method does not support a QueryExp argument for additional filtering of the queried set.
+     * </p>
+     *
+     * @param objectName The object name pattern identifying the MBeans to retrieve.
+     * @return A set of ObjectInstances for the selected MBeans.
+     */
+    public ObjectInstance[] queryMBeans(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        Set result = server.queryMBeans(name, null);
+        int n = result.size();
+        if (n > 0)
+        {
+            ObjectInstance[] toReturn = new ObjectInstance[n];
+            int i = 0;
+            for (Iterator iter = result.iterator(); iter.hasNext();) 
+            {
+                toReturn[i++] = new ObjectInstance((javax.management.ObjectInstance)iter.next());
+            }
+            return toReturn;
+        }
+        else
+        {
+            return new ObjectInstance[0];
+        }
+    }
+
+    /**
+     * Gets the names of MBeans controlled by the MBean server. This method allows the following to be
+     * obtained: The names of all MBeans, the names of the set of MBeans matching the ObjectName pattern,
+     * a specific MBean name.
+     * <p>
+     * This method does not support a QueryExp argument for additional filtering of the queried set.
+     * </p>
+     *
+     * @param objectName The object name pattern identifying the MBean names to retrieve.
+     * @return A set of ObjectNames for the selected MBeans.
+     */
+    public ObjectName[] queryNames(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        Set result = server.queryNames(name, null);
+        int n = result.size();
+        if (n > 0)
+        {
+            ObjectName[] toReturn = new ObjectName[n];
+            int i = 0;
+            for (Iterator iter = result.iterator(); iter.hasNext();)
+            {
+                toReturn[i++] = new ObjectName((javax.management.ObjectName)iter.next());
+            }
+            return toReturn;
+        }
+        else
+        {
+            return new ObjectName[0];
+        }
+    }
+
+    /**
+     * Checks whether an MBean, identified by its object name, is already registered with the MBean server.
+     *
+     * @param objectName The object name of the MBean to be checked.
+     * @return True if the MBean is already registered in the MBean server, false otherwise.
+     */
+    public boolean isRegistered(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        return server.isRegistered(name);
+    }
+
+    /**
+     * Returns the total number of beans registered in the MBean server.
+     *
+     * @return The number of registered MBeans.
+     */
+    public Integer getMBeanCount()
+    {
+        return server.getMBeanCount();
+    }
+
+    /**
+     * Gets the value of a specific attribute of a named MBean. The MBean is identified by its object name.
+     *
+     * @param objectName The object name of the MBean from which the attribute is to be retrieved.
+     * @param attribute The name of the attribute to be retrieved.
+     * @return The value of the retrieved attribute.
+     */
+    public Object getAttribute(String objectName, String attribute)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            return server.getAttribute(name, attribute);
+        }
+        catch (AttributeNotFoundException anfe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(ATTRIB_NOTFOUND, new Object[] {attribute, name});
+            me.setRootCause(anfe);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETATTRIB_EXCEPTION, new Object[] {attribute, name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETATTRIB_REFLECT_ERR, new Object[] {attribute, name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (RuntimeOperationsException roe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETATTRIB_NULL_ARGUMENT);
+            me.setRootCause(roe);
+            throw me;
+        }
+    }
+
+    /**
+     * Gets the values of several attributes of a named MBean.
+     *
+     * @param objectName The object name of the MBean to get attribute values from.
+     * @param attributes The names of the attributes to get values for.
+     * @return The attributes, each containing their name and value.
+     */
+    public Attribute[] getAttributes(String objectName, String[] attributes)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            AttributeList result = server.getAttributes(name, attributes);
+            Attribute[] values = new Attribute[result.size()];
+            for (int i = 0; i < result.size(); i++)
+            {
+                values[i] = new Attribute((javax.management.Attribute)result.get(i));
+            }
+            return values;
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETATTRIBS_REFLECT_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (RuntimeOperationsException roe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETATTRIBS_NULL_ARGUMENT);
+            me.setRootCause(roe);
+            throw me;
+        }
+    }
+
+    /**
+     * Sets the value of the attribute for the specified MBean.
+     *
+     * @param objectName The name of the MBean.
+     * @param attribute The attribute to set.
+     */
+    public void setAttribute(String objectName, Attribute attribute)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        javax.management.Attribute attrib = validateAttribute(attribute);
+        try
+        {
+            server.setAttribute(name, attrib);
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(SETATTRIB_REFLECT_ERR, new Object[] {attrib.getName(), name});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (AttributeNotFoundException anfe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(ATTRIB_NOTFOUND, new Object[] {attrib.getName(), name});
+            me.setRootCause(anfe);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(SETATTRIB_EXCEPTION, new Object[] {attrib.getName(), name});
+            me.setRootCause(mbe);
+            throw me;
+        }
+        catch (InvalidAttributeValueException iave)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INVALID_ATTRIB_VALUE, new Object[] {attrib.getValue(), attrib.getName(), name});
+            me.setRootCause(iave);
+            throw me;
+        }
+    }
+
+    /**
+     * Sets the values for several attributes of the specified MBean.
+     *
+     * @param objectName The object name for the MBean.
+     * @param attributes The attributes to set.
+     * @return The attributes that were set with their new values.
+     */
+    public Attribute[] setAttributes(String objectName, Attribute[] attributes)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        AttributeList attribList = new AttributeList();
+        for (int i = 0; i < attributes.length; i++)
+        {
+            attribList.add(attributes[i].toAttribute());
+        }
+        try
+        {
+            AttributeList result = server.setAttributes(name, attribList);
+            Attribute[] values = new Attribute[result.size()];
+            for (int i = 0; i < result.size(); i++)
+            {
+                values[i] = new Attribute((javax.management.Attribute)result.get(i));
+            }
+            return values;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {name});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(SETATTRIBS_REFLECT_ERR, new Object[] {name});
+            me.setRootCause(re);
+            throw me;
+        }
+    }
+
+    /**
+     * Invokes an operation on an MBean.
+     *
+     * @param objectName The object name of the MBean to invoke the operation on.
+     * @param operationName The operation to invoke.
+     * @param params The parameters for the operation invocation.
+     * @param signature The parameter signature for the operation.
+     * @return The object returned by the operation invocation.
+     */
+    public Object invoke(String objectName, String operationName, Object[] params, String[] signature)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            return server.invoke(name, operationName, params, signature);
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INVOKE_REFLECT_ERR, new Object[]  {operationName, objectName});
+            me.setRootCause(re);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (MBeanException mbe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(INVOKE_ERR, new Object[]  {operationName, objectName});
+            me.setRootCause(mbe);
+            throw me;
+        }
+    }
+
+    /**
+     * Returns the default domain used for naming MBeans.
+     *
+     * @return The default domain.
+     */
+    public String getDefaultDomain()
+    {
+        return server.getDefaultDomain();
+    }
+
+    /**
+     * This method discovers the attributes and operations that an MBean exposes for management
+     * by a Flash client.
+     *
+     * @param objectName The name of the MBean to get metadata for.
+     * @return An MBeanInfo instance that describes the MBean.
+     */
+    public flex.management.jmx.MBeanInfo getMBeanInfo(String objectName)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            return new MBeanInfo(server.getMBeanInfo(name));
+        }
+        catch (IntrospectionException ie)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETINFO_INTROSPECTION_ERR, new Object[] {objectName});
+            me.setRootCause(ie);
+            throw me;
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
+            me.setRootCause(infe);
+            throw me;
+        }
+        catch (ReflectionException re)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(GETINFO_REFLECT_ERR, new Object[] {objectName});
+            me.setRootCause(re);
+            throw me;
+        }
+    }
+
+
+    /**
+     * Returns true if the specified MBean is an instance of the specified class; otherwise false.
+     *
+     * @param objectName The object name of the MBean.
+     * @param className The name of the class.
+     * @return true if the specified MBean is an instance of the specified class; otherwise false.
+     */
+    public boolean isInstanceOf(String objectName, String className)
+    {
+        javax.management.ObjectName name = validateObjectName(objectName);
+        try
+        {
+            return server.isInstanceOf(name, className);
+        }
+        catch (InstanceNotFoundException infe)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MBEAN_NOTFOUND, new Object[] {objectName});
+            me.setRootCause(infe);
+            throw me;
+        }
+    }
+
+    ////////////////////////////////
+    //
+    // Additive Flex-specific API
+    //
+    ////////////////////////////////
+
+    /**
+     * Returns all the object names for Flex related MBeans.
+     *
+     * @return The object names for all Flex related MBeans.
+     */
+    public ObjectName[] getFlexMBeanObjectNames()
+    {
+        javax.management.ObjectName pattern = validateObjectName(BaseControl.DOMAIN_PREFIX + "*:*");
+        Set result = server.queryNames(pattern, null);
+        ObjectName[] names = new ObjectName[result.size()];
+        int i = 0;
+        for (Iterator iter = result.iterator(); iter.hasNext(); )
+        {
+            names[i++] = new ObjectName((javax.management.ObjectName)iter.next());
+        }
+        return names;
+    }
+
+    /**
+     * Returns the number of narrowed Flex MBeans registered in the MBean server.
+     *
+     * @return The number of narrowed Flex MBeans registered in the MBean server.
+     */
+    public Integer getFlexMBeanCount()
+    {
+        return new Integer(getFlexMBeanObjectNames().length);
+    }
+
+    /**
+     * Returns the narrowed list of Flex domains in which any MBean is currently registered.
+     * The domains are returned in naturally sorted order.
+     *
+     * @return The narrowed list of Flex domains in which any MBean is currently registered.
+     */
+    public String[] getFlexDomains()
+    {
+        ObjectName[] names = getFlexMBeanObjectNames();
+        Set domains = new TreeSet();
+        String name;
+        String domain;
+        if (names.length > 0)
+        {
+            for (int i = 0; i < names.length; ++i)
+            {
+                name = names[i].canonicalName;
+                domain = name.substring(0, name.indexOf(':'));
+                if (!domains.contains(domain))
+                {
+                    domains.add(domain);
+                }
+            }
+        }
+        return (String[])domains.toArray(new String[domains.size()]);
+    }
+
+    ///////////////////////////////
+    //
+    // Internal helper methods
+    //
+    ///////////////////////////////
+
+    /**
+     * Helper method to validate that we have a well-formed ObjectName string.
+     *
+     * @param objectName The object name to validate.
+     * @return The valid ObjectName.
+     */
+    private javax.management.ObjectName validateObjectName(String objectName)
+    {
+        try
+        {
+            return new javax.management.ObjectName(objectName);
+        }
+        catch (MalformedObjectNameException mone)
+        {
+            ManagementException me = new ManagementException();
+            me.setMessage(MALFORMED_OBJECTNAME, new Object[] {objectName});
+            throw me;
+        }
+    }
+
+    /**
+     * Helper method to validate that we have a well-formed Attribute.
+     *
+     * @param attribute The attribute to validate.
+     * @return The valid Attribute.
+     */
+    private javax.management.Attribute validateAttribute(Attribute attribute)
+    {
+        return attribute.toAttribute();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/4f6a3052/modules/core/src/flex/management/jmx/ObjectInstance.java
----------------------------------------------------------------------
diff --git a/modules/core/src/flex/management/jmx/ObjectInstance.java b/modules/core/src/flex/management/jmx/ObjectInstance.java
old mode 100755
new mode 100644
index 03e81a0..ccd8b44
--- a/modules/core/src/flex/management/jmx/ObjectInstance.java
+++ b/modules/core/src/flex/management/jmx/ObjectInstance.java
@@ -1,67 +1,67 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.management.jmx;
-
-import javax.management.MalformedObjectNameException;
-
-/**
- * Remotable ObjectInstance representation that complies with Flash serialization requirements.
- * 
- * @author shodgson
- */
-public class ObjectInstance
-{
-    /**
-     * The object name part of the <code>ObjectInstance</code>.
-     */
-    public ObjectName objectName;
-    
-    /**
-     * The class name part of the <code>ObjectInstance</code>.
-     */
-    public String className;
-    
-    /**
-     * Constructs an empty <code>ObjectInstance</code> instance.
-     *
-     */
-    public ObjectInstance()
-    {}
-    
-    /**
-     * Constructs a <code>ObjectInstance</code> instance based upon a
-     * <code>javax.management.ObjectInstance</code> instance.
-     * 
-     * @param objectInstance The JMX <code>ObjectInstance</code> instance to base this instance on.
-     */
-    public ObjectInstance(javax.management.ObjectInstance objectInstance)
-    {
-        objectName = new ObjectName(objectInstance.getObjectName());
-        className = objectInstance.getClassName();
-    }
-    
-    /**
-     * Utility method to convert this <code>ObjectInstance</code> to a
-     * <code>javax.management.ObjectInstance</code> instance.
-     * 
-     * @return A JMX <code>ObjectInstance</code> based upon this instance.
-     */
-    public javax.management.ObjectInstance toObjectInstance() throws MalformedObjectNameException
-    {
-        return new javax.management.ObjectInstance(objectName.toObjectName(), className);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flex.management.jmx;
+
+import javax.management.MalformedObjectNameException;
+
+/**
+ * Remotable ObjectInstance representation that complies with Flash serialization requirements.
+ * 
+ * @author shodgson
+ */
+public class ObjectInstance
+{
+    /**
+     * The object name part of the <code>ObjectInstance</code>.
+     */
+    public ObjectName objectName;
+    
+    /**
+     * The class name part of the <code>ObjectInstance</code>.
+     */
+    public String className;
+    
+    /**
+     * Constructs an empty <code>ObjectInstance</code> instance.
+     *
+     */
+    public ObjectInstance()
+    {}
+    
+    /**
+     * Constructs a <code>ObjectInstance</code> instance based upon a
+     * <code>javax.management.ObjectInstance</code> instance.
+     * 
+     * @param objectInstance The JMX <code>ObjectInstance</code> instance to base this instance on.
+     */
+    public ObjectInstance(javax.management.ObjectInstance objectInstance)
+    {
+        objectName = new ObjectName(objectInstance.getObjectName());
+        className = objectInstance.getClassName();
+    }
+    
+    /**
+     * Utility method to convert this <code>ObjectInstance</code> to a
+     * <code>javax.management.ObjectInstance</code> instance.
+     * 
+     * @return A JMX <code>ObjectInstance</code> based upon this instance.
+     */
+    public javax.management.ObjectInstance toObjectInstance() throws MalformedObjectNameException
+    {
+        return new javax.management.ObjectInstance(objectName.toObjectName(), className);
+    }
+}


Mime
View raw message