You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2015/12/20 14:14:29 UTC
[49/51] [partial] flex-blazeds git commit: Removed legacy directories
and made the content of the modules directory the new root - Please use the
maven build for now as the Ant build will no longer work untill it is
adjusted to the new directory structur
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/WEB-INF/install-web.xml
----------------------------------------------------------------------
diff --git a/apps/ds-console/WEB-INF/install-web.xml b/apps/ds-console/WEB-INF/install-web.xml
deleted file mode 100755
index a741ed8..0000000
--- a/apps/ds-console/WEB-INF/install-web.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
- <display-name>Console</display-name>
- <description>Administration tools for monitoring and management</description>
-
- <!-- MessageBroker Servlet -->
- <servlet>
- <servlet-name>MessageBrokerServlet</servlet-name>
- <display-name>MessageBrokerServlet</display-name>
- <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
- <init-param>
- <param-name>services.configuration.file</param-name>
- <param-value>/WEB-INF/flex/services-config.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>MessageBrokerServlet</servlet-name>
- <url-pattern>/messagebroker/*</url-pattern>
- </servlet-mapping>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
-
-</web-app>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/apps/ds-console/WEB-INF/web.xml b/apps/ds-console/WEB-INF/web.xml
deleted file mode 100755
index 61c89e5..0000000
--- a/apps/ds-console/WEB-INF/web.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
- <display-name>Console</display-name>
- <description>Administration tools for monitoring and management</description>
-
- <context-param>
- <param-name>flex.class.path</param-name>
- <param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
- </context-param>
-
- <!-- MessageBroker Servlet -->
- <servlet>
- <servlet-name>MessageBrokerServlet</servlet-name>
- <display-name>MessageBrokerServlet</display-name>
- <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
- <init-param>
- <param-name>services.configuration.file</param-name>
- <param-value>/WEB-INF/flex/services-config.xml</param-value>
- </init-param>
- <init-param>
- <param-name>flex.write.path</param-name>
- <param-value>/WEB-INF/flex</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>MessageBrokerServlet</servlet-name>
- <url-pattern>/messagebroker/*</url-pattern>
- </servlet-mapping>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
-
-</web-app>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/build.xml
----------------------------------------------------------------------
diff --git a/apps/ds-console/build.xml b/apps/ds-console/build.xml
deleted file mode 100755
index 4abf7af..0000000
--- a/apps/ds-console/build.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
- 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.
-
--->
-
-
-<project name="ds-console.war/build.xml" default="main" basedir="../..">
-
- <property environment="env" />
-
- <property file="${basedir}/build.properties"/>
- <property name="ds-console.war" value="${basedir}/apps/ds-console"/>
- <property name="dist.dir" value="${basedir}/dist"/>
- <property name="src.dir" value="${ds-console.war}/WEB-INF/src"/>
- <property name="classes.dir" value="${ds-console.war}/WEB-INF/classes"/>
- <property name="mxmlc.dir" value="${basedir}/bin"/>
-
-
- <property name="application.name" value="DS Console" />
- <property name="application.dir" value="${ds-console.war}" />
- <property name="application.file" value="console" />
-
- <path id="classpath">
- <fileset dir="${ds-console.war}/WEB-INF/lib" includes="**/*.jar"/>
- </path>
-
- <target name="main" depends="clean,ds-console"/>
- <target name="ds-console" depends="compile,compile-swf"/>
-
- <property environment="env"/>
-
- <target name="prepare">
- <mkdir dir="${ds-console.war}/WEB-INF/src"/>
- <mkdir dir="${ds-console.war}/WEB-INF/lib"/>
- <mkdir dir="${ds-console.war}/WEB-INF/classes"/>
- </target>
-
- <target name="copy-resources">
- <fail unless="local.sdk.lib.dir" message="must specify local.sdk.lib.dir in server/build.properties"/>
- <fail unless="local.sdk.frameworks.dir" message="must specify local.sdk.frameworks.dir in build.properties"/>
-
- <!-- copy to the lib directory -->
- <copy todir="${ds-console.war}/WEB-INF/lib">
- <fileset dir="${basedir}/lib" includes="${webapp.lib}" />
- </copy>
-
- <!-- copy to the classes directory -->
- <copy todir="${ds-console.war}/WEB-INF/classes">
- <fileset dir="${ds-console.war}/WEB-INF/src" erroronmissingdir="false">
- <include name="**/*.xml"/>
- </fileset>
- <fileset dir="${basedir}/lib" includes="${webapp.classes}" />
- </copy>
- </target>
-
- <target name="run-depend" if="src.depend">
- <echo message="Removing class files that changed and dependent class files."/>
- <depend cache="${classes.dir}" srcdir="${src.dir}" destdir="${classes.dir}"/>
- </target>
-
- <target name="compile" depends="prepare,run-depend,copy-resources" description="compile">
- <mkdir dir="${src.dir}"/>
- <javac source="1.4" debug="${src.debug}" destdir="${classes.dir}" srcdir="${src.dir}" classpathref="classpath"/>
- </target>
-
- <target name="compile-swf" >
-
- <delete file="${ds-console.war}/${application.file}.swf"/>
- <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
- <property name="FLEX_HOME" value="${basedir}"/>
-
- <mxmlc file="${application.dir}/${application.file}.mxml"
- output="${application.dir}/${application.file}.swf"
- actionscript-file-encoding="UTF-8"
- keep-generated-actionscript="false"
- incremental="false"
- services="${ds-console.war}/WEB-INF/flex/services-config.xml"
- context-root="ds-console"
- locale="en_US">
- <load-config filename="${basedir}/frameworks/flex-config.xml"/>
- <license product="flexbuilder3" serial-number="${env.fb3_license}"/>
- <source-path path-element="${basedir}/frameworks"/>
- <external-library-path/>
- <metadata>
- <publisher name="${manifest.Implementation-Vendor}" />
- <creator name="${manifest.Implementation-Vendor}" />
- </metadata>
- </mxmlc>
-
- <html-wrapper title="${application.name}"
- height="100%"
- width="100%"
- application="app"
- swf="${application.file}"
- version-major="10"
- version-minor="0"
- version-revision="0"
- history="true"
- express-install="true"
- output="${application.dir}"/>
-
- </target>
-
- <target name="package" description=" Creates distribution war file">
- <mkdir dir="${dist.dir}"/>
- <antcall target="compile-swf"/>
- <delete file="${dist.dir}/ds-console.war"/>
- <war file="${dist.dir}/ds-console.war"
- webxml="${ds-console.war}/WEB-INF/install-web.xml">
- <manifest>
- <attribute name="Sealed" value="${manifest.sealed}"/>
- <attribute name="Implementation-Title" value="${manifest.Implementation-Title} - ${application.name}"/>
- <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
- <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
- </manifest>
- <fileset dir="${ds-console.war}">
- <include name="index.html"/>
- <include name="console.swf"/>
- <include name="playerProductInstall.swf"/>
- <include name="swfobject.js"/>
- <include name="history/*"/>
- <include name="WEB-INF/flex/services-config.xml"/>
- <include name="WEB-INF/classes/*"/>
- <include name="WEB-INF/lib/**/*"/>
- </fileset>
- </war>
- </target>
-
- <target name="clean" description="--> Removes jars and classes">
- <delete quiet="true">
- <fileset dir="${ds-console.war}/" includes="swfobject.js,index.html,console.swf,expressInstall.swf,history/*"/>
- </delete>
- <delete quiet="true">
- <fileset dir="${ds-console.war}/WEB-INF/lib" includes="${webapp.lib},${webtier.lib}"/>
- </delete>
- <delete quiet="true" includeEmptyDirs="true">
- <fileset dir="${ds-console.war}/WEB-INF/flex/locale" includes="**/*"/>
- </delete>
- <delete quiet="true">
- <fileset dir="${ds-console.war}/WEB-INF/flex/jars" includes="**/*"/>
- </delete>
- <delete quiet="true" includeEmptyDirs="true">
- <fileset dir="${ds-console.war}/WEB-INF/flex/frameworks" includes="**/*"/>
- </delete>
- <delete quiet="true" includeEmptyDirs="true">
- <fileset dir="${ds-console.war}/WEB-INF/flex" includes="*.ser,mxml-manifest.xml,cache.dep"/>
- </delete>
- <delete quiet="true">
- <fileset dir="${classes.dir}" includes="**/*.class"/>
- </delete>
- <delete quiet="true" file="${dist.dir}/console.war"/>
- <delete quiet="true" file="${dist.dir}/ds-console.war"/>
- <delete quiet="true" dir="${ds-console.war}/history" />
- <delete quiet="true" dir="${ds-console.war}/WEB-INF/lib" />
- <delete quiet="true" dir="${ds-console.war}/WEB-INF/classes" />
-
- </target>
-
-</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console.mxml
----------------------------------------------------------------------
diff --git a/apps/ds-console/console.mxml b/apps/ds-console/console.mxml
deleted file mode 100755
index f616a52..0000000
--- a/apps/ds-console/console.mxml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- 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.
-
--->
-<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:console="console.containers.*" xmlns="*" creationComplete="initApp();">
- <mx:Script>
- <![CDATA[
- import console.ConsoleListener;
- import console.containers.LogManager;
- import console.containers.DestinationManager;
- import console.containers.EndpointManager;
- import console.containers.DefaultPanel;
- import mx.core.Container;
- import console.containers.UpdateListener;
- import console.events.ManagementOperationInvokeEvent;
- import mx.collections.ArrayCollection;
- import console.containers.ServerManager;
- import console.containers.AdvancedPanel;
- import console.ConsoleManager;
- import mx.messaging.management.*;
- import mx.rpc.events.ResultEvent;
-
- private var manager:ConsoleManager;
- private var advPanel:AdvancedPanel;
- private var srvManager:ServerManager;
- private var currentSelectedPanel:Container;
- private var consoleListener:ConsoleListener;
-
- [Bindable]
- public var appsList:ArrayCollection;
-
- private function initApp():void
- {
- appsList = new ArrayCollection;
-
- manager = ConsoleManager.getInstance();
- manager.parent = this;
-
- consoleNavigator.addChild(new DefaultPanel());
- consoleNavigator.addChild(new ServerManager());
- consoleNavigator.addChild(new EndpointManager());
- consoleNavigator.addChild(new DestinationManager());
- consoleNavigator.addChild(new LogManager());
- consoleNavigator.addChild(new AdvancedPanel());
-
- consoleListener = new ConsoleListener(this);
-
- currentSelectedPanel = consoleNavigator.selectedChild as Container;
- manager.activateListener(consoleNavigator.selectedChild as UpdateListener);
- }
-
- private function setCurrentTab():void
- {
- manager.deactivateListener(currentSelectedPanel as UpdateListener);
- manager.activateListener(consoleNavigator.selectedChild as UpdateListener);
-
- currentSelectedPanel = consoleNavigator.selectedChild as Container;
- }
-
- private function setCurrentApp():void
- {
- manager.currentApp = appSelect.selectedItem.data.label as String;
- }
-
- private function updatePollInterval():void
- {
- manager.timerInterval = pollIntervalSlider.value * 1000;
- }
-
- public function updateModel(model:Object):void
- {
- var mbeanModel:Object = manager.mbeanModel;
- for each (var appObj:Object in mbeanModel)
- {
- var names:Array = (appObj.label as String).split(".");
- appsList.addItem({label: names[2], data: appObj});
- }
- appSelect.selectedIndex = 0;
- }
- ]]>
- </mx:Script>
- <mx:HBox width="100%" textAlign="left" horizontalAlign="right">
- <mx:Label text="Application"/>
- <mx:ComboBox id="appSelect" dataProvider="{appsList}" labelField="label" width="300" change="{setCurrentApp()}" editable="false" enabled="true"/>
- <mx:Label text="Polling Interval (seconds)" />
- <mx:HSlider id="pollIntervalSlider" minimum="0" maximum="20" snapInterval=".5" enabled="true" change="{updatePollInterval()}"/>
- </mx:HBox>
- <mx:TabNavigator width="100%" height="100%" id="consoleNavigator" change="{setCurrentTab()}">
- </mx:TabNavigator>
-</mx:Application>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/ConsoleListener.as
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/ConsoleListener.as b/apps/ds-console/console/ConsoleListener.as
deleted file mode 100755
index 72e7bb9..0000000
--- a/apps/ds-console/console/ConsoleListener.as
+++ /dev/null
@@ -1,43 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 console
-{
- import console.containers.UpdateListener;
-
- public class ConsoleListener extends UpdateListener
- {
- private var _console:console;
-
- public function ConsoleListener(c:console)
- {
- _console = c;
- ConsoleManager.getInstance().registerListener(this, []);
- }
-
- public override function mbeanModelUpdate(mbeanModel:Object):void
- {
- for each (var appObj:Object in mbeanModel)
- {
- var names:Array = (appObj.label as String).split(".");
- _console.appsList.addItem({label: names[2], data: appObj});
- }
- _console.appSelect.selectedIndex = 0;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/ConsoleManager.as
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/ConsoleManager.as b/apps/ds-console/console/ConsoleManager.as
deleted file mode 100755
index f8be6cb..0000000
--- a/apps/ds-console/console/ConsoleManager.as
+++ /dev/null
@@ -1,1004 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 console
-{
- import console.ConsoleTreeDataDescriptor;
- import console.events.ManagementOperationInvokeEvent;
- import flash.events.*;
- import mx.collections.*;
- import mx.containers.*;
- import mx.controls.*;
- import mx.controls.treeClasses.*;
- import mx.events.*;
- import mx.managers.*;
- import mx.messaging.messages.*;
- import mx.messaging.management.*;
- import mx.rpc.events.*;
- import mx.rpc.remoting.*;
- import mx.utils.*;
- import mx.rpc.remoting.RemoteObject;
- import flash.display.DisplayObject;
- import console.containers.UpdateManager;
- import console.containers.UpdateListener;
- import flash.utils.Timer;
- import mx.core.LayoutContainer;
-
- public class ConsoleManager implements console.containers.UpdateManager
- {
- public static const GENERAL_SERVER:int = 1;
- public static const GENERAL_POLLABLE:int = 2;
- public static const GENERAL_OPERATION:int = 3;
-
- public static const GRAPH_BY_POLL_INTERVAL:int = 50;
-
- public static const ENDPOINT_SCALAR:int = 100;
- public static const ENDPOINT_POLLABLE:int = 101;
-
- public static const DESTINATION_GENERAL:int = 150;
- public static const DESTINATION_POLLABLE:int = 151;
-
- public static const TIMER_INTERVAL:int = 3000;
-
- ///////////////////////////
- // Private data structures
- ///////////////////////////
- /**
- * A generic object model of the MBean hierarchy, built from the flat set of object names.
- * The model is an array of top level objects. Each object has the following slots:
- * <ul>
- * <li>label:String - required - the label for the MBean instance or category name/app name</li>
- * <li>type:String - optional - the type value for a node that parents MBeans of similar type</li>
- * <li>objectName:ObjectName - optional - the ObjectName instance for an MBean</li>
- * <li>children:Array - optional - array of child objects</li>
- * </ul>
- */
- private var _mbeanModel:Array;
- public function get mbeanModel():Object
- {
- return _mbeanModel;
- }
-
- /**
- * The listeners map is keyed on the listeners and stores a property called types
- * which is an array of all of the types that the listener uses and whether or not
- * an individual type should poll. Not all listeners are always updated however,
- * there is another map 'activeListeners' which keeps track of which listeners are actively
- * listening to the timer. This is used because if one panel is hidden,
- * we do not want to poll all of the data it listens for if it won't be displayed yet.
- *
- * An example listeners map then looks like this:
- *
- * listeners:Object -+-[listener1:String]-:- { reference: listenerObject,
- * | types: [[TYPE1, POLL],
- * | [TYPE2, NOPOLL]]
- * +-[listener2:String]-:- { ... }
- */
- private var listeners:Object;
-
-
- /**
- * The activeListeners object stores all of the active listeners
- * for polling and is keyed on the type of data. An example is:
- *
- * activeListeners:Object -+-[ TYPE1:int ]-:- [ l1:UpdateListener , ... ]
- * |
- * + [ TYPE2:int ]-:- [ ... , ... , ... ]
- */
- private var activeListeners:Object;
-
- /**
- * This map handles storing information about what mbeans are associated
- * with what display types. It is keyed on the types of data (e.g. GENERAL_SCALAR, etc.),
- * then on the application name stored as a string, then the MBean name.
- *
- * An example displays map then looks like this:
- *
- * displays:Object -+-[TYPE1:int]-:[Application1]:- [mbean1] -> [attr1, attr2, attr3]
- * | | [mbean2] -> [attr1, attr2]
- * | | [mbean3] -> [...]
- * | +[Application2]:- [mbean...]
- * | |
- * |
- * +-[TYPE2:int]-:- [ ... ]
- */
- private var displays:Object;
-
- /**
- * Temporarily holds onto data pulled from the server. Anything in the buffer is
- * always overridden by new data.
- *
- * Is a map keyed on the data types which all reference maps keyed on mbeans which
- * store arrays of associated attributes.
- *
- * E.g.
- *
- * dataBuffer:Object -+-[TYPE1:int]-+--[mbeanName: bean1] -:- [ attr1:String , attr2:String ]
- * | +--[mbeanName: bean2] -:- [ attr1:String , attr2:String ]
- * |
- * +-[TYPE2:int]----[mbeanName: bean3] ...
- */
- private var dataBuffer:Object;
-
- // is this necessary!? can any reference to types[] be replaced with the keyset of displays?
- private var types:Array;
-
-
- ///////////////////////////
- // Private variables
- ///////////////////////////
-
- private var minfo:MBeanInfo;
- private var isInitialized:Boolean = false;
-
- /**
- * Map of ints, keeps track of how many mbeans of each type
- * we've received from the server when processing getting
- * data for any given type.
- */
- private var callbackCounters:Object;
-
-
- private var _displayTypesObject:Object;
-
- /**
- * Dictionary of callback handlers for remote call results
- * keyed by message correlationId.
- */
- private var callbackMap:Object;
- protected var callbacks:Object;
-
- // Keeps track whether a mbeanServer related fault is already handled .
- private var faultAlreadyHandled:Boolean = false;
-
- private var updateTimer:Object;
-
- private var hiddenDomains:Array = [ "flex.runtime.Console" ];
-
- ///////////////////////////
- // Public console instance vars
- ///////////////////////////
-
- private var _currentApp:String;
- public function set currentApp(name:String):void
- {
- _currentApp = name;
-
- for (var listener:* in listeners)
- {
- // Todo: Update listeners so that they can clear their data buffers.
- (listeners[listener].reference as UpdateListener).appChanged(name);
- }
- }
- public function get currentApp():String
- {
- if (_currentApp == null)
- {
- if ((mbeanModel[0] != null) && (mbeanModel[0].label != null))
- _currentApp = mbeanModel[0].label
- else
- return null
-
- }
- return _currentApp;
- }
-
- /**
- * Handle to the MBean Server remote object.
- */
- private var _mbeanServer:RemoteObject;
- public function get mbeanServer():RemoteObject
- {
- return _mbeanServer;
- }
-
- /**
- * The MBeanName for the currently selected MBean.
- */
- private var _currentMBeanName:String;
- public function get currentMBeanName():String
- {
- return _currentMBeanName;
- }
- public function set currentMBeanName(s:String):void
- {
- _currentMBeanName = s;
- }
-
- /**
- * The MBeanInfo for the currently selected MBean.
- */
- private var _currentMBeanInfo:MBeanInfo;
- public function get currentMBeanInfo():MBeanInfo
- {
- return _currentMBeanInfo;
- }
- public function set currentMBeanInfo(i:MBeanInfo):void
- {
- _currentMBeanInfo = i;
- }
-
- protected var _parent:DisplayObject
- public function set parent(p:DisplayObject):void
- {
- _parent = p;
- }
-
- public function set timerInterval(interval:int):void
- {
- if (interval > 0)
- {
- updateTimer.timer.stop();
- updateTimer.timer = new Timer(interval, 0);
- updateTimer.timer.addEventListener(TimerEvent.TIMER, pollServer);
- updateTimer.timer.start();
- }
- }
-
- protected static var privateCall:Boolean;
- protected static var instance:ConsoleManager;
-
-
- ////////////////////////////
- // Console methods
- ////////////////////////////
-
- public static function getInstance():ConsoleManager
- {
- if (instance == null)
- {
- privateCall = true;
- ConsoleManager.instance = new ConsoleManager();
- privateCall = false;
- }
-
- return ConsoleManager.instance;
- }
-
- /**
- * Initializes the console, and requests the names of
- * registered Flex MBeans.
- */
- public function ConsoleManager():void
- {
- if (!privateCall)
- throw new Error ("This is a Singleton Class!");
-
- // Create data structures used:
- _mbeanModel = [];
- callbacks = {};
- displays = {};
- listeners = {};
- dataBuffer = {};
- activeListeners = {};
- _displayTypesObject = {};
- callbackCounters = {};
- callbackCounters.dataFetch = {};
- callbackCounters.typeCount = 0;
- callbackCounters.appCount = 0;
-
- _mbeanServer = new RemoteObject("RuntimeManagement");
- _mbeanServer.addEventListener("result", handleResult);
- _mbeanServer.addEventListener("fault", handleFault);
-
- var token:Object = _mbeanServer.getFlexMBeanObjectNames();
- callbacks[token.message.messageId] = handleMBeanObjectNames;
- }
-
-
- public function setAttribute(mbean:String, attribute:String, newValue:Object):void
- {
- var attr:Attribute = new Attribute;
- attr.name = attribute;
- attr.value = newValue;
- mx.controls.Alert.show(attr.toString());
- _mbeanServer.setAttribute(mbean, attr);
- }
-
- /**
- * Register a display panel that implements the UpdateListener interface, passing
- * in an array, 'regtypes' which contains a list of every display type and
- * whether or not the type should be polled.
- */
- public function registerListener(listener:UpdateListener, regtypes:Array):void
- {
- listeners[listener.name] = {reference: listener, types: regtypes};
- }
-
- public function unregisterListener(listener:UpdateListener):void
- {
- if (listeners[listener.name])
- {
- deactivateListener(listener);
- delete listeners[listener.name];
- }
- }
-
- /**
- * When a listener is activated using this method, the types are found in the listeners
- * map and for each type:
- *
- * If polling is enabled, we add the listener to the activeListeners map for the types
- * it listens to.
- *
- * If polling is not enabled, we just poll the server once.
- */
- public function activateListener(listener:UpdateListener):void
- {
- var typesForListener:Array;
- try
- {
- typesForListener = listeners[listener.name].types;
- }
- catch (error:Error)
- {
- // nothing to do for this listener!
- }
-
- if (typesForListener == null)
- return;
-
- for (var i:int = 0; i < typesForListener.length; i++)
- {
- var type:int = typesForListener[i].type;
- getDataForType(type, listener);
-
- if (typesForListener[i].poll)
- {
- if (!activeListeners[type])
- {
- updateTimer.activeTypesCounter++;
- activeListeners[type] = new ArrayCollection;
- }
-
- (activeListeners[type] as ArrayCollection).addItem(listener);
-
- if (!updateTimer.timer.running)
- updateTimer.timer.start();
- }
- }
- }
-
- public function deactivateListener(listener:UpdateListener):void
- {
- // can't deactivate a non-registered listener!
- if (!listeners[listener.name])
- return;
-
- var typesForListener:Array = listeners[listener.name].types;
- if (typesForListener == null)
- return;
-
- for (var i:int = 0; i < typesForListener.length; i++)
- {
- var type:int = typesForListener[i].type;
- if (typesForListener[i].poll)
- {
- if (activeListeners[type])
- {
- var indexOfListener:int = (activeListeners[type] as ArrayCollection).getItemIndex(listener);
- if (indexOfListener != -1)
- (activeListeners[type] as ArrayCollection).removeItemAt(indexOfListener);
-
- if ((activeListeners[type] as ArrayCollection).length == 0)
- {
- delete activeListeners[type];
-
- if (--updateTimer.activeTypesCounter == 0)
- updateTimer.timer.stop();
- }
- }
- }
- }
- }
-
- public function addCallback(id:String, o:Object, f:Function):void
- {
- callbacks[id] = {object:o, callbackFunction:f};
- }
-
-
- public function getMBeanNamesForType(type:int):Array
- {
- if ((displays[type] == null) || (displays[type][_currentApp] == null))
- return new Array;
-
- return (displays[type][_currentApp] as Array);
- }
-
-
- public function getMBeanInfo(name:String, obj:Object, callback:Function):void
- {
- try
- {
- var token:Object = this.mbeanServer.getMBeanInfo(name);
- this.addCallback(token.message.messageId,this,callback);
- }
- catch (e:Error)
- {
- // Ignore runtime error - we get a Fault back from the RPC operation.
- }
- }
-
- /**
- * Invoke an operation on an MBean.
- */
- public function invokeOperation(e:ManagementOperationInvokeEvent, callback:Function = null):void
- {
- if (callback == null)
- {
- callback = handleInvoke
- }
-
- try
- {
- var token:Object = _mbeanServer.invoke(e.mbean, e.name, e.values, e.signature);
- callbacks[token.message.messageId] = callback;
- }
- catch (e:Error)
- {
- // Ignore runtime error - we get a Fault back from the RPC operation.
- }
- }
-
- /**
- * Request the current attribute values for an MBean.
- */
- public function getAllAttributes(name:String, info:MBeanInfo, obj:Object, callback:Function):void
- {
-
- // Fetch attribute values.
- var attribNames:Array = [];
- var n:int = info.attributes.length;
- for (var i:int = 0; i < n; ++i)
- {
- var attribInfo:MBeanAttributeInfo = info.attributes[i];
- // Ignore attributes that are MBean ObjectNames as all MBeans
- // are rendered in the global tree and don't need to be repeated
- // in the attributes this. Also ignore non-readable attributes.
- if (attribInfo.readable && (attribInfo.type.indexOf("ObjectName") == -1))
- {
- attribNames.push(attribInfo.name);
- }
- }
- if (attribNames.length)
- {
- getAttributes(name, attribNames, obj, callback);
- }
-
- }
-
- public function getAttributes(name:String, attribs:Array, obj:Object, callback:Function):void
- {
- try
- {
- var token:Object = _mbeanServer.getAttributes(name, attribs);
- this.addCallback(token.message.messageId, obj, callback);
- }
- catch (e:Error)
- {
- // Ignore runtime error - we get a Fault back from the RPC operation.
- }
- }
-
-
- public function getChildTrees(...children):Array
- {
- var ret:Array = new Array;
-
- for (var i:int = 0; i < children.length; i++)
- {
- if (children[i] is String)
- {
- (getChildTree(children[i]) as Array)
- .forEach(function(it:*, i:int, a:Array):void { ret.push(it); });
- }
- }
- return ret;
- }
-
- public function getChildTree(childName:String):Array
- {
- var appTree:Array;
- for each (var app:Object in _mbeanModel)
- {
- if (app.label == currentApp)
- {
- // The only child of an application is the MessageBroker _class_ which could
- // have multiple messagebrokerX _instances_ beneath it, but the
- // first is selected. (Thus the multiple [0].children references.)
- try
- {
- appTree = ((app.children as Array)[0].children as Array)[0].children as Array
- }
- catch (e:Error)
- {
- return new Array;
- }
- }
- }
-
- for each (var item:Object in appTree)
- {
- if (item.label == childName)
- return item.children as Array;
- }
-
- return new Array;
- }
-
- public function getTypesForAttribute(mbean:String, attr:String):Array
- {
- var types:Array = [];
- for (var type:* in displays)
- {
- if (displays[type][_currentApp] != null)
- {
- for (var b:String in displays[type][_currentApp])
- {
- if (mbean == b)
- {
- if ((displays[type][_currentApp][mbean] as Array).indexOf(attr) > -1)
- types.push(type);
- }
- }
- }
- }
-
- return types;
- }
-
- public function checkTypeForAttribute(type:int, mbean:String, attr:String):Boolean
- {
- if ((displays[type as String]) && (displays[type][_currentApp]) && (displays[type][_currentApp][mbean]))
- if ((displays[type][_currentApp][mbean] as Array).indexOf(attr) > -1)
- return true;
-
- return false;
- }
-
- public function updateData(listener:UpdateListener):void
- {
- var listenerObject:Object = listeners[listener.name];
- if (!listenerObject)
- return;
-
- for (var i:int = 0; i < (listenerObject.types as Array).length; i++)
- getDataForType((listenerObject.types as Array)[i].type, listener);
- }
-
- private function getDataForType(type:int, singleListener:UpdateListener = null):void
- {
- if (!isInitialized)
- {
- // if we don't have the display data yet, we'll re-query the server and get the mbean object names
- var objectnamesToken:Object = _mbeanServer.getFlexMBeanObjectNames();
- callbacks[objectnamesToken.message.messageId] = handleMBeanObjectNames;
-
- return;
- }
-
-
- if ((displays[type] == null) || (displays[type][_currentApp] == null))
- return
-
- // Dictionary of arrays keyed on mbeanName:the name of the
- // mbean, and the associated array is the attributes to query
- var mbeans:Object = new Object;
- var queryLength:int = 0;
-
- for (var mbean:String in displays[type][_currentApp])
- ++queryLength;
-
- for (var mbeanName:String in displays[type][_currentApp])
- {
- var token:Object = mbeanServer.getAttributes(currentApp+":"+mbeanName,
- (displays[type][_currentApp][mbeanName] as ArrayCollection).toArray());
-
- token.type = type;
- token.mbeanName = mbeanName;
- token.queryLength = queryLength;
- token.singleListener = singleListener;
- callbacks[token.message.messageId] = handleDataForType;
- }
- }
-
- private function handleDataForType(e:ResultEvent):void
- {
- var type:int = e.token.type as int;
- var mbeanName:String = e.token.mbeanName as String;
- var singleListener:UpdateListener = e.token.singleListener;
-
- if (!dataBuffer.hasOwnProperty(type))
- dataBuffer[type] = new Object;
-
- // Put the data for the mbean for the specific type of data in the proper place in the array
- if (dataBuffer[type].hasOwnProperty(mbeanName))
- delete dataBuffer[type][mbeanName];
-
- dataBuffer[type][mbeanName] = e.result as Array;
-
- if (!callbackCounters.dataFetch.hasOwnProperty(type)) callbackCounters.dataFetch[type] = 0;
-
- if (++callbackCounters.dataFetch[type] == e.token.queryLength)
- {
- callbackCounters.dataFetch[type] = 0;
-
- if (!singleListener)
- {
- var listenersToUpdate:ArrayCollection = activeListeners[type] as ArrayCollection;
-
- if (!listenersToUpdate)
- return;
-
- for (var i:int = 0; i < listenersToUpdate.length; i++)
- {
- (listenersToUpdate[i] as UpdateListener).dataUpdate(type, dataBuffer[type]);
- }
- }
- else
- {
- singleListener.dataUpdate(type, dataBuffer[type]);
- }
- }
- }
-
- /**
- * Handle any results from the MBean Server remote object by
- * delegating to the associated callback based on correlationId.
- */
- protected function handleResult(e:ResultEvent):void
- {
- var msg:AsyncMessage = AsyncMessage(e.message);
- if (msg.correlationId in callbacks)
- {
- var callback:Object = callbacks[msg.correlationId];
- delete callbacks[msg.correlationId];
- if (callback is Function)
- {
- callback(e);
- }
- else
- {
- if ((callback.hasOwnProperty("object")) && (callback.hasOwnProperty("callbackFunction")))
- {
- var f:Function = callback.callbackFunction;
- f.call(callback.object, e);
- }
- }
- }
- }
-
- /**
- * Handle any faults from the MBean Server remote object by
- * displaying an alert to the user.
- */
- protected function handleFault(e:FaultEvent):void
- {
- if (!faultAlreadyHandled)
- {
- mx.controls.Alert.show("Please restart the application since polling has stopped due to the following error: " + e.toString());
- if (updateTimer != null)
- {
- updateTimer.activeTypesCounter = 0;
- updateTimer.timer.stop();
- }
- faultAlreadyHandled = true;
- }
- }
-
- /**
- * Handles the result of a getFlexMBeanObjectNames() call.
- */
- protected function handleMBeanObjectNames(e:ResultEvent):void
- {
- var i:int;
- // Build the model for our MBeans.
- var mbeanNames:Array = e.result as Array;
- var domainNames:Array = [];
- var domainMBeanNames:Object = {};
- var mbeanName:ObjectName;
- var n:int = mbeanNames.length;
- if (n)
- {
- for (i = 0; i < n; ++i)
- {
- mbeanName = mbeanNames[i];
- if (hiddenDomains.indexOf(mbeanName.domain) >= 0)
- {
-
- }
- else if (mbeanName.domain in domainMBeanNames)
- {
- domainMBeanNames[mbeanName.domain].push(mbeanName);
- }
- else
- {
- domainNames.push(mbeanName.domain);
- domainMBeanNames[mbeanName.domain] = [mbeanName];
- }
- }
- _mbeanModel = [];
- domainNames.sort();
- callbackCounters.appCount = domainNames.length;
- var n2:int = domainNames.length;
- for (i = 0; i < n2; ++i)
- {
- buildDomain(domainNames[i], domainMBeanNames[domainNames[i]]);
-
- if (_displayTypesObject[domainNames[i]] != null)
- {
- var token:Object = _mbeanServer.getAttributes(
- _displayTypesObject[domainNames[i]].canonicalName, ["SupportedTypes"]);
-
- token.beanName = _displayTypesObject[domainNames[i]].canonicalName;
- addCallback(token.message.messageId, this, handleSupportedTypesMBean);
- }
- }
-
- }
- }
-
- /**
- * Process the display types that the server has registered. Another function
- * handles querying the MBean server for all of the actual attributes supported
- * by the given display type.
- */
- private function handleSupportedTypesMBean(e:ResultEvent):void
- {
- if ((e.result as Array)[0].name != "SupportedTypes")
- {
- return;
- }
-
- types = (e.result as Array)[0].value;
- callbackCounters.typeCount = types.length;
- for (var i:int = 0; i < types.length; i++)
- {
- var invokeEvent:ManagementOperationInvokeEvent = new ManagementOperationInvokeEvent(
- e.token.beanName,
- "listForType",
- [types[i]],
- ["int"]);
-
- invokeOperation(invokeEvent, getTypesHandler);
- }
- }
-
- /**
- * Handles the attribute _names_ for a given type which the server is sending
- */
- private function getTypesHandler(e:ResultEvent):void
- {
- --callbackCounters.typeCount;
-
- // Get the defined TYPE from the token
- var type:int = e.token.message.body[2][0];
-
- for each (var str:String in (e.result as Array))
- {
- var mbeanAttr:Array = str.split(":");
-
- if (!displays.hasOwnProperty(type))
- displays[type] = new Object;
-
- if (!displays[type].hasOwnProperty(mbeanAttr[0]))
- displays[type][mbeanAttr[0]] = new Object;
-
- var exposedObjectInfo:Object = new Object;
-
- if (!displays[type][mbeanAttr[0]].hasOwnProperty(mbeanAttr[1]))
- displays[type][mbeanAttr[0]][mbeanAttr[1]] = new ArrayCollection();
-
- (displays[type][mbeanAttr[0]][mbeanAttr[1]] as ArrayCollection).addItem(mbeanAttr[2]);
- }
-
- if (callbackCounters.typeCount == 0)
- {
- initialize();
- }
- }
-
- /**
- * Function for handling what to do after all of the necessary mbea
- * data has been polled for the first time.
- */
- private function initialize():void
- {
- // now we can poll for data based on a given display type
- isInitialized = true;
-
- // We've received and processed all of the display type information
- // so we can notify the listeners
- for each (var listener:Object in listeners)
- {
- (listener.reference as UpdateListener).mbeanModelUpdate(mbeanModel);
- }
-
- updateTimer = new Object;
-
- updateTimer.timer = new Timer(TIMER_INTERVAL);
- updateTimer.activeTypesCounter = 0;
- updateTimer.timer.addEventListener(TimerEvent.TIMER, pollServer);
- }
-
- private function pollServer(e:Event):void
- {
- for (var type:* in activeListeners)
- {
- getDataForType(type);
- }
- }
-
- /**
- * Builds a top level domain node containing all MBeans
- * within the domain.
- */
- private function buildDomain(domain:String, objectNames:Array):void
- {
- var domainNode:Object = {label: domain, children: []};
- // Process all of the MBean names in this domain.
- // Put them in sorted order to optimize tree construction.
- objectNames.sort(compareObjectNames);
- var n:int = objectNames.length;
- for (var i:int = 0; i < n; ++i)
- {
- buildMBeanNode(domainNode, objectNames[i]);
- }
- _mbeanModel.push(domainNode);
- }
-
- /**
- * Comparator function for sorting MBean object names.
- */
- private function compareObjectNames(first:ObjectName, second:ObjectName):int
- {
- var firstType:String = first.getKeyProperty("type").toLowerCase();
- var secondType:String = second.getKeyProperty("type").toLowerCase();
- if (firstType > secondType)
- return 1;
- else if (firstType < secondType)
- return -1;
- else // Types match - compare on id.
- {
- var firstId:String = first.getKeyProperty("id").toLowerCase();
- var secondId:String = second.getKeyProperty("id").toLowerCase();
- return (firstId > secondId) ? 1 : (firstId < secondId) ? -1 : 0;
- }
- }
-
- /**
- * Builds and adds a tree node based on the MBean object name.
- */
- private function buildMBeanNode(parent:Object, name:ObjectName):void
- {
- var types:Array = name.getKeyProperty("type").split('.');
- var mbeanId:String = name.getKeyProperty("id") as String;
- // Sink to our insertion point in the type hierarchy, adding type nodes
- // along the way when necessary.
- var n:int = types.length;
- for (var i:int = 0; i < n; ++i)
- {
- if (types[i] == "AdminConsoleDisplay")
- {
- var app:String = ((name.canonicalName as String).split(":") as Array)[0];
- _displayTypesObject[app] = name;
- return;
- }
- }
-
- for (i = 0; i < n; ++i)
- {
- var createChildType:Boolean = true;
- if (parent.children.length)
- {
- // Search for a child matching on current type. This is a linear search,
- // but there generally aren't enough child nodes to warrant anything more performant.
- var children:Array = parent.children;
- var node:Object;
- var n2:int = children.length;
- for (var j:int = 0; j < n2; ++j)
- {
- node = children[j];
- if (node.hasOwnProperty("type") && node.type == types[i])
- {
- parent = children[j];
- createChildType = false;
- // Check whether the parent type (container) node contains a child MBean node
- // that matches on id. This is the ancestor MBean instance, out of all ancestors
- // of this current type, that we're parented under.
- // Again, a linear search because there generally aren't enough siblings of a
- // given type to warrant anything more performant.
- if (parent.children.length)
- {
- children = parent.children;
- var n3:int = children.length;
- for (var k:int = 0; k < n3; ++k)
- {
- node = children[k];
- if (node.hasOwnProperty("objectName") &&
- (node.objectName.getKeyProperty("id") == name.getKeyProperty(types[i])))
- {
- parent = node;
- }
- }
- }
- break;
- }
- }
- }
- if (createChildType)
- {
- node = {label: types[i], type: types[i], children: []};
- parent.children.push(node);
- parent = node;
- }
- }
- // We're done generating the ancestor hierarchy.
- // Insert the MBean node.
- if (parent.children.length)
- {
- // Simple linear search for insertion point among siblings for now.
- var siblings:Array = parent.children;
- var id:String = mbeanId.toLowerCase();
- node;
- n = siblings.length;
- for (i = 0; i < n; ++i)
- {
- node = siblings[i];
- if (node.hasOwnProperty("objectName") &&
- (node.objectName.getKeyProperty("id").toLowerCase() > id))
- {
- mbeanNode = {label: mbeanId, objectName: name, children: []};
- if (i == siblings.length)
- siblings.push(mbeanNode);
- else
- siblings.splice(i+1, 0, mbeanNode);
- return;
- }
- }
- }
- // Add the MBean node without specifying an index; no insertion point was found for it.
- var mbeanNode:Object = {label: mbeanId, objectName: name, children: []};
- parent.children.push(mbeanNode);
- }
-
-
-
- /**
- * Handles the result of invoke().
- */
- private function handleInvoke(e:ResultEvent):void
- {
- if (_parent)
- {
- var resultWindow:ConsoleResultWindow = ConsoleResultWindow(PopUpManager.createPopUp(_parent, ConsoleResultWindow, false));
- PopUpManager.centerPopUp(resultWindow);
- if (e.result != null)
- {
- resultWindow.showResult(e.result);
- }
- else // A null result indicates success with a void return type.
- {
- resultWindow.showSuccess();
- }
- }
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/ConsoleTreeDataDescriptor.as
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/ConsoleTreeDataDescriptor.as b/apps/ds-console/console/ConsoleTreeDataDescriptor.as
deleted file mode 100755
index 50e4a57..0000000
--- a/apps/ds-console/console/ConsoleTreeDataDescriptor.as
+++ /dev/null
@@ -1,70 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 console {
-
-import mx.collections.ArrayCollection;
-import mx.collections.ICollectionView;
-import mx.controls.treeClasses.ITreeDataDescriptor;
-
-public class ConsoleTreeDataDescriptor implements ITreeDataDescriptor {
-
- public function getChildren(node:Object, model:Object=null):ICollectionView
- {
- if (node == null)
- return null;
- else if (node.hasOwnProperty("children") && (node.children.length > 0))
- return new ArrayCollection(node.children);
- else
- return null;
- }
-
- public function hasChildren(node:Object, model:Object=null):Boolean
- {
- return true;
- }
-
-
- public function isBranch(node:Object, model:Object=null):Boolean
- {
- if (node == null)
- return false;
- else
- return (node.hasOwnProperty("children") && (node.children.length > 0)) ? true : false;
- }
-
- public function getData(node:Object, model:Object=null):Object
- {
- return node;
- }
-
-
- public function addChildAt(node:Object, child:Object, index:int, model:Object=null):Boolean
- {
- return true;
- }
-
- public function removeChildAt(node:Object, child:Object, index:int, model:Object=null):Boolean
- {
- return true;
- }
-
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/containers/AdvancedPanel.as
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/containers/AdvancedPanel.as b/apps/ds-console/console/containers/AdvancedPanel.as
deleted file mode 100755
index 9140987..0000000
--- a/apps/ds-console/console/containers/AdvancedPanel.as
+++ /dev/null
@@ -1,169 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 console.containers
-{
- import console.ConsoleManager;
- import console.containers.*;
- import console.events.*;
- import mx.collections.ListCollectionView;
- import mx.rpc.events.ResultEvent;
- import mx.messaging.management.MBeanInfo;
- import mx.messaging.management.MBeanAttributeInfo;
- import mx.events.*;
- import mx.controls.Tree;
- import mx.controls.DataGrid;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import mx.containers.Box;
-
- public class AdvancedPanel extends UpdateListener
- {
- private var display:AdvancedPanelDisplay;
- private var _manager:ConsoleManager;
- private var _currentMBeanName:String;
- private var _currentMBeanInfo:MBeanInfo;
-
- public function AdvancedPanel():void
- {
- super();
- initialize();
-
- percentWidth = 100;
- percentHeight = 100;
-
- display = new AdvancedPanelDisplay();
- this.addChild(display);
-
- label = "Generic Administration View";
-
- display.mbeanTree.addEventListener(ListEvent.CHANGE, manageMBean);
- display.attributeGrid.addEventListener(ListEvent.CHANGE, showSelectedValue);
- display.refreshButton.addEventListener(MouseEvent.CLICK, handleRefreshClick);
- display.operationsUI.tabnav = display.main;
-
- _manager = ConsoleManager.getInstance();
- _manager.registerListener(this, []);
- display.operationsUI.addEventListener(ManagementOperationInvokeEvent.INVOKE, _manager.invokeOperation);
- }
-
- public override function mbeanModelUpdate(model:Object):void
- {
- display.mbeanTree.dataProvider = model;
- }
-
- /**
- * Exposes a selected MBean for management.
- */
- private function manageMBean(e:Event):void
- {
- var node:Object = display.mbeanTree.selectedItem;
- if (node && node.hasOwnProperty("objectName"))
- {
- _currentMBeanName = node["objectName"].canonicalName;
- display.mbeanNameText.text = _currentMBeanName;
- _manager.getMBeanInfo(_currentMBeanName, this, handleMBeanInfo);
- }
- }
-
- /**
- * Handles the result of getMBeanInfo().
- */
- public function handleMBeanInfo(e:ResultEvent):void
- {
- _currentMBeanInfo = MBeanInfo(e.result);
- // Update string descriptions for the selected MBean.
- display.mbeanClassText.text = _currentMBeanInfo.className;
- display.mbeanDescriptionText.text = _currentMBeanInfo.description;
- display.mbeanInfoOutput.text = _currentMBeanInfo.toString();
- // Update the Operations tab.
- display.operationsUI.mbeanInfo = _currentMBeanInfo;
- display.operationsUI.mbeanName = _currentMBeanName;
- // Fetch current attribute values for the selected MBean.
- // Clear out currently selected attribute value.
- display.selectedValueText.text = "";
-
- if (_currentMBeanInfo.attributes.length)
- {
- _manager.getAllAttributes(_currentMBeanName, _currentMBeanInfo, this, handleAttributes);
- }
- }
-
- /**
- * Handles the refresh button click.
- */
- private function handleRefreshClick(event:MouseEvent):void
- {
- refreshAttributes();
- }
-
- /**
- * Refreshes the displayed attribute values for the currently selected MBean.
- */
- private function refreshAttributes():void
- {
- if (_currentMBeanInfo != null)
- {
- _manager.getAllAttributes(_currentMBeanName, _currentMBeanInfo, this, handleAttributes);
- }
- }
-
- /**
- * Handles the result of getAttributes().
- */
- private function handleAttributes(e:ResultEvent):void
- {
- var attribs:Array = e.result as Array;
- var attribLength:int = attribs.length;
- display.attributeGrid.dataProvider = e.result;
- // Show selected item value.
- var index:int = display.attributeGrid.selectedIndex;
- if (index != -1)
- {
- var item:Object = ListCollectionView(display.attributeGrid.dataProvider).getItemAt(index);
- if ((item != null) && (item.value != null))
- {
- display.selectedValueText.text = item.value.toString();
- }
- }
- else
- {
- display.selectedValueText.text = "";
- }
- }
-
-
- /**
- * Hack function to show the selected grid value - we should get rid of this with
- * a nice attributes grid that renders values nicely in a selectable fashion.
- */
- private function showSelectedValue(e:Event):void
- {
- var value:Object = DataGrid(e.target).selectedItem.value;
- if (value != null)
- {
- display.selectedValueText.text = value.toString();
- }
- else
- {
- display.selectedValueText.text = "null";
- }
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/containers/AdvancedPanelDisplay.mxml
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/containers/AdvancedPanelDisplay.mxml b/apps/ds-console/console/containers/AdvancedPanelDisplay.mxml
deleted file mode 100755
index 213e4a3..0000000
--- a/apps/ds-console/console/containers/AdvancedPanelDisplay.mxml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- 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.
-
--->
-<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:console="console.containers.*" xmlns="*" width="100%" height="100%">
-
- <mx:HDividedBox width="100%" height="100%">
-
- <mx:VBox height="100%" width="300">
- <mx:Label text="MBeans"/>
- <mx:Tree id="mbeanTree" height="100%" width="100%" />
- </mx:VBox>
-
- <mx:VBox id="mbeanDetails" height="100%" width="100%">
-
- <mx:HBox width="100%">
- <mx:Label text="Name: "/>
- <mx:Text id="mbeanNameText" width="100%" selectable="true"/>
- </mx:HBox>
-
- <mx:TabNavigator id="main" creationPolicy="all" width="100%" height="100%" tabWidth="150">
-
- <mx:VBox label="Attributes" width="100%" height="100%">
- <mx:HBox width="100%">
- <mx:Label text="Selected Value: "/>
- <mx:Text id="selectedValueText" text="" width="100%" selectable="true" />
- </mx:HBox>
- <mx:DataGrid id="attributeGrid" width="100%" height="100%" />
- <mx:Button label="Refresh" id="refreshButton" />
- </mx:VBox>
-
- <mx:VBox label="Operations" id="operationTab" width="100%" height="100%">
- <console:OperationSet id="operationsUI" />
- </mx:VBox>
-
- <mx:VBox label="Info" width="100%" height="100%" >
- <mx:HBox width="100%">
- <mx:Label text="MBean Class:"/>
- <mx:Text id="mbeanClassText" width="100%" selectable="true"/>
- </mx:HBox>
- <mx:HBox width="100%">
- <mx:Label text="Description:" />
- <mx:Text id="mbeanDescriptionText" width="100%" selectable="true"/>
- </mx:HBox>
- <mx:TextArea id="mbeanInfoOutput" height="100%" width="100%"/>
- </mx:VBox>
-
- </mx:TabNavigator>
-
- </mx:VBox>
-
- </mx:HDividedBox>
-
-</mx:Box>
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/containers/DefaultPanel.as
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/containers/DefaultPanel.as b/apps/ds-console/console/containers/DefaultPanel.as
deleted file mode 100755
index 9b3bf0c..0000000
--- a/apps/ds-console/console/containers/DefaultPanel.as
+++ /dev/null
@@ -1,41 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 console.containers
-{
- import console.ConsoleManager;
- import mx.containers.Panel;
- import flash.events.Event;
-
- public class DefaultPanel extends UpdateListener
- {
- private var display:DefaultPanelDisplay;
-
- public function DefaultPanel():void
- {
- super();
- display = new DefaultPanelDisplay;
- this.addChild(display);
- label = "Console";
-
- // No data is ever used, but to ensure compatibility with the rest of
- // the app this panel still registers with the ConsoleManager
- ConsoleManager.getInstance().registerListener(this, []);
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/bf2e1dc9/apps/ds-console/console/containers/DefaultPanelDisplay.mxml
----------------------------------------------------------------------
diff --git a/apps/ds-console/console/containers/DefaultPanelDisplay.mxml b/apps/ds-console/console/containers/DefaultPanelDisplay.mxml
deleted file mode 100755
index 16b3bea..0000000
--- a/apps/ds-console/console/containers/DefaultPanelDisplay.mxml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- 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.
-
--->
-<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
- <mx:TextArea width="100%" height="20%" editable="false" enabled="true" fontSize="12" paddingLeft="10" paddingRight="10">
- <mx:htmlText>
- <![CDATA[
- <font size="18">Welcome to the <strong>Administration Console</font><br />
- Get started by choosing a panel in the tab navigation above.<br />
- ]]>
- </mx:htmlText>
- </mx:TextArea>
-</mx:VBox>