[jboss-svn-commits] JBL Code SVN: r10011 - in labs/jbossesb/trunk/product: tools and 33 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 7 05:10:16 EST 2007


Author: mark.little at jboss.com
Date: 2007-03-07 05:10:16 -0500 (Wed, 07 Mar 2007)
New Revision: 10011

Added:
   labs/jbossesb/trunk/product/tools/
   labs/jbossesb/trunk/product/tools/configeditor/
   labs/jbossesb/trunk/product/tools/configeditor/editor/
   labs/jbossesb/trunk/product/tools/configeditor/editor/ESBConfigEditor.swf
   labs/jbossesb/trunk/product/tools/configeditor/editor/README.txt
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/.cvsignore
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/DownloadServlet.class
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/UploadServlet.class
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/jboss-web.xml
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/lib/
   labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/web.xml
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/DownloadServlet.class
   labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/UploadServlet.class
   labs/jbossesb/trunk/product/tools/configeditor/editor/build.xml
   labs/jbossesb/trunk/product/tools/configeditor/editor/dist/
   labs/jbossesb/trunk/product/tools/configeditor/editor/dist/configapp.war
   labs/jbossesb/trunk/product/tools/configeditor/editor/docs/
   labs/jbossesb/trunk/product/tools/configeditor/editor/docs/JBossESBConfigEditor.pdf
   labs/jbossesb/trunk/product/tools/configeditor/editor/javax.servlet.jar
   labs/jbossesb/trunk/product/tools/configeditor/editor/jboss-system.jar
   labs/jbossesb/trunk/product/tools/configeditor/editor/resources/
   labs/jbossesb/trunk/product/tools/configeditor/editor/resources/action-templates.xml
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/DownloadServlet.java
   labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/UploadServlet.java
   labs/jbossesb/trunk/product/tools/configeditor/flex/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.actionScriptProperties
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.flexProperties
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.project
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.settings/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.settings/org.eclipse.core.resources.prefs
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/ESBConfigEditor.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/AC_OETags.js
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.htm
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.js
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.swf
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/index.template.html
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/playerProductInstall.swf
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/OSX.css
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/appleDesktop.jpg
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/lucidaGrande.swf
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ActionsPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/BusesPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/CreatePropertyWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ListenersPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoProviderPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoServicePanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertiesPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertyItemRenderer.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProviderPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProvidersPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServerPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicePanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicesPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlPaster.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlViewer.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/CreateProviderWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileBusWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileProviderPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpBusWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpProviderPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsBusWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsProviderPanel.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateActionWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateListenerWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateServiceWindow.mxml
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.actionScriptProperties
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.flexLibProperties
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.project
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.settings/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.settings/org.eclipse.core.resources.prefs
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESB.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESBModel.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/ServerManager.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Namespaces.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Property.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/XmlUtils.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Bus.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileBus.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileMessageFilter.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileProvider.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpBus.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpMessageFilter.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpProvider.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsBus.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsMessageFilter.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsProvider.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Provider.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Action.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/ActionTemplateManager.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FileListener.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FtpListener.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/JmsListener.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Listener.as
   labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Service.as
   labs/jbossesb/trunk/product/tools/console/
   labs/jbossesb/trunk/product/tools/console/.classpath
   labs/jbossesb/trunk/product/tools/console/.exploded.launch
   labs/jbossesb/trunk/product/tools/console/.project
   labs/jbossesb/trunk/product/tools/console/build.properties
   labs/jbossesb/trunk/product/tools/console/build.xml
   labs/jbossesb/trunk/product/tools/console/distro/
   labs/jbossesb/trunk/product/tools/console/embedded-ejb/
   labs/jbossesb/trunk/product/tools/console/lib/
   labs/jbossesb/trunk/product/tools/console/nbproject/
   labs/jbossesb/trunk/product/tools/console/resources/
   labs/jbossesb/trunk/product/tools/console/src/
   labs/jbossesb/trunk/product/tools/console/test/
   labs/jbossesb/trunk/product/tools/console/view/
Removed:
   labs/jbossesb/trunk/product/console/
   labs/jbossesb/trunk/product/tools/console/.classpath
   labs/jbossesb/trunk/product/tools/console/.exploded.launch
   labs/jbossesb/trunk/product/tools/console/.project
   labs/jbossesb/trunk/product/tools/console/build.properties
   labs/jbossesb/trunk/product/tools/console/build.xml
   labs/jbossesb/trunk/product/tools/console/distro/
   labs/jbossesb/trunk/product/tools/console/embedded-ejb/
   labs/jbossesb/trunk/product/tools/console/lib/
   labs/jbossesb/trunk/product/tools/console/nbproject/
   labs/jbossesb/trunk/product/tools/console/resources/
   labs/jbossesb/trunk/product/tools/console/src/
   labs/jbossesb/trunk/product/tools/console/test/
   labs/jbossesb/trunk/product/tools/console/view/
Modified:
   labs/jbossesb/trunk/product/build.xml
Log:
http://jira.jboss.com/jira/browse/JBESB-449

Modified: labs/jbossesb/trunk/product/build.xml
===================================================================
--- labs/jbossesb/trunk/product/build.xml	2007-03-07 09:51:06 UTC (rev 10010)
+++ labs/jbossesb/trunk/product/build.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -28,7 +28,8 @@
 	<!-- Exclude from javadocs -->
 	<property name="org.jboss.esb.javadocs.exclude" value="org.jboss.soa.esb.internal.*, org.jboss.soa.esb.services.beans.*"/>
 	
-	<property name="console.dir" value="console"/>
+	<property name="console.dir" value="tools/console"/>
+	<property name="editor.dir" value="tools/configeditor/editor"/>
 	
 	<!-- Compile with debugging? -->
 	<property name="org.jboss.esb.debug" value="yes"/>
@@ -225,6 +226,16 @@
 		
 		<echo message="Installed EULA"/>
 		<copy file="../JBossORG-EULA.txt" todir="${org.jboss.esb.installationdirectory}"/>
+		
+		<echo message="Installing tools ${org.jboss.esb.installationdirectory}/tools"/>
+				<mkdir dir="${org.jboss.esb.installationdirectory}/tools"/>
+		<mkdir dir="${org.jboss.esb.installationdirectory}/tools/configeditor"/>
+		<mkdir dir="${org.jboss.esb.installationdirectory}/tools/configeditor/resources"/>
+		<mkdir dir="${org.jboss.esb.installationdirectory}/tools/configeditor/dist"/>
+		
+		<copy file="tools/configeditor/editor/dist/configapp.war" todir="${org.jboss.esb.installationdirectory}/tools/configeditor/dist"/>
+		<copy file="tools/configeditor/editor/resources/action-templates.xml" todir="${org.jboss.esb.installationdirectory}/tools/configeditor/resources"/>
+		<copy file="tools/configeditor/editor/README.txt" todir="${org.jboss.esb.installationdirectory}/tools/configeditor"/>
 	</target>
 
 	<!-- produce a product distribution -->
@@ -282,6 +293,9 @@
 				</fileset>
 			</copy>
 		
+			<mkdir dir="${org.jboss.esb.installationdirectory}/docs/tools"/>
+			<copy file="tools/configeditor/editor/docs/JBossESBConfigEditor.pdf" todir="${org.jboss.esb.installationdirectory}/docs/tools"/>
+		
 		<mkdir dir="${org.jboss.esb.installationdirectory}/docs/services"/>
 					<copy
 						todir="${org.jboss.esb.installationdirectory}/docs/services"
@@ -308,8 +322,11 @@
 	<target name="org.jboss.esb.tools">
 		<!-- Build the admin console webapp. -->
 		<ant dir="${console.dir}" target="dist">
-			<property name="install.tools.dir" value="${org.jboss.esb.installationdirectory}/tools"/>
+			<property name="install.tools.dir" value="${org.jboss.esb.installationdirectory}/tools/console"/>
 		</ant>
+		<!-- Build the configuration editor. -->
+		<ant dir="${editor.dir}" target="build-war">
+		</ant>
 	</target>
 	
 	<!-- Clean targets -->

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/ESBConfigEditor.swf
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/ESBConfigEditor.swf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/README.txt
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/README.txt	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/README.txt	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,3 @@
+Install the resources/action-templates.xml into your JBossAS conf directory.
+
+Install the war into the JBossAS deploy directory.
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/.cvsignore
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/.cvsignore	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/.cvsignore	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1 @@
+org

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/DownloadServlet.class
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/DownloadServlet.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/UploadServlet.class
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/classes/org/jboss/configapp/UploadServlet.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/jboss-web.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/jboss-web.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/jboss-web.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,3 @@
+<jboss-web>
+  <context-root>esbconfig</context-root>
+</jboss-web>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/WEB-INF/web.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!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>JBossESB Config Editor</display-name>
+	<description>
+		This WAR contains servlets for uploading and downloading the
+		JBossESB configuration file. The included Flex application uses
+		the servlets to read and write the configuration after a user
+		makes updates in the interface.
+	</description>
+
+	<!-- Servlet for downloading the JBossESB configuration file. -->
+	<servlet>
+		<servlet-name>DownloadConfig</servlet-name>
+		<servlet-class>
+			org.jboss.configapp.DownloadServlet
+		</servlet-class>
+	</servlet>
+
+	<!-- Servlet for uploading the JBossESB configuration file. -->
+	<servlet>
+		<servlet-name>UploadConfig</servlet-name>
+		<servlet-class>org.jboss.configapp.UploadServlet</servlet-class>
+	</servlet>
+
+	<servlet-mapping>
+		<servlet-name>DownloadConfig</servlet-name>
+		<url-pattern>/download</url-pattern>
+	</servlet-mapping>
+
+	<servlet-mapping>
+		<servlet-name>UploadConfig</servlet-name>
+		<url-pattern>/upload</url-pattern>
+	</servlet-mapping>
+
+</web-app>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/DownloadServlet.class
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/DownloadServlet.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/UploadServlet.class
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/bin/org/jboss/configapp/UploadServlet.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/build.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/build.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/build.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,33 @@
+<project name="ESBConfig" default="build-war" basedir=".">
+
+	<property name="src.dir" value="${basedir}/src" />
+	<property name="dist.dir" value="${basedir}/dist" />
+	<property name="webinf.dir" value="${basedir}/WEB-INF" />
+	<property name="classes.dir" value="${webinf.dir}/classes" />
+	<property name="lib.dir" value="${webinf.dir}/lib" />
+	
+	<path id="project.class.path">
+		<fileset dir="${basedir}">
+			<include name="*.jar"/>
+		</fileset>
+	</path>
+
+	<target name="prepare">
+		<mkdir dir="${dist.dir}" />
+	</target>
+
+	<target name="compile">
+		<javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.5" classpathref="project.class.path" />
+	</target>
+
+	<target name="build-war" depends="prepare, compile">
+
+		<war destfile="${dist.dir}/configapp.war" webxml="${webinf.dir}/web.xml">
+			<fileset dir="${basedir}" includes="**/jboss-web.xml" />
+			<fileset dir="${basedir}" includes="**/*.swf" />
+			<lib dir="${lib.dir}" />
+			<classes dir="${classes.dir}" />
+		</war>
+
+	</target>
+</project>

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/dist/configapp.war
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/dist/configapp.war
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/docs/JBossESBConfigEditor.pdf
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/docs/JBossESBConfigEditor.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/javax.servlet.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/javax.servlet.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/jboss-system.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/editor/jboss-system.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/resources/action-templates.xml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/resources/action-templates.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/resources/action-templates.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,23 @@
+<action-templates xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd">
+	<action name="ContentBasedRouter" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+	  <property name="ruleSet" value="MyESBRules-XPath.drl"/>
+	  <property name="ruleLanguage" value="XPathLanguage.dsl"/>
+	  <property name="ruleReload" value="true"/>
+	  <property name="destinations" value="">
+	    <route-to destination-name="xxx" service-category="yyy" service-name="zzz"/>
+	  </property>
+	</action>
+	<action name="Notifier" class="org.jboss.soa.esb.actions.Notifier">
+	  <property name="okMethod" value="notifyOK"/>
+	  <property name="notification-details">
+	    <NotificationList type="OK">
+	      <target class="NotifyConsole"/>
+	      <target class="NotifyQueues">
+          <queue jndiName="queuename">
+            <messageProp name="propname" value="propvalue"/>
+          </queue>
+	      </target>
+	    </NotificationList>
+	  </property>
+	</action>
+</action-templates>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/DownloadServlet.java
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/DownloadServlet.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/DownloadServlet.java	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,90 @@
+package org.jboss.configapp;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.system.server.ServerConfig;
+import org.jboss.system.server.ServerConfigLocator;
+
+/**
+ * Allows the JBossESB config file (jbossesb.xml) to be downloaded via the web.
+ * 
+ * @author Derek Adams
+ */
+public class DownloadServlet extends HttpServlet {
+
+	/** Serial version UID */
+	private static final long serialVersionUID = 1L;
+
+	/** Parameter name for choosing file to download */
+	private static final String FILE_PARAM = "file";
+
+	/** Parameter name for choosing file to download */
+	private static final String ACTIONS_INDICATOR = "actions";
+
+	/** Filename for JBossESB config */
+	private static final String CONFIG_FILENAME = "jbossesb.xml";
+
+	/** Filename for JBossESB action templates */
+	private static final String ACTIONS_FILENAME = "action-templates.xml";
+
+	/** Size of read buffer in bytes */
+	private static final int BUFFER_SIZE = 1024;
+
+	@Override
+	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+			IOException {
+		// Locate the config file.
+		ServerConfig config = ServerConfigLocator.locate();
+		File confDir = new File(config.getServerConfigURL().getFile());
+		File sourceFile;
+		
+		// Use parameter to choose file to load.
+		String fileParam = request.getParameter(FILE_PARAM);
+		if ((fileParam != null) && (fileParam.equals(ACTIONS_INDICATOR))) {
+			sourceFile = new File(confDir, ACTIONS_FILENAME);
+		} else {
+			sourceFile = new File(confDir, CONFIG_FILENAME);
+		}
+
+		// Get the output stream and mime type.
+		ServletOutputStream out = response.getOutputStream();
+		ServletContext context = getServletConfig().getServletContext();
+		String mimetype = context.getMimeType(CONFIG_FILENAME);
+
+		// Set the headers.
+		response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");
+		response.setContentLength((int) sourceFile.length());
+		response.setHeader("Content-Disposition", "attachement; filename=\"" + CONFIG_FILENAME + "\"");
+
+		DataInputStream in = null;
+		try {
+			byte[] bbuf = new byte[BUFFER_SIZE];
+			in = new DataInputStream(new FileInputStream(sourceFile));
+
+			int length = 0;
+			while ((in != null) && ((length = in.read(bbuf)) != -1)) {
+				out.write(bbuf, 0, length);
+			}
+		} finally {
+			try {
+				if (in != null) {
+					in.close();
+				}
+			} catch (IOException e) {
+			}
+		}
+
+		out.flush();
+		out.close();
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/UploadServlet.java
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/UploadServlet.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/editor/src/org/jboss/configapp/UploadServlet.java	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,59 @@
+package org.jboss.configapp;
+
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.system.server.ServerConfig;
+import org.jboss.system.server.ServerConfigLocator;
+
+public class UploadServlet extends HttpServlet {
+
+	/** Serial version UID */
+	private static final long serialVersionUID = 1L;
+
+	/** Filename for JBossESB config */
+	private static final String CONFIG_FILENAME = "jbossesb.xml";
+
+	/** Size of read buffer in bytes */
+	private static final int BUFFER_SIZE = 1024;
+
+	@SuppressWarnings("unchecked")
+	@Override
+	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+			IOException {
+
+		// Locate the config file.
+		ServerConfig config = ServerConfigLocator.locate();
+		File confDir = new File(config.getServerConfigURL().getFile());
+		File esbconfig = new File(confDir, CONFIG_FILENAME);
+
+		DataInputStream input = null;
+		FileOutputStream output = new FileOutputStream(esbconfig);
+		try {
+			byte[] bbuf = new byte[BUFFER_SIZE];
+			input = new DataInputStream(request.getInputStream());
+
+			int length = 0;
+			while ((input != null) && ((length = input.read(bbuf)) != -1)) {
+				output.write(bbuf, 0, length);
+			}
+		} finally {
+			try {
+				if (input != null) {
+					input.close();
+				}
+				if (output != null) {
+					output.close();
+				}
+			} catch (IOException e) {
+			}
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.actionScriptProperties
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.actionScriptProperties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.actionScriptProperties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actionScriptProperties version="1" mainApplicationPath="ESBConfigEditor.mxml">
+  <compiler additionalCompilerArguments="-locale en_US" copyDependentFiles="true" generateAccessible="false" strict="true" warn="true" htmlGenerate="true" htmlPlayerVersionCheck="true" htmlPlayerVersion="9.0.0" htmlExpressInstall="true" htmlHistoryManagement="true" outputFolderPath="bin">
+    <compilerSourcePath/>
+    <libraryPath>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/playerglobal.swc" linkType="2"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/utilities.swc" linkType="1"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/flex.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/framework.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/rpc.swc" linkType="1"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/charts.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="1" path="${FRAMEWORKS}/locale/{locale}" linkType="1"/>
+      <libraryPathEntry kind="3" path="/ESBConfigModel/bin/ESBConfigModel.swc" linkType="1" sourcepath="/ESBConfigModel"/>
+    </libraryPath>
+    <sourceAttachmentPath>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/flex.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/framework.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/charts.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <sourceAttachmentPathEntry kind="3" path="/ESBConfigModel/bin/ESBConfigModel.swc" linkType="1" sourcepath="/ESBConfigModel"/>
+    </sourceAttachmentPath>
+  </compiler>
+  <applications>
+    <application path="ESBConfigEditor.mxml"/>
+  </applications>
+  <buildCSSFiles/>
+</actionScriptProperties>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.flexProperties
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.flexProperties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.flexProperties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<flexProperties version="1" toolCompile="true" flexServerType="0"/>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.project
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.project	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.project	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ESBConfigEditor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.adobe.flexbuilder.project.flexbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.adobe.flexbuilder.project.flexnature</nature>
+		<nature>com.adobe.flexbuilder.project.actionscriptnature</nature>
+	</natures>
+</projectDescription>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.settings/org.eclipse.core.resources.prefs
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.settings/org.eclipse.core.resources.prefs	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/.settings/org.eclipse.core.resources.prefs	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,3 @@
+#Fri Feb 16 16:35:52 EST 2007
+eclipse.preferences.version=1
+encoding/<project>=utf-8

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/ESBConfigEditor.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/ESBConfigEditor.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/ESBConfigEditor.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" 
+	xmlns:view="view.*" horizontalAlign="left" xmlns:model="model.*" xmlns:services="model.services.*"
+	creationComplete="ServerManager.startDownload();">
+
+	<mx:Style source="styles/OSX.css"/>
+	
+	<!-- Singleton model instance -->
+	<model:JBossESBModel id="JBESB"/>
+	
+	<!-- Singleton server manager instance -->
+	<model:ServerManager id="ServerManager" jmodel="{JBESB}"/>
+	
+	<!-- Singleton manager for action templates -->
+	<services:ActionTemplateManager id="TemplateManager" jmodel="{JBESB}"/>
+	
+	<mx:VBox width="100%" height="100%" verticalGap="0">
+		<mx:TabBar dataProvider="{Pages}"/>
+		<mx:ViewStack id="Pages" width="100%" height="100%">
+			<view:ProvidersPanel width="100%" height="100%" label="Providers" jmodel="{JBESB}"
+				selectedProvider="{JBESB.selectedProvider}"/>
+			<view:ServicesPanel width="100%" height="100%" label="Services" jmodel="{JBESB}"
+				selectedService="{JBESB.selectedService}"/>
+			<view:ServerPanel width="100%" height="100%" label="Server" jmodel="{JBESB}"
+				templateManager="{TemplateManager}" serverManager="{ServerManager}"/>
+		</mx:ViewStack>
+	</mx:VBox>
+	
+</mx:Application>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/AC_OETags.js
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/AC_OETags.js	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/AC_OETags.js	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,269 @@
+// Flash Player Version Detection - Rev 1.5
+// Detect Client Browser type
+// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
+var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
+var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
+var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
+
+function ControlVersion()
+{
+	var version;
+	var axo;
+	var e;
+
+	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
+
+	try {
+		// version will be set for 7.X or greater players
+		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
+		version = axo.GetVariable("$version");
+	} catch (e) {
+	}
+
+	if (!version)
+	{
+		try {
+			// version will be set for 6.X players only
+			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
+			
+			// installed player is some revision of 6.0
+			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
+			// so we have to be careful. 
+			
+			// default to the first public version
+			version = "WIN 6,0,21,0";
+
+			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
+			axo.AllowScriptAccess = "always";
+
+			// safe to call for 6.0r47 or greater
+			version = axo.GetVariable("$version");
+
+		} catch (e) {
+		}
+	}
+
+	if (!version)
+	{
+		try {
+			// version will be set for 4.X or 5.X player
+			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+			version = axo.GetVariable("$version");
+		} catch (e) {
+		}
+	}
+
+	if (!version)
+	{
+		try {
+			// version will be set for 3.X player
+			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
+			version = "WIN 3,0,18,0";
+		} catch (e) {
+		}
+	}
+
+	if (!version)
+	{
+		try {
+			// version will be set for 2.X player
+			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
+			version = "WIN 2,0,0,11";
+		} catch (e) {
+			version = -1;
+		}
+	}
+	
+	return version;
+}
+
+// JavaScript helper required to detect Flash Player PlugIn version information
+function GetSwfVer(){
+	// NS/Opera version >= 3 check for Flash plugin in plugin array
+	var flashVer = -1;
+	
+	if (navigator.plugins != null && navigator.plugins.length > 0) {
+		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
+			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
+			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;			
+			var descArray = flashDescription.split(" ");
+			var tempArrayMajor = descArray[2].split(".");
+			var versionMajor = tempArrayMajor[0];
+			var versionMinor = tempArrayMajor[1];
+			if ( descArray[3] != "" ) {
+				tempArrayMinor = descArray[3].split("r");
+			} else {
+				tempArrayMinor = descArray[4].split("r");
+			}
+			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
+			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
+		}
+	}
+	// MSN/WebTV 2.6 supports Flash 4
+	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
+	// WebTV 2.5 supports Flash 3
+	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
+	// older WebTV supports Flash 2
+	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
+	else if ( isIE && isWin && !isOpera ) {
+		flashVer = ControlVersion();
+	}	
+	return flashVer;
+}
+
+// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
+function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
+{
+	versionStr = GetSwfVer();
+	if (versionStr == -1 ) {
+		return false;
+	} else if (versionStr != 0) {
+		if(isIE && isWin && !isOpera) {
+			// Given "WIN 2,0,0,11"
+			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
+			tempString        = tempArray[1];			// "2,0,0,11"
+			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
+		} else {
+			versionArray      = versionStr.split(".");
+		}
+		var versionMajor      = versionArray[0];
+		var versionMinor      = versionArray[1];
+		var versionRevision   = versionArray[2];
+
+        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
+		if (versionMajor > parseFloat(reqMajorVer)) {
+			return true;
+		} else if (versionMajor == parseFloat(reqMajorVer)) {
+			if (versionMinor > parseFloat(reqMinorVer))
+				return true;
+			else if (versionMinor == parseFloat(reqMinorVer)) {
+				if (versionRevision >= parseFloat(reqRevision))
+					return true;
+			}
+		}
+		return false;
+	}
+}
+
+function AC_AddExtension(src, ext)
+{
+  if (src.indexOf('?') != -1)
+    return src.replace(/\?/, ext+'?'); 
+  else
+    return src + ext;
+}
+
+function AC_Generateobj(objAttrs, params, embedAttrs) 
+{ 
+    var str = '';
+    if (isIE && isWin && !isOpera)
+    {
+  		str += '<object ';
+  		for (var i in objAttrs)
+  			str += i + '="' + objAttrs[i] + '" ';
+  		for (var i in params)
+  			str += '><param name="' + i + '" value="' + params[i] + '" /> ';
+  		str += '></object>';
+    } else {
+  		str += '<embed ';
+  		for (var i in embedAttrs)
+  			str += i + '="' + embedAttrs[i] + '" ';
+  		str += '> </embed>';
+    }
+
+    document.write(str);
+}
+
+function AC_FL_RunContent(){
+  var ret = 
+    AC_GetArgs
+    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
+     , "application/x-shockwave-flash"
+    );
+  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
+}
+
+function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
+  var ret = new Object();
+  ret.embedAttrs = new Object();
+  ret.params = new Object();
+  ret.objAttrs = new Object();
+  for (var i=0; i < args.length; i=i+2){
+    var currArg = args[i].toLowerCase();    
+
+    switch (currArg){	
+      case "classid":
+        break;
+      case "pluginspage":
+        ret.embedAttrs[args[i]] = args[i+1];
+        break;
+      case "src":
+      case "movie":	
+        args[i+1] = AC_AddExtension(args[i+1], ext);
+        ret.embedAttrs["src"] = args[i+1];
+        ret.params[srcParamName] = args[i+1];
+        break;
+      case "onafterupdate":
+      case "onbeforeupdate":
+      case "onblur":
+      case "oncellchange":
+      case "onclick":
+      case "ondblClick":
+      case "ondrag":
+      case "ondragend":
+      case "ondragenter":
+      case "ondragleave":
+      case "ondragover":
+      case "ondrop":
+      case "onfinish":
+      case "onfocus":
+      case "onhelp":
+      case "onmousedown":
+      case "onmouseup":
+      case "onmouseover":
+      case "onmousemove":
+      case "onmouseout":
+      case "onkeypress":
+      case "onkeydown":
+      case "onkeyup":
+      case "onload":
+      case "onlosecapture":
+      case "onpropertychange":
+      case "onreadystatechange":
+      case "onrowsdelete":
+      case "onrowenter":
+      case "onrowexit":
+      case "onrowsinserted":
+      case "onstart":
+      case "onscroll":
+      case "onbeforeeditfocus":
+      case "onactivate":
+      case "onbeforedeactivate":
+      case "ondeactivate":
+      case "type":
+      case "codebase":
+        ret.objAttrs[args[i]] = args[i+1];
+        break;
+      case "id":
+      case "width":
+      case "height":
+      case "align":
+      case "vspace": 
+      case "hspace":
+      case "class":
+      case "title":
+      case "accesskey":
+      case "name":
+      case "tabindex":
+        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
+        break;
+      default:
+        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
+    }
+  }
+  ret.objAttrs["classid"] = classid;
+  if (mimeType) ret.embedAttrs["type"] = mimeType;
+  return ret;
+}
+
+

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.htm
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.htm	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.htm	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,21 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<script type='text/javascript' language='JavaScript1.2' charset='utf-8'>
+var v = new top.Vars(top.getSearch(window));
+var fv = v.toString('$_');
+</script>
+</head>
+<body >
+<script type='text/javascript' language='JavaScript1.2' charset='utf-8'>
+document.writeln('<object id=\"utility\" name=\" \" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"" + activexDownloadURL + "#version=7,0,14,0\" width=\"100\" height=\"50\">');
+document.writeln('<param name=\"movie\" value=\"history.swf\" />');
+document.writeln('<param name=\"FlashVars\" value=\"'+fv+'&$_lconid='+top.lc_id+'\"/>');
+document.writeln('<param name=\"quality\" value=\"high\" />');
+document.writeln('<param name=\"bgcolor\" value=\"#FFFFFF\" />');
+document.writeln('<param name=\"profile\" value=\"false\" />');
+document.writeln('<embed id=\"utilityEmbed\" name=\"history.swf\" src=\"history.swf\" type=\"application/x-shockwave-flash\" flashvars=\"'+fv+'&$_lconid='+top.lc_id+'\" profile=\"false\" quality=\"high\" bgcolor=\"#FFFFFF\" width=\"100\" height=\"50\" align=\"\" pluginspage=\"" + pluginDownloadURL + "\"></embed>');
+document.writeln('</object>');
+</script>
+</body>
+</html>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.js
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.js	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.js	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,48 @@
+// $Revision: 1.1 $
+// Vars
+Vars = function(qStr) {
+	this.numVars = 0;
+	if(qStr != null) {
+		var nameValue, name;
+		var pairs = qStr.split('&');
+		var pairLen = pairs.length;
+		for(var i = 0; i < pairLen; i++) {
+			var pair = pairs[i];
+			if( (pair.indexOf('=')!= -1) && (pair.length > 3) ) {
+				var nameValue = pair.split('=');
+				var name = nameValue[0];
+				var value = nameValue[1];
+				if(this[name] == null && name.length > 0 && value.length > 0) { 
+					this[name] = value;
+					this.numVars++;
+				}
+			}
+		} 
+	}
+}
+Vars.prototype.toString = function(pre) {
+	var result = '';
+	if(pre == null) { pre = ''; }
+	for(var i in this) {
+		if(this[i] != null && typeof(this[i]) != 'object' && typeof(this[i]) != 'function' && i != 'numVars') {
+			result += pre + i + '=' + this[i] + '&';
+		}
+	}
+	if(result.length > 0) result = result.substr(0, result.length-1);
+	return result;
+}
+function getSearch(wRef) {
+	var searchStr = '';
+	if(wRef.location.search.length > 1) {
+		searchStr = new String(wRef.location.search);
+		searchStr = searchStr.substring(1, searchStr.length);
+	}
+	return searchStr;
+}
+var lc_id = Math.floor(Math.random() * 100000).toString(16);
+if (this != top)
+{
+	top.Vars = Vars;
+	top.getSearch = getSearch;
+	top.lc_id = lc_id;
+}

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.swf
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/history.swf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/index.template.html
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/index.template.html	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/index.template.html	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,107 @@
+<!-- saved from url=(0014)about:internet -->
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>${title}</title>
+<script src="AC_OETags.js" language="javascript"></script>
+<style>
+body { margin: 0px; overflow:hidden }
+</style>
+<script language="JavaScript" type="text/javascript">
+<!--
+// -----------------------------------------------------------------------------
+// Globals
+// Major version of Flash required
+var requiredMajorVersion = ${version_major};
+// Minor version of Flash required
+var requiredMinorVersion = ${version_minor};
+// Minor version of Flash required
+var requiredRevision = ${version_revision};
+// -----------------------------------------------------------------------------
+// -->
+</script>
+</head>
+
+<body scroll="no">
+<script language="JavaScript" type="text/javascript" src="history.js"></script>
+<script language="JavaScript" type="text/javascript">
+<!--
+// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
+var hasProductInstall = DetectFlashVer(6, 0, 65);
+
+// Version check based upon the values defined in globals
+var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
+
+
+// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
+if ( hasProductInstall && !hasRequestedVersion ) {
+	// MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
+	// This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
+	// DO NOT MODIFY THE FOLLOWING FOUR LINES
+	// Location visited after installation is complete if installation is required
+	var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
+	var MMredirectURL = window.location;
+    document.title = document.title.slice(0, 47) + " - Flash Player Installation";
+    var MMdoctitle = document.title;
+
+	AC_FL_RunContent(
+		"src", "playerProductInstall",
+		"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
+		"width", "${width}",
+		"height", "${height}",
+		"align", "middle",
+		"id", "${application}",
+		"quality", "high",
+		"bgcolor", "${bgcolor}",
+		"name", "${application}",
+		"allowScriptAccess","sameDomain",
+		"type", "application/x-shockwave-flash",
+		"pluginspage", "http://www.adobe.com/go/getflashplayer"
+	);
+} else if (hasRequestedVersion) {
+	// if we've detected an acceptable version
+	// embed the Flash Content SWF when all tests are passed
+	AC_FL_RunContent(
+			"src", "${swf}",
+			"width", "${width}",
+			"height", "${height}",
+			"align", "middle",
+			"id", "${application}",
+			"quality", "high",
+			"bgcolor", "${bgcolor}",
+			"name", "${application}",
+			"flashvars",'historyUrl=history.htm%3F&lconid=' + lc_id + '',
+			"allowScriptAccess","sameDomain",
+			"type", "application/x-shockwave-flash",
+			"pluginspage", "http://www.adobe.com/go/getflashplayer"
+	);
+  } else {  // flash is too old or we can't detect the plugin
+    var alternateContent = 'Alternate HTML content should be placed here. '
+  	+ 'This content requires the Adobe Flash Player. '
+   	+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
+    document.write(alternateContent);  // insert non-flash content
+  }
+// -->
+</script>
+<noscript>
+  	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+			id="${application}" width="${width}" height="${height}"
+			codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
+			<param name="movie" value="${swf}.swf" />
+			<param name="quality" value="high" />
+			<param name="bgcolor" value="${bgcolor}" />
+			<param name="allowScriptAccess" value="sameDomain" />
+			<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
+				width="${width}" height="${height}" name="${application}" align="middle"
+				play="true"
+				loop="false"
+				quality="high"
+				allowScriptAccess="sameDomain"
+				type="application/x-shockwave-flash"
+				pluginspage="http://www.adobe.com/go/getflashplayer">
+			</embed>
+	</object>
+</noscript>
+<iframe name="_history" src="history.htm" frameborder="0" scrolling="no" width="22" height="0"></iframe>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/playerProductInstall.swf
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/html-template/playerProductInstall.swf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/OSX.css
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/OSX.css	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/OSX.css	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,300 @@
+ApplicationControlBar {
+   highlightAlphas: 0, 1;
+   fillAlphas: 1, 1;
+   fillColors: #dedede, #ffffff;
+   fontSize: 13;
+   paddingLeft: 0;
+   paddingRight: 0;
+   paddingBottom: 0;
+}
+
+ at font-face {
+	src:url("lucidaGrande.swf"); 
+	font-family: "Lucida Grande";
+}
+
+Application {
+	fontFamily: "Lucida Grande";
+	color: #000000;
+	fontSize: 12;
+	backgroundColor: #1F4488;
+	themeColor: #3370ce;
+}
+
+MenuBar { 
+   backgroundAlpha: .9;
+   backgroundColor: #ffffff;
+   borderColor: #ffffff;
+   rollOverColor: #3370ce;
+   selectionColor: #3370ce;
+   color: #000000;
+   textRollOverColor: #ffffff;
+   textSelectedColor: #ffffff;
+   disabledColor: #8e8e8e;
+   borderThickness: 0;
+   borderStyle: none;
+   dropShadow: true;
+}
+
+Panel { 
+   cornerRadius: 8;
+   headerHeight: 22;
+   shadowDistance: 3;
+   borderThickness: 1;
+   borderAlpha: 1;
+   borderStyle: solid;
+   borderColor: #c0c0c0;
+   highlightAlpas: 0.3,0;
+   headerColors: #f9f9f9, #cacaca;
+   titleStyleName: "panelTitle";
+   panelBorderStyle: default;
+   paddingTop: 5;
+   paddingBottom: 5;
+   paddingRight: 5;
+   paddingLeft: 5;
+   }
+   
+.panelTitle {
+	color: #000000;
+	textAlign: center;
+	fontWeight: normal;
+}
+
+TextInput {
+	fontSize: 12;
+	backgroundColor: #FFFFFF;
+}
+
+
+Button { 
+   cornerRadius: 12;
+   highlightAlphas: 1, 0.32;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #cccccc, #ffffff, #cccccc, #ffffff;
+   borderColor: #999999;
+   dropShadow: true;
+   shadowDistance: 1;
+   fontSize: 11;
+   fontWeight: normal;
+}
+
+PopUpMenuButton {
+   fontWeight: normal;
+}
+
+.blueButton { 
+   cornerRadius: 12;
+   highlightAlphas: 0.79, 0.2;
+   fillColors: #195eb9, #adf8ff, #195eb9, #adf8ff;
+   fillAlphas: 1, 1, 1, 1;
+   borderColor: #999999;
+   dropShadow: true;
+   shadowDistance: 1;
+   fontSize: 11;
+   fontWeight: normal;
+}
+
+Accordion { 
+   headerHeight: 17;
+   borderStyle: solid;
+   backgroundAlpha: 1;
+   focusAlpha: 0;
+   highlightAlphas: 0.79, 0.2;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #e0e0e0, #ffffff, #e0e0e0, #ffffff;
+   selectedFillColors: #195eb9, #adf8ff;
+   borderColor: #8e8e8e;
+   color: #000000;
+   textRollOverColor: #000000;
+   textSelectedColor: #000000;
+   fontSize: 10;
+   fontWeight: normal;
+}
+
+
+NumericStepper { 
+   cornerRadius: 7;
+   highlightAlphas: 0.6, 1;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #cccccc, #ffffff, #cccccc, #ffffff;
+   borderColor: #999999;
+   fontSize: 12;
+   fontWeight: normal;
+}
+
+CheckBox {
+   borderColor: #999999;
+   highlightAlphas: 1, 0.23;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #aaaaaa, #ffffff, #cccccc, #ffffff;
+   fontSize: 12;
+   fontWeight: normal;
+   textRollOverColor: #000000;
+   color: #000000;
+   textSelectedColor: #000000;
+}
+
+RadioButton {
+   borderColor: #999999;
+   highlightAlphas: 1, 0.23;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #aaaaaa, #ffffff, #cccccc, #ffffff;
+   fontSize: 12;
+   fontWeight: normal;
+   textRollOverColor: #000000;
+   color: #000000;
+   textSelectedColor: #000000;
+}
+
+
+
+ComboBox {
+   backgroundAlpha: .85;
+   color: #000000;
+   borderColor: #999999;
+   cornerRadius: 12;
+   highlightAlphas: 1, 0.32;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #cccccc, #ffffff, #cccccc, #ffffff;
+   selectionColor: #ffffff;
+   textSelectedColor: #000000;
+   rollOverColor: #3370ce;
+   textRollOverColor: #ffffff;
+   themeColor: #3370ce;
+   fontWeight: normal;
+   fontSize: 12;
+}
+
+HSlider {
+   labelOffset: 33;
+   tickLength: 6;
+   tickOffset: 13;
+   tickColor: #5c5c5c;
+   trackHighlight: false;
+   borderColor: #ffffff;
+   trackColors: #666666, #cccccc;
+   themeColor: #3370ce;
+   fillAlphas: 1, 1, 1, 1;
+   fillColors: #195eb9, #adf8ff, #ffffff, #eeeeee;
+}
+
+VScrollBar {
+
+}
+
+
+TabNavigator {
+	paddingRight: 10;
+	paddingTop: 10;
+	paddingBottom: 10;
+	paddingLeft: 10;
+	fontSize: 11;
+	 tabHeight: 20;
+   tabWidth: 100;
+   cornerRadius: 0;
+   horizontalGap: 0;
+   paddingLeft: 0;
+   borderStyle: solid;
+   borderColor: #757575;
+   selectedTabTextStyleName: "SelectedTabStyle";
+}
+
+Tab {
+   cornerRadius: 6;
+   highlightAlphas: 1, 0.32;
+   fillAlphas: 1, 1;
+   fillColors: #cccccc, #ffffff;
+   backgroundColor: #ffffff;
+   borderColor: #666666;
+   color: #000000;
+   textRollOverColor: #000000;
+   themeColor: #3370ce;
+   fontSize: 11;
+   fontWeight: normal;
+   selectedTabTextStyleName: "SelectedTabStyle";
+}
+
+TabBar {
+   paddingLeft: 20;
+   tabHeight: 22;
+   tabWidth: 100;
+   cornerRadius: 0;
+   horizontalGap: 0;
+   borderStyle: solid;
+   borderColor: #757575;
+   tab-style-name: "TabStyle";
+   selectedTabTextStyleName: "SelectedTabStyle";
+}
+
+.TabStyle {
+   fontFamily: "Lucida Grande";
+   font-weight: normal;
+   font-size: 12;
+}
+
+.SelectedTabStyle {
+   fontFamily: "Lucida Grande";
+   font-weight: normal;
+   font-size: 12;
+}
+
+
+List {
+	 borderColor: #8e8e8e;
+	 backgroundColor: #FFFFFF;
+	 color: #000000;
+	 textSelectedColor: #FFFFFF;
+	 selectionColor: #3370ce;
+	 useRollOver: false;
+	 selectionDuration: 10;
+}
+
+DataGrid {
+   font-weight: normal;
+   font-size: 11;
+   alternatingRowColors: #ffffff, #ffffff;
+   headerColors: #efefef, #ffffff;
+   vGridLines: true;
+   vGridLineColor: #cccccc;
+   useRollOver: false;
+   selectionColor: #3370ce;
+   color: #000000;
+   textSelectedColor: #ffffff;
+   themeColor: #3370ce;
+   headerStyleName: "DataGridHeader";
+}
+
+.DataGridHeader {
+   fontFamily: "Lucida Grande";
+   font-weight: normal;
+   font-size: 12;
+}
+
+VScrollBar {
+	cornerRadius: 12;
+   highlightAlphas: 0.79, 0.2;
+   fillColors: #195eb9, #adf8ff, #195eb9, #adf8ff;
+   fillAlphas: 1, 1, 1, 1;
+   borderColor: #999999;
+   trackColors: #c0c0c0, #FFFFFF;
+}
+
+HScrollBar {
+	cornerRadius: 12;
+   highlightAlphas: 0.79, 0.2;
+   fillColors: #195eb9, #adf8ff, #195eb9, #adf8ff;
+   fillAlphas: 1, 1, 1, 1;
+   borderColor: #999999;
+   trackColors: #c0c0c0, #FFFFFF;
+}
+
+DateChooser {
+	cornerRadius: 15;
+   highlightAlphas: 0.79, 0.2;
+   fillColors: #195eb9, #adf8ff, #195eb9, #adf8ff;
+   fillAlphas: 1, 1, 1, 1;
+   borderColor: #999999;
+   todayColor: #3370ce;
+   headerColors: #f9f9f9, #cacaca;
+   dropShadow: true;
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/appleDesktop.jpg
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/appleDesktop.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/lucidaGrande.swf
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/styles/lucidaGrande.swf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ActionsPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ActionsPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ActionsPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:Script>
+		<![CDATA[
+			import mx.events.MenuEvent;
+			import mx.controls.Alert;
+			import mx.events.ItemClickEvent;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESBModel;
+			import model.services.Action;
+			import model.services.Service;
+			import view.services.CreateActionWindow;
+			
+			/** Injected service reference */
+			[Bindable]
+			public var service:Service;
+			
+			/** Injected model reference */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+			
+			/**
+			 * Called when the 'add action' button is pressed.
+			 */
+			protected function doAddAction():void {
+				var dialog:CreateActionWindow = CreateActionWindow(
+					PopUpManager.createPopUp(
+						this.parentApplication.Pages, CreateActionWindow, true));
+				dialog.service = service;
+			}
+			
+			/**
+			 * Called when the 'add action' button is pressed.
+			 */
+			protected function doEditAction():void {
+				var selectedAction:Action = Actions.selectedItem as Action;
+				if (selectedAction != null) {
+					var dialog:CreateActionWindow = CreateActionWindow(
+						PopUpManager.createPopUp(
+							this.parentApplication.Pages, CreateActionWindow, true));
+					dialog.service = service;
+					dialog.loadFrom(selectedAction);
+				}
+			}
+			
+			/**
+			 * Called when the 'delete action' button is pressed.
+			 */
+			protected function doDeleteAction():void {
+				var selectedAction:Action = Actions.selectedItem as Action;
+				if (selectedAction != null) {
+					var index:Number = 0;
+					for each (var action:Action in service.actions) {
+						if (selectedAction.name == action.name) {
+							service.actions.removeItemAt(index);
+						}
+						index++;
+					}
+				}
+			}
+			
+			/**
+			 * Indicates whether the service already has an action with the
+			 * given name.
+			 */
+			protected function serviceHasActionWithName(actionName:String):Boolean {
+				for each (var action:Action in service.actions) {
+					if (action.name == actionName) {
+						return true;
+					}
+				}
+				return false;
+			}
+			
+			/**
+			 * Get a unique action name based on the name in the template.
+			 */
+			protected function getUniqueActionName(template:Action):String {
+				var index:Number = 0;
+				var currentName:String = template.name;
+				while (serviceHasActionWithName(currentName)) {
+					currentName = template.name + index.toString();
+					index++;
+				}
+				return currentName;
+			}
+			
+			/**
+			 * Called when an action template is chosen.
+			 */
+			protected function doCreateFromTemplate(event:MenuEvent):void {
+				var actionTemplate:Action = event.item as Action;
+				var newAction:Action = actionTemplate.clone();
+				var newName:String = getUniqueActionName(actionTemplate);
+				newAction.name = newName;
+				service.actions.addItem(newAction);
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:DataGrid width="100%" height="100%" id="Actions" dataProvider="{service.actions}"
+		doubleClickEnabled="true" doubleClick="doEditAction();">
+		<mx:columns>
+			<mx:DataGridColumn headerText="Action Name" dataField="name"/>
+			<mx:DataGridColumn headerText="Action Class" dataField="actionClass"/>
+			<mx:DataGridColumn headerText="Processor" dataField="processingFunction"/>
+		</mx:columns>
+	</mx:DataGrid>
+	<mx:VBox width="150" height="100%">
+		<mx:Button click="doAddAction();" label="Add Action" width="100%"/>
+		<mx:Button click="doEditAction();" label="Edit Action" width="100%"/>
+		<mx:Button click="doDeleteAction();" label="Delete Action" width="100%"/>
+		<mx:HRule width="100%"/>
+		<mx:PopUpMenuButton label="Templates" width="100%" 
+			dataProvider="{jmodel.actionTemplates}" labelField="name" 
+			itemClick="doCreateFromTemplate(event);" />
+	</mx:VBox>
+	<mx:Spacer/>
+</mx:HBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/BusesPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/BusesPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/BusesPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:Script>
+		<![CDATA[
+			import model.providers.JmsBus;
+			import view.providers.JmsBusWindow;
+			import model.providers.JmsProvider;
+			import model.providers.FtpBus;
+			import view.providers.FtpBusWindow;
+			import model.providers.FtpProvider;
+			import model.providers.Bus;
+			import model.providers.FileBus;
+			import mx.managers.PopUpManager;
+			import view.providers.FileBusWindow;
+			import model.providers.FileProvider;
+			import model.providers.Provider;
+			
+			/** Injected provider reference */
+			[Bindable]
+			public var provider:Provider;
+			
+			/**
+			 * Called when the add button is pressed.
+			 */
+			protected function onCreate():void {
+				if (provider is FileProvider) {
+					var filedialog:FileBusWindow = 
+						FileBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, FileBusWindow, true));
+					filedialog.provider = provider;
+					filedialog.bus = new FileBus();
+					filedialog.isNew = true;
+				} else if (provider is FtpProvider) {
+					var ftpdialog:FtpBusWindow = 
+						FtpBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, FtpBusWindow, true));
+					ftpdialog.provider = provider;
+					ftpdialog.bus = new FtpBus();
+					ftpdialog.isNew = true;
+				} else if (provider is JmsProvider) {
+					var jmsdialog:JmsBusWindow = 
+						JmsBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, JmsBusWindow, true));
+					jmsdialog.provider = provider;
+					jmsdialog.bus = new JmsBus();
+					jmsdialog.isNew = true;
+				}
+			}
+			
+			/**
+			 * Called when the add button is pressed.
+			 */
+			protected function onEdit():void {
+				var selected:Bus = Buses.selectedItem as Bus;
+				if (provider is FileProvider) {
+					var filedialog:FileBusWindow = 
+						FileBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, FileBusWindow, true));
+					filedialog.provider = provider;
+					filedialog.bus = selected as FileBus;
+					filedialog.isNew = false;
+				} else if (provider is FtpProvider) {
+					var ftpdialog:FtpBusWindow = 
+						FtpBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, FtpBusWindow, true));
+					ftpdialog.provider = provider;
+					ftpdialog.bus = selected as FtpBus;
+					ftpdialog.isNew = false;
+				} else if (provider is JmsProvider) {
+					var jmsdialog:JmsBusWindow = 
+						JmsBusWindow(PopUpManager.createPopUp(
+							this.parentApplication.Pages, JmsBusWindow, true));
+					jmsdialog.provider = provider;
+					jmsdialog.bus = selected as JmsBus;
+					jmsdialog.isNew = false;
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:DataGrid id="Buses" width="100%" height="100%" dataProvider="{provider.buses}"
+		doubleClickEnabled="true" doubleClick="onEdit();">
+		<mx:columns>
+			<mx:DataGridColumn headerText="Bus Id" dataField="id"/>
+		</mx:columns>
+	</mx:DataGrid>
+	<mx:VBox width="150" height="100%">
+		<mx:Button label="Add Bus" click="onCreate();" width="100%"/>
+		<mx:Button label="Edit Bus" click="onEdit();" width="100%"/>
+		<mx:Button label="Delete Bus" width="100%"/>
+	</mx:VBox>
+	<mx:Spacer/>
+</mx:HBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/CreatePropertyWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/CreatePropertyWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/CreatePropertyWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="542" 
+	title="Property Editor" creationComplete="onWindowCreate();" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import mx.collections.ArrayCollection;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.common.Property;
+			
+			/** Injected property list reference */
+			[Bindable]
+			public var properties:ArrayCollection;
+			
+			/** Property being edited */
+			[Bindable]
+			protected var property:Property;
+			
+			/**
+			 * Load the UI from an existing property.
+			 */
+			public function loadFrom(existing:Property):void {
+				this.property = existing;
+				PropName.text = existing.name;
+				PropValue.text = existing.value;
+				NestedData.text = existing.nested;
+			}
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				PropName.setFocus();
+			}
+			
+			/**
+			 * Create an Action based on the window selection.
+			 */
+			protected function onCreate():void {
+				var newProperty:Property = new Property();
+				newProperty.name = PropName.text;
+				newProperty.value = PropValue.text;
+				newProperty.nested = NestedData.text;
+				if (property != null) {
+					var index:Number = 0;
+					for each (var current:Property in properties) {
+						if (property.name == current.name) {
+							properties.setItemAt(newProperty, index);
+						}
+						index++;
+					}
+				} else {
+					properties.addItem(newProperty);
+				}
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Property Name:" width="100%">
+			<mx:TextInput width="100%" id="PropName"/>
+		</mx:FormItem>
+		<mx:FormItem label="Property Value:" width="100%">
+			<mx:TextInput width="100%" id="PropValue"/>
+		</mx:FormItem>
+		<mx:FormItem label="Nested Data:" width="100%">
+			<mx:TextArea width="100%" height="200" id="NestedData" wordWrap="false"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onCreate();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ListenersPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ListenersPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ListenersPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:Script>
+		<![CDATA[
+			import model.services.Listener;
+			import model.services.Service;
+			import mx.collections.ArrayCollection;
+			import mx.controls.Alert;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESBModel;
+			import view.services.CreateListenerWindow;
+			
+			/** Injected model reference */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+			
+			/** Injected service reference */
+			[Bindable]
+			public var service:Service;
+			
+			/**
+			 * Called when the 'add listener' button is pressed.
+			 */
+			protected function doAddListener():void {
+				var buses:ArrayCollection = jmodel.config.getAllBuses();
+				if (buses.length > 0) {
+					var dialog:CreateListenerWindow = CreateListenerWindow(
+						PopUpManager.createPopUp(
+							this.parentApplication.Pages, CreateListenerWindow, true));
+					dialog.config = jmodel.config;
+					dialog.service = service;
+				} else {
+					Alert.show(
+						"You must create one or more provider buses before adding a listener.", 
+						"No Buses Defined");
+				}
+			}
+			
+			/**
+			 * Called when the 'edit listener' button is pressed.
+			 */
+			protected function doEditListener():void {
+				var selectedListener:Listener = Listeners.selectedItem as Listener;
+				if (selectedListener != null) {
+					var dialog:CreateListenerWindow = CreateListenerWindow(
+						PopUpManager.createPopUp(
+							this.parentApplication.Pages, CreateListenerWindow, true));
+					dialog.config = jmodel.config;
+					dialog.service = service;
+					dialog.loadFrom(selectedListener);
+				}
+			}
+			
+			/**
+			 * Called when the 'delete listener' button is pressed.
+			 */
+			protected function doDeleteListener():void {
+				var selectedListener:Listener = Listeners.selectedItem as Listener;
+				if (selectedListener != null) {
+					var index:Number = 0;
+					for each (var listener:Listener in service.listeners) {
+						if (selectedListener.name == listener.name) {
+							service.listeners.removeItemAt(index);
+						}
+						index++;
+					}
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:DataGrid id="Listeners" width="100%" height="100%" dataProvider="{service.listeners}"
+		doubleClickEnabled="true" doubleClick="doEditListener();">
+		<mx:columns>
+			<mx:DataGridColumn headerText="Listener Name" dataField="name" width="40"/>
+			<mx:DataGridColumn headerText="Bus Reference" dataField="busIdRef" width="40"/>
+			<mx:DataGridColumn headerText="Max Threads" dataField="maxThreads" width="30"/>
+			<mx:DataGridColumn headerText="Gateway" dataField="isGateway" width="20"/>
+		</mx:columns>
+	</mx:DataGrid>
+	<mx:VBox width="150" height="100%">
+		<mx:Button label="Add Listener" click="doAddListener();" width="100%"/>
+		<mx:Button label="Edit Listener"  click="doEditListener();" width="100%"/>
+		<mx:Button label="Delete Listener" click="doDeleteListener();" width="100%"/>
+	</mx:VBox>
+	<mx:Spacer/>
+</mx:HBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoProviderPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoProviderPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoProviderPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
+		<mx:TextArea width="280" textAlign="center"
+			text="Select a provider from the list at the left. If none are available, click 'Create Provider' to create one." 
+			borderStyle="none" fontFamily="Arial" fontSize="14" height="100"/>
+	</mx:HBox>
+</mx:VBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoServicePanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoServicePanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/NoServicePanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
+		<mx:TextArea width="248" textAlign="center"
+			text="Select a service from the list at the left. If none are available, click 'Create Service' to create one." 
+			borderStyle="none" fontFamily="Arial" fontSize="14" height="100"/>
+	</mx:HBox>
+</mx:VBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertiesPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertiesPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertiesPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+	<mx:Script>
+		<![CDATA[
+			import mx.collections.ArrayCollection;
+			import mx.managers.PopUpManager;
+			
+			import model.common.Property;
+			
+			/** Properties shown in the panel */
+			[Bindable]
+			public var properties:ArrayCollection;
+			
+			/**
+			 * Called when the 'add property' button is pressed.
+			 */
+			protected function doAddAction():void {
+				var dialog:CreatePropertyWindow = CreatePropertyWindow(
+					PopUpManager.createPopUp(
+						this.parentApplication.Pages, CreatePropertyWindow, true));
+				dialog.properties = properties;
+			}
+			
+			/**
+			 * Called when the 'add property' button is pressed.
+			 */
+			protected function doEditAction():void {
+				var selectedProperty:Property = Properties.selectedItem as Property;
+				if (selectedProperty != null) {
+					var dialog:CreatePropertyWindow = CreatePropertyWindow(
+						PopUpManager.createPopUp(
+							this.parentApplication.Pages, CreatePropertyWindow, true));
+					dialog.properties = properties;
+					dialog.loadFrom(selectedProperty);
+				}
+			}
+			
+			/**
+			 * Called when the 'delete property' button is pressed.
+			 */
+			protected function doDeleteAction():void {
+				var selectedProperty:Property = Properties.selectedItem as Property;
+				if (selectedProperty != null) {
+					var index:Number = 0;
+					for each (var property:Property in properties) {
+						if (selectedProperty.name == property.name) {
+							properties.removeItemAt(index);
+						}
+						index++;
+					}
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:DataGrid width="100%" height="100%" dataProvider="{properties}" id="Properties">
+		<mx:columns>
+			<mx:DataGridColumn headerText="Property Name" dataField="name" width="35"
+				itemRenderer="view.PropertyItemRenderer"/>
+			<mx:DataGridColumn headerText="Property Value" dataField="value" width="65"/>
+		</mx:columns>
+	</mx:DataGrid>
+	<mx:VBox width="150" height="100%">
+		<mx:Button click="doAddAction()" label="Add Property" width="100%"/>
+		<mx:Button click="doEditAction()" label="Edit Property" width="100%"/>
+		<mx:Button click="doDeleteAction()" label="Delete Property" width="100%"/>
+	</mx:VBox>
+	<mx:Spacer/>
+</mx:HBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertyItemRenderer.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertyItemRenderer.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/PropertyItemRenderer.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,26 @@
+package view {
+	
+	import model.common.Property;
+	
+	import mx.controls.dataGridClasses.DataGridItemRenderer;
+
+	/**
+	 * Renderer for displaying properties in a datagrid.
+	 */
+	public class PropertyItemRenderer extends DataGridItemRenderer {
+		
+		/**
+		 * Change the text color for properties that have nested content.
+		 */
+		override public function validateProperties():void {
+	        super.validateProperties();
+	        
+	        if (this.data != null) {
+				var property:Property = this.data as Property;
+				if (property.hasNested) {
+					this.setStyle("color", 0x0000FF);
+				}
+	        }
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProviderPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProviderPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProviderPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" 
+	xmlns:providers="view.providers.*" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import mx.core.Container;
+			
+			import model.providers.JmsProvider;
+			import model.providers.FtpProvider;
+			import model.providers.FileProvider;
+			import model.providers.Provider;
+			
+			/** Provider being displayed */
+			[Bindable]
+			public var provider:Provider;
+			
+			/**
+			 * Initialize the proper panel with the provider.
+			 */
+			public function prepChild(provider:Provider):Container {
+				if (provider is FileProvider) {
+					FileProviderPanel.provider = FileProvider(provider);
+					return FileProviderPanel;
+				} else if (provider is FtpProvider) {
+					FtpProviderPanel.provider = FtpProvider(provider);
+					return FtpProviderPanel;
+				} else if (provider is JmsProvider) {
+					JmsProviderPanel.provider = JmsProvider(provider);
+					return JmsProviderPanel;
+				} else {
+					return InvalidPanel;
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:ViewStack width="100%" height="100%" id="ProviderPanels" selectedChild="{prepChild(provider)}">
+		<mx:Canvas width="100%" height="100" id="InvalidPanel"/>
+		<providers:FileProviderPanel id="FileProviderPanel" width="100%"/>
+		<providers:FtpProviderPanel id="FtpProviderPanel" width="100%"/>
+		<providers:JmsProviderPanel id="JmsProviderPanel" width="100%"/>
+	</mx:ViewStack>
+	<mx:Spacer/>
+</mx:VBox>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProvidersPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProvidersPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ProvidersPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="100%" height="100%" 
+	title="Specify providers that make data available for services" 
+	xmlns:view="view.*" xmlns:providers="view.providers.*">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.JBossESBModel;
+			import model.providers.Provider;
+			
+			import view.providers.CreateProviderWindow;
+			
+			/** Reference to the top-level config */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+
+			/**
+			 * Called when the selected provider changes.
+			 */
+			public function set selectedProvider(provider:Provider):void {
+				updateProviderPanels(provider);
+			}
+			
+			/**
+			 * Called when the selected provider in the list changes.
+			 */
+			protected function selectedProviderChanged():void {
+				var provider:Provider = Providers.selectedItem as Provider;
+				jmodel.selectedProvider = provider;
+			}
+			
+			/**
+			 * Update which panels are displayed when the provider changes.
+			 */
+			protected function updateProviderPanels(provider:Provider):void {
+				if (provider != null) {
+					ProviderViews.selectedChild = ProviderDetails;
+				} else {
+					ProviderViews.selectedChild = NoProviderPanel;
+				}
+			}
+			
+			/**
+			 * Open the 'create provider' dialog.
+			 */
+			protected function doCreateProvider():void {
+				var dialog:CreateProviderWindow = CreateProviderWindow(
+					PopUpManager.createPopUp(this.parentApplication.Pages, CreateProviderWindow, true));
+				dialog.config = jmodel.config;
+			}
+			
+			/**
+			 * Called when the 'delete provider' button is pressed.
+			 */
+			protected function doDeleteProvider():void {
+				var selectedProvider:Provider = Providers.selectedItem as Provider;
+				if (selectedProvider != null) {
+					var index:Number = 0;
+					for each (var current:Provider in jmodel.config.providers) {
+						if (selectedProvider.name == current.name) {
+							jmodel.config.providers.removeItemAt(index);
+						}
+						index++;
+					}
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:HDividedBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+		<mx:VBox width="25%" height="100%">
+			<mx:Spacer/>
+			<mx:List width="100%" height="100%" id="Providers"
+				dataProvider="{jmodel.config.providers}" labelField="name"
+				change="selectedProviderChanged();"
+				showDataTips="true" dataTipField="name"/>
+			<mx:VBox width="100%">
+				<mx:Button label="Create Provider" width="100%" click="doCreateProvider();"/>
+				<mx:Button label="Delete Provider" width="100%" click="doDeleteProvider();"/>
+				<mx:Spacer/>
+			</mx:VBox>
+		</mx:VBox>
+		<mx:ViewStack width="75%" height="100%" id="ProviderViews">
+			<view:NoProviderPanel width="100%" height="100%" id="NoProviderPanel"/>
+			<view:ProviderPanel width="100%" height="100%" id="ProviderDetails" 
+				provider="{jmodel.selectedProvider}"/>
+		</mx:ViewStack>
+	</mx:HDividedBox>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServerPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServerPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServerPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="100%" height="100%" 
+	title="Interact with a JBossESB Server">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			import mx.controls.Alert;
+			
+			import model.JBossESB;
+			import model.JBossESBModel;
+			import model.ServerManager;
+			import model.services.ActionTemplateManager;
+			
+			/** Injected config reference */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+			
+			/** Injected server manager reference */
+			public var serverManager:ServerManager;
+			
+			/** Injected reference to action template manager */
+			public var templateManager:ActionTemplateManager;
+			
+			/**
+			 * Show the XML for the current configuration.
+			 */
+			protected function showLoadedConfig():void {
+				var xml:XML = jmodel.getConfigAsXml();
+				var dialog:XmlViewer = XmlViewer(PopUpManager.createPopUp(
+					this.parentApplication.Pages, XmlViewer, true));
+				dialog.xml = xml;
+			}
+			
+			/**
+			 * Show the XML for the current configuration.
+			 */
+			protected function loadPastedConfig():void {
+				var dialog:XmlPaster = XmlPaster(PopUpManager.createPopUp(
+					this.parentApplication.Pages, XmlPaster, true));
+				dialog.jmodel = jmodel;
+			}
+			
+			/**
+			 * Create an empty configuration.
+			 */
+			protected function createEmptyConfig():void {
+				jmodel.config = new JBossESB();
+			}
+			
+			/**
+			 * Saves the server base URL into the model.
+			 */
+			protected function saveServerBaseUrl():void {
+				jmodel.serverBaseUrl = ServerBaseUrl.text;
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Server base URL:" width="100%">
+			<mx:HBox width="100%">
+				<mx:TextInput id="ServerBaseUrl" width="100%" text="{jmodel.serverBaseUrl}"/>
+				<mx:Button label="Apply" click="saveServerBaseUrl();"/>
+			</mx:HBox>
+		</mx:FormItem>
+		<mx:FormItem label="Reload configuration from server:">
+			<mx:Button label="Reload Configuration" click="serverManager.startDownload();" width="200"/>
+		</mx:FormItem>
+		<mx:FormItem label="Save configuration to server:">
+			<mx:Button label="Save Configuration" click="serverManager.startUpload();" width="200"/>
+		</mx:FormItem>
+		<mx:FormItem label="View XML for current configuration:">
+			<mx:Button label="View Configuration XML" click="showLoadedConfig();" width="200"/>
+		</mx:FormItem>
+		<mx:FormItem label="Paste configuration XML from file:">
+			<mx:Button label="Paste Configuration XML" click="loadPastedConfig();" width="200"/>
+		</mx:FormItem>
+		<mx:FormItem label="Create an empty configuration:">
+			<mx:Button label="Create New Configuration" click="createEmptyConfig();" width="200"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" verticalAlign="middle">
+		<mx:Label text="Action Templates:" fontSize="12"/>
+		<mx:Spacer width="100%"/>
+		<mx:Button label="Refresh" click="templateManager.refresh();"/>
+	</mx:HBox>
+	<mx:DataGrid width="100%" height="100%" dataProvider="{jmodel.actionTemplates}">
+		<mx:columns>
+			<mx:DataGridColumn headerText="Name" dataField="name"/>
+			<mx:DataGridColumn headerText="Class" dataField="actionClass"/>
+		</mx:columns>
+	</mx:DataGrid>
+	
+</mx:Panel>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicePanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicePanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicePanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	xmlns:view="view.*" title="{service.category}:{service.name} Service">
+	<mx:Script>
+		<![CDATA[
+			import model.JBossESBModel;
+			import model.services.Service;
+			
+			/** Injected service reference */
+			[Bindable]
+			public var service:Service;
+			
+			/** Injected model reference */
+			[Bindable]
+			public var model:JBossESBModel;
+			
+			/**
+			 * Apply changes to the service.
+			 */
+			protected function doApplyChanges():void {
+				service.category = Category.text;
+				service.name = Name.text;
+				service.description = Description.text;
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Category:" width="100%">
+			<mx:TextInput id="Category" width="100%" text="{service.category}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Name:" width="100%">
+			<mx:TextInput id="Name" width="100%" text="{service.name}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Description:" width="100%">
+			<mx:TextInput id="Description" width="100%" text="{service.description}"/>
+		</mx:FormItem>
+		<mx:FormItem>
+			<mx:Button label="Apply Changes" click="doApplyChanges();"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<view:ListenersPanel width="100%" height="50%" jmodel="{model}" service="{service}"/>
+	<view:ActionsPanel width="100%" height="50%" jmodel="{model}" service="{service}"/>
+	<mx:Spacer/>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicesPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicesPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/ServicesPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="100%" height="100%" 
+	title="Specify services that consume data from providers" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import model.services.Service;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESBModel;
+			import view.services.CreateServiceWindow;
+			
+			/** Reference to the top-level config */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+			
+			/**
+			 * Called when the selected service changes.
+			 */
+			public function set selectedService(service:Service):void {
+				updateServicePanels(service);
+			}
+			
+			/**
+			 * Called when the selected provider in the list changes.
+			 */
+			protected function selectedServiceChanged():void {
+				var service:Service = Services.selectedItem as Service;
+				jmodel.selectedService = service;
+			}
+			
+			/**
+			 * Update the panels based on which service is selected.
+			 */
+			protected function updateServicePanels(service:Service):void {
+				if (service != null) {
+					ServiceViews.selectedChild = ServiceDetails;
+				} else {
+					ServiceViews.selectedChild = NoService;
+				}
+			}
+			
+			/**
+			 * Open the 'create service' dialog.
+			 */
+			protected function doCreateService():void {
+				var dialog:CreateServiceWindow = CreateServiceWindow(
+					PopUpManager.createPopUp(this.parentApplication.Pages, CreateServiceWindow, true));
+				dialog.config = jmodel.config;
+			}
+				
+			/**
+			 * Called when the 'delete service' button is pressed.
+			 */
+			protected function doDeleteService():void {
+				var selectedService:Service = Services.selectedItem as Service;
+				if (selectedService != null) {
+					var index:Number = 0;
+					for each (var current:Service in jmodel.config.services) {
+						if (selectedService.name == current.name) {
+							jmodel.config.services.removeItemAt(index);
+						}
+						index++;
+					}
+				}
+			}
+		]]>
+	</mx:Script>
+	<mx:HDividedBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
+		<mx:VBox width="25%" height="100%">
+			<mx:Spacer/>
+			<mx:List width="100%" height="100%" id="Services" 
+				change="selectedServiceChanged();"
+				dataProvider="{jmodel.config.services}" labelField="fullName"
+				showDataTips="true" dataTipField="fullName"/>
+			<mx:VBox width="100%">
+				<mx:Button label="Create Service" click="doCreateService();" width="100%"/>
+				<mx:Button label="Delete Service" click="doDeleteService();" width="100%"/>
+				<mx:Spacer/>
+			</mx:VBox>
+		</mx:VBox>
+		<mx:ViewStack width="75%" height="100%" id="ServiceViews">
+			<view:NoServicePanel width="100%" height="100%" id="NoService"/>
+			<view:ServicePanel width="100%" height="100%" id="ServiceDetails" model="{jmodel}"
+				service="{jmodel.selectedService}"/>
+		</mx:ViewStack>
+	</mx:HDividedBox>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlPaster.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlPaster.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlPaster.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="600" height="500" 
+	title="JBossESB Configuration XML" creationComplete="onWindowCreate();" showCloseButton="true"
+	close="onCancel();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESBModel;
+			
+			/** Injected config reference */
+			[Bindable]
+			public var jmodel:JBossESBModel;
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				ConfigXml.setFocus();
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onLoad():void {
+				jmodel.setConfigFromXml(new XML(ConfigXml.text));
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:HBox width="100%" height="100%">
+		<mx:Spacer/>
+		<mx:TextArea id="ConfigXml" width="100%" height="100%"
+			fontFamily="Courier New" fontSize="12" wordWrap="false"/>
+		<mx:Spacer/>
+	</mx:HBox>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Load" width="150" click="onLoad()"/>	
+		<mx:Button label="Cancel" width="150" click="onCancel()"/>	
+	</mx:HBox>
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlViewer.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlViewer.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/XmlViewer.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="600" height="500" 
+	title="JBossESB Configuration XML" creationComplete="onWindowCreate();" showCloseButton="true"
+	close="onCancel();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			/** Injected XML to display */
+			[Bindable]
+			public var xml:XML;
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				ConfigXml.setFocus();
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Spacer/>
+	<mx:HBox width="100%" height="100%">
+		<mx:Spacer/>
+		<mx:TextArea id="ConfigXml" width="100%" height="100%" text="{xml.toXMLString()}"
+			fontFamily="Courier New" fontSize="12" wordWrap="false"/>
+		<mx:Spacer/>
+	</mx:HBox>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Close" width="150" click="onCancel();"/>	
+	</mx:HBox>
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/CreateProviderWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/CreateProviderWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/CreateProviderWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="Create a New Provider" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.JBossESBModel;
+			import model.providers.FileProvider;
+			import model.providers.FtpProvider;
+			import model.providers.JmsProvider;
+			import model.providers.Provider;
+			
+			/** Injected config reference */
+			[Bindable]
+			public var config:JBossESB;
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				ProviderName.setFocus();
+			}
+			
+			/**
+			 * Create a Provider based on the window selection.
+			 */
+			protected function onCreate():void {
+				var providerClass:Class = Class(ProviderTypes.selectedItem.data);
+				var provider:Provider = Provider(new providerClass());
+				provider.name = ProviderName.text;
+				config.providers.addItem(provider);
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Provider Name:" width="100%" required="true">
+			<mx:TextInput width="100%" id="ProviderName"/>
+		</mx:FormItem>
+		<mx:FormItem label="Provider Type:" width="100%" required="true">
+			<mx:ComboBox width="100%" id="ProviderTypes">
+			    <mx:dataProvider>
+			        <mx:Array>
+			            <mx:Object label="File Provider" data="{FileProvider}"/>
+			            <mx:Object label="FTP Provider" data="{FtpProvider}"/>
+			            <mx:Object label="JMS Provider" data="{JmsProvider}"/>
+			        </mx:Array>
+			    </mx:dataProvider>
+			</mx:ComboBox>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Create" click="onCreate();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileBusWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileBusWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileBusWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="File Bus Editor" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.providers.FileBus;
+			import model.providers.Provider;
+			
+			/** Injected reference to the provider */
+			public var provider:Provider;
+			
+			/** Indicates whether a new bus should be added on save */
+			public var isNew:Boolean;
+			
+			/** FileBus being edited */
+			[Bindable]
+			public var bus:FileBus;
+			
+			/**
+			 * Called to center window on creation.
+			 */
+			public function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				BusId.setFocus();
+			}
+			
+			/**
+			 * Called when the create button is pressed.
+			 */
+			public function onSave():void {
+				bus.id = BusId.text;
+				bus.useFilter = UseFilter.selected;
+				bus.filter.directory = Directory.text;
+				bus.filter.inputSuffix = InputSuffix.text;
+				bus.filter.workSuffix = WorkSuffix.text;
+				bus.filter.postDelete = PostDelete.selected;
+				bus.filter.postDirectory = PostDirectory.text;
+				bus.filter.postSuffix = PostSuffix.text;
+				bus.filter.errorDelete = ErrorDelete.selected;
+				bus.filter.errorDirectory = ErrorDirectory.text;
+				bus.filter.errorSuffix = ErrorSuffix.text;
+				if (isNew) {
+					provider.buses.addItem(bus);
+				}
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+		     * Called when the cancel button is pressed.
+		     */
+			public function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Bus Id:" width="100%" required="true">
+			<mx:TextInput id="BusId" width="100%" text="{bus.id}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Filter:">
+			<mx:CheckBox label="Use message filter on bus" selected="{bus.useFilter}" 
+				width="100%" id="UseFilter"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:Form width="100%" id="FilterForm" enabled="{UseFilter.selected}">
+		<mx:FormItem label="Directory:" width="100%" required="true">
+			<mx:TextInput id="Directory" width="100%" text="{bus.filter.directory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Input Suffix:" width="100%" required="true">
+			<mx:TextInput id="InputSuffix" width="100%" text="{bus.filter.inputSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Work Suffix:" width="100%">
+			<mx:TextInput id="WorkSuffix" width="100%" text="{bus.filter.workSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Delete" width="100%">
+			<mx:CheckBox id="PostDelete" selected="{bus.filter.postDelete}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Directory:" width="100%">
+			<mx:TextInput id="PostDirectory" width="100%" text="{bus.filter.postDirectory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Suffix:" width="100%">
+			<mx:TextInput id="PostSuffix" width="100%" text="{bus.filter.postSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Delete" width="100%">
+			<mx:CheckBox id="ErrorDelete" selected="{bus.filter.errorDelete}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Directory:" width="100%">
+			<mx:TextInput id="ErrorDirectory" width="100%" text="{bus.filter.errorDirectory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Suffix:" width="100%">
+			<mx:TextInput id="ErrorSuffix" width="100%" text="{bus.filter.errorSuffix}"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onSave();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileProviderPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileProviderPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FileProviderPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	title="{provider.name} File Provider" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import model.providers.FileProvider;
+			
+			/** Injected file provider reference */
+			[Bindable]
+			public var provider:FileProvider;
+			
+			/**
+			 * Apply changes made in the UI.
+			 */
+			protected function applyChanges():void {
+				provider.name = ProviderName.text;
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Provider Name:" width="100%" required="true">
+			<mx:TextInput id="ProviderName" width="100%" text="{provider.name}"/>
+		</mx:FormItem>
+		<mx:FormItem>
+			<mx:Button label="Apply Changes" click="applyChanges();"/>
+		</mx:FormItem>
+	</mx:Form>
+	<view:BusesPanel width="100%" height="50%" provider="{provider}"/>
+	<view:PropertiesPanel width="100%" height="50%" properties="{provider.properties}"/>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpBusWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpBusWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpBusWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="FTP Bus Editor" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.providers.FtpBus;
+			import model.providers.FtpMessageFilter;
+			import model.providers.Provider;
+			
+			/** Injected reference to the provider */
+			public var provider:Provider;
+			
+			/** Indicates whether a new bus should be added on save */
+			public var isNew:Boolean;
+			
+			/** FileBus being edited */
+			[Bindable]
+			public var bus:FtpBus;
+			
+			/**
+			 * Called to center window on creation.
+			 */
+			public function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				BusId.setFocus();
+			}
+			
+			/**
+			 * Called when the create button is pressed.
+			 */
+			public function onSave():void {
+				bus.id = BusId.text;
+				bus.useFilter = UseFilter.selected;
+				bus.filter.directory = Directory.text;
+				bus.filter.username = Username.text;
+				bus.filter.password = Password.text;
+				bus.filter.inputSuffix = InputSuffix.text;
+				bus.filter.workSuffix = WorkSuffix.text;
+				bus.filter.postDelete = PostDelete.selected;
+				bus.filter.postDirectory = PostDirectory.text;
+				bus.filter.postSuffix = PostSuffix.text;
+				bus.filter.errorDelete = ErrorDelete.selected;
+				bus.filter.errorDirectory = ErrorDirectory.text;
+				bus.filter.errorSuffix = ErrorSuffix.text;
+				bus.filter.passive = Passive.selected;
+				bus.filter.protocol = Protocol.selectedItem.data;
+				bus.filter.certificateUrl = CertificateUrl.text;
+				if (isNew) {
+					provider.buses.addItem(bus);
+				}
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+		     * Called when the cancel button is pressed.
+		     */
+			public function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Bus Id:" width="100%" required="true">
+			<mx:TextInput id="BusId" width="100%" text="{bus.id}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Filter:">
+			<mx:CheckBox label="Use message filter on bus" selected="{bus.useFilter}" 
+				width="100%" id="UseFilter"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:Form width="100%" id="FilterForm" enabled="{UseFilter.selected}">
+		<mx:FormItem label="Directory:" width="100%" required="true">
+			<mx:TextInput id="Directory" width="100%" text="{bus.filter.directory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Username:" width="100%" required="true">
+			<mx:TextInput id="Username" width="100%" text="{bus.filter.username}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Password:" width="100%" required="true">
+			<mx:TextInput id="Password" width="100%" text="{bus.filter.password}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Input Suffix:" width="100%" required="true">
+			<mx:TextInput id="InputSuffix" width="100%" text="{bus.filter.inputSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Work Suffix:" width="100%">
+			<mx:TextInput id="WorkSuffix" width="100%" text="{bus.filter.workSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Delete" width="100%">
+			<mx:CheckBox id="PostDelete" selected="{bus.filter.postDelete}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Directory:" width="100%">
+			<mx:TextInput id="PostDirectory" width="100%" text="{bus.filter.postDirectory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Post Suffix:" width="100%">
+			<mx:TextInput id="PostSuffix" width="100%" text="{bus.filter.postSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Delete" width="100%">
+			<mx:CheckBox id="ErrorDelete" selected="{bus.filter.errorDelete}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Directory:" width="100%">
+			<mx:TextInput id="ErrorDirectory" width="100%" text="{bus.filter.errorDirectory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Error Suffix:" width="100%">
+			<mx:TextInput id="ErrorSuffix" width="100%" text="{bus.filter.errorSuffix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Passive" width="100%">
+			<mx:CheckBox id="Passive" selected="{bus.filter.passive}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Protocol:" width="100%">
+			<mx:ComboBox id="Protocol" width="100%">
+				<mx:dataProvider>
+				    <mx:Array>
+				        <mx:Object label="FTP" data="ftp"/>
+				        <mx:Object label="FTPS" data="ftps"/>
+				        <mx:Object label="SFTP" data="sftp"/>
+				    </mx:Array>
+				</mx:dataProvider>
+			</mx:ComboBox>
+		</mx:FormItem>
+		<mx:FormItem label="Certificate URL:" width="100%">
+			<mx:TextInput id="CertificateUrl" width="100%" text="{bus.filter.certificateUrl}"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onSave();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpProviderPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpProviderPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/FtpProviderPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	title="{provider.name} FTP Provider" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import model.providers.FtpProvider;
+	
+			/** Injected provider reference */
+			[Bindable]
+			public var provider:FtpProvider;
+			
+			/**
+			 * Apply changes made in the UI.
+			 */
+			protected function applyChanges():void {
+				provider.name = ProviderName.text;
+				provider.hostName = HostName.text;
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Provider Name:" width="100%" required="true">
+			<mx:TextInput id="ProviderName" width="100%" text="{provider.name}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Host Name:" width="100%" required="true">
+			<mx:TextInput id="HostName" width="100%" text="{provider.hostName}"/>
+		</mx:FormItem>
+		<mx:FormItem>
+			<mx:Button label="Apply Changes" click="applyChanges();"/>
+		</mx:FormItem>
+	</mx:Form>
+	<view:BusesPanel width="100%" height="50%" provider="{provider}"/>
+	<view:PropertiesPanel width="100%" height="50%" properties="{provider.properties}"/>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsBusWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsBusWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsBusWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="JMS Bus Editor" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.providers.JmsBus;
+			import model.providers.JmsMessageFilter;
+			import model.providers.Provider;
+			
+			/** Injected reference to the provider */
+			public var provider:Provider;
+			
+			/** Indicates whether a new bus should be added on save */
+			public var isNew:Boolean;
+			
+			/** FileBus being edited */
+			[Bindable]
+			public var bus:JmsBus;
+			
+			/**
+			 * Called to center window on creation.
+			 */
+			public function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				BusId.setFocus();
+			}
+			
+			/**
+			 * Called when the create button is pressed.
+			 */
+			public function onSave():void {
+				bus.id = BusId.text;
+				bus.useFilter = UseFilter.selected;
+				bus.filter.destName = DestinationName.text;
+				bus.filter.destType = DestinationType.selectedItem.data;
+				bus.filter.selector = Selector.text;
+				if (isNew) {
+					provider.buses.addItem(bus);
+				}
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+		     * Called when the cancel button is pressed.
+		     */
+			public function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Bus Id:" width="100%" required="true">
+			<mx:TextInput id="BusId" width="100%" text="{bus.id}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Filter:">
+			<mx:CheckBox label="Use message filter on bus" selected="{bus.useFilter}" 
+				width="100%" id="UseFilter"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:Form width="100%" id="FilterForm" enabled="{UseFilter.selected}">
+		<mx:FormItem label="Destination Name:" width="100%" required="true">
+			<mx:TextInput id="DestinationName" width="100%" text="{bus.filter.destName}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Destination Type:" width="100%" required="true">
+			<mx:ComboBox id="DestinationType" width="100%">
+				<mx:dataProvider>
+				    <mx:Array>
+				        <mx:Object label="Queue" data="QUEUE"/>
+				        <mx:Object label="Topic" data="TOPIC"/>
+				    </mx:Array>
+				</mx:dataProvider>
+			</mx:ComboBox>
+		</mx:FormItem>
+		<mx:FormItem label="Selector:" width="100%">
+			<mx:TextInput id="Selector" width="100%" text="{bus.filter.selector}"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onSave();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsProviderPanel.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsProviderPanel.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/providers/JmsProviderPanel.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
+	title="{provider.name} JMS Provider" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import model.providers.JmsProvider;
+			
+			/** Reference to JMS provider */
+			[Bindable]
+			public var provider:JmsProvider;
+			
+			/**
+			 * Apply changes made in the UI.
+			 */
+			protected function applyChanges():void {
+				provider.name = ProviderName.text;
+				provider.connectionFactory = ConnectionFactory.text;
+				provider.jndiContextFactory = JndiContextFactory.text;
+				provider.jndiPackagePrefix = JndiPkgPrefix.text;
+				provider.jndiUrl = JndiUrl.text;
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Provider Name:" width="100%" required="true">
+			<mx:TextInput id="ProviderName" width="100%" text="{provider.name}"/>
+		</mx:FormItem>
+		<mx:FormItem label="Connection Factory:" width="100%" required="true">
+			<mx:TextInput id="ConnectionFactory" width="100%" text="{provider.connectionFactory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="JNDI Context Factory:" width="100%">
+			<mx:TextInput id="JndiContextFactory" width="100%" text="{provider.jndiContextFactory}"/>
+		</mx:FormItem>
+		<mx:FormItem label="JNDI Package Prefix:" width="100%">
+			<mx:TextInput id="JndiPkgPrefix" width="100%" text="{provider.jndiPackagePrefix}"/>
+		</mx:FormItem>
+		<mx:FormItem label="JNDI URL:" width="100%" required="true">
+			<mx:TextInput id="JndiUrl" width="100%" text="{provider.jndiUrl}"/>
+		</mx:FormItem>
+		<mx:FormItem>
+			<mx:Button label="Apply Changes" click="applyChanges();"/>
+		</mx:FormItem>
+	</mx:Form>
+	<view:BusesPanel width="100%" height="50%" provider="{provider}"/>
+	<view:PropertiesPanel width="100%" height="50%" properties="{provider.properties}"/>
+</mx:Panel>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateActionWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateActionWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateActionWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="542" 
+	title="Service Action Editor" creationComplete="onWindowCreate();" xmlns:view="view.*">
+	<mx:Script>
+		<![CDATA[
+			import model.common.Property;
+			import mx.collections.ArrayCollection;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.services.Action;
+			import model.services.Service;
+			
+			/** Injected service reference */
+			[Bindable]
+			public var service:Service;
+			
+			/** Action being edited */
+			[Bindable]
+			protected var action:Action;
+			
+			/** Edited version of properties */
+			[Bindable]
+			protected var editedProperties:ArrayCollection = new ArrayCollection();
+			
+			/**
+			 * Load the UI from an existing action.
+			 */
+			public function loadFrom(existing:Action):void {
+				this.action = existing;
+				ActionName.text = existing.name;
+				ActionClass.text = existing.actionClass;
+				ProcFunction.text = existing.processingFunction;
+				this.editedProperties = Property.cloneProperties(existing.properties);
+			}
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				ActionName.setFocus();
+			}
+			
+			/**
+			 * Create an Action based on the window selection.
+			 */
+			protected function onCreate():void {
+				var newAction:Action = new Action();
+				newAction.name = ActionName.text;
+				newAction.actionClass = ActionClass.text;
+				newAction.processingFunction = ProcFunction.text;
+				newAction.properties = editedProperties;
+				if (action != null) {
+					var index:Number = 0;
+					for each (var current:Action in service.actions) {
+						if (action.name == current.name) {
+							service.actions.setItemAt(newAction, index);
+						}
+						index++;
+					}
+				} else {
+					service.actions.addItem(newAction);
+				}
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Action Name:" width="100%">
+			<mx:TextInput width="100%" id="ActionName"/>
+		</mx:FormItem>
+		<mx:FormItem label="Impl Class:" width="100%">
+			<mx:TextInput width="100%" id="ActionClass"/>
+		</mx:FormItem>
+		<mx:FormItem label="Process Function:" width="100%">
+			<mx:TextInput width="100%" id="ProcFunction"/>
+		</mx:FormItem>
+	</mx:Form>
+	<view:PropertiesPanel width="100%" height="200" properties="{editedProperties}"/>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onCreate();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateListenerWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateListenerWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateListenerWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="Service Listener Editor" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.collections.ArrayCollection;
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.providers.Bus;
+			import model.providers.FileBus;
+			import model.providers.FtpBus;
+			import model.providers.JmsBus;
+			import model.services.FileListener;
+			import model.services.FtpListener;
+			import model.services.JmsListener;
+			import model.services.Listener;
+			import model.services.Service;
+			
+			/** Injected config reference */
+			[Bindable]
+			public var config:JBossESB;
+			
+			/** Injected service reference */
+			[Bindable]
+			public var service:Service;
+			
+			/** Listener being edited */
+			protected var listener:Listener;
+			
+			/**
+			 * Load the UI from an existing listener.
+			 */
+			public function loadFrom(existing:Listener):void {
+				this.listener = existing;
+				Name.text = existing.name;
+				MaxThreads.value = existing.maxThreads;
+				IsGateway.selected = existing.isGateway;
+				if (existing is FileListener) {
+					PollFreq.value = FileListener(existing).pollFrequencySeconds;
+				}
+				if (existing is FtpListener) {
+					PollFreq.value = FtpListener(existing).pollFrequencySeconds;
+				}
+				var buses:ArrayCollection = config.getAllBuses();
+				for each (var bus:Bus in buses) {
+					if (existing.busIdRef == bus.id) {
+						AllBuses.selectedItem = bus;
+					}
+				}
+			}
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				Name.setFocus();
+			}
+			
+			/**
+			 * Create a Service based on the window selection.
+			 */
+			protected function onSave():void {
+				var selectedBus:Bus = AllBuses.selectedItem as Bus;
+				var newListener:Listener;
+				if (selectedBus is FileBus) {
+					var filelistener:FileListener = new FileListener();
+					filelistener.name = Name.text;
+					filelistener.busIdRef = selectedBus.id;
+					filelistener.maxThreads = MaxThreads.value;
+					filelistener.isGateway = IsGateway.selected;
+					filelistener.pollFrequencySeconds = PollFreq.value;
+					newListener = filelistener;
+				} else if (selectedBus is FtpBus) {
+					var ftplistener:FtpListener = new FtpListener();
+					ftplistener.name = Name.text;
+					ftplistener.busIdRef = selectedBus.id;
+					ftplistener.maxThreads = MaxThreads.value;
+					ftplistener.isGateway = IsGateway.selected;
+					ftplistener.pollFrequencySeconds = PollFreq.value;
+					newListener = ftplistener;
+				} else if (selectedBus is JmsBus) {
+					var jmslistener:JmsListener = new JmsListener();
+					jmslistener.name = Name.text;
+					jmslistener.busIdRef = selectedBus.id;
+					jmslistener.maxThreads = MaxThreads.value;
+					jmslistener.isGateway = IsGateway.selected;
+					newListener = jmslistener;
+				}
+				if (listener != null) {
+					var index:Number = 0;
+					for each (var current:Listener in service.listeners) {
+						if (listener.name == current.name) {
+							service.listeners.setItemAt(newListener, index);
+						}
+						index++;
+					}
+				} else {
+					service.listeners.addItem(newListener);
+				}
+ 				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Listener Name:" width="100%">
+			<mx:TextInput id="Name" width="100%"/>
+		</mx:FormItem>
+		<mx:FormItem label="Bus Reference:" width="100%">
+			<mx:ComboBox id="AllBuses" width="100%" 
+				dataProvider="{config.getAllBuses()}" labelField="id"/>
+		</mx:FormItem>
+		<mx:FormItem label="Max Threads:" width="100%">
+			<mx:NumericStepper id="MaxThreads" minimum="1" maximum="9999" stepSize="1"/>
+		</mx:FormItem>
+		<mx:FormItem label="Is Gateway:" width="100%">
+			<mx:CheckBox id="IsGateway" label=""/>
+		</mx:FormItem>
+		<mx:FormItem id="PollFreqItem" label="Poll Frequency:" width="100%" 
+			enabled="{!(AllBuses.selectedItem is JmsBus)}">
+			<mx:NumericStepper id="PollFreq" minimum="1" maximum="999999" stepSize="60" value="60"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Save" click="onSave();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateServiceWindow.mxml
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateServiceWindow.mxml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigEditor/view/services/CreateServiceWindow.mxml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" 
+	title="Create a New Service" creationComplete="onWindowCreate();">
+	<mx:Script>
+		<![CDATA[
+			import mx.managers.PopUpManager;
+			
+			import model.JBossESB;
+			import model.services.Service;
+			
+			/** Injected config reference */
+			[Bindable]
+			public var config:JBossESB;
+			
+			/**
+			 * Center window on the parent.
+			 */
+			protected function onWindowCreate():void {
+				PopUpManager.centerPopUp(this);
+				Category.setFocus();
+			}
+			
+			/**
+			 * Create a Service based on the window selection.
+			 */
+			protected function onCreate():void {
+				var service:Service = new Service();
+				service.category = Category.text;
+				service.name = Name.text;
+				service.description = Description.text;
+				config.services.addItem(service);
+				PopUpManager.removePopUp(this);
+			}
+			
+			/**
+			 * Hide this window.
+			 */
+			protected function onCancel():void {
+				PopUpManager.removePopUp(this);
+			}
+		]]>
+	</mx:Script>
+	<mx:Form width="100%">
+		<mx:FormItem label="Category:" width="100%">
+			<mx:TextInput width="100%" id="Category"/>
+		</mx:FormItem>
+		<mx:FormItem label="Name:" width="100%">
+			<mx:TextInput width="100%" id="Name"/>
+		</mx:FormItem>
+		<mx:FormItem label="Description:" width="100%">
+			<mx:TextInput width="100%" id="Description"/>
+		</mx:FormItem>
+	</mx:Form>
+	<mx:HRule width="100%"/>
+	<mx:HBox width="100%" horizontalAlign="right">
+		<mx:Button label="Create" click="onCreate();" width="100"/>
+		<mx:Button label="Cancel" click="onCancel();" width="100"/>
+	</mx:HBox>
+	
+</mx:TitleWindow>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.actionScriptProperties
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.actionScriptProperties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.actionScriptProperties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actionScriptProperties version="1" mainApplicationPath="ESBConfigModel.as">
+  <compiler additionalCompilerArguments="" copyDependentFiles="false" generateAccessible="false" strict="true" warn="true" htmlGenerate="false" htmlPlayerVersionCheck="true" htmlPlayerVersion="9.0.0" htmlExpressInstall="true" htmlHistoryManagement="false" outputFolderPath="bin">
+    <compilerSourcePath/>
+    <libraryPath>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/playerglobal.swc" linkType="2"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/utilities.swc" linkType="1"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/flex.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/framework.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/rpc.swc" linkType="1"/>
+      <libraryPathEntry kind="3" path="${FRAMEWORKS}/libs/charts.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <libraryPathEntry kind="1" path="${FRAMEWORKS}/locale/{locale}" linkType="1"/>
+    </libraryPath>
+    <sourceAttachmentPath>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/flex.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/framework.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+      <sourceAttachmentPathEntry kind="3" path="${FRAMEWORKS}/libs/charts.swc" linkType="1" sourcepath="${FRAMEWORKS}/source"/>
+    </sourceAttachmentPath>
+  </compiler>
+  <applications>
+    <application path="ESBConfigModel.as"/>
+  </applications>
+  <buildCSSFiles/>
+</actionScriptProperties>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.flexLibProperties
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.flexLibProperties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.flexLibProperties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<flexLibProperties version="1">
+  <includeClasses>
+    <classEntry path="model.JBossESB"/>
+    <classEntry path="model.JBossESBModel"/>
+    <classEntry path="model.ServerManager"/>
+    <classEntry path="model.common.Namespaces"/>
+    <classEntry path="model.common.Property"/>
+    <classEntry path="model.common.XmlUtils"/>
+    <classEntry path="model.providers.Bus"/>
+    <classEntry path="model.providers.FileBus"/>
+    <classEntry path="model.providers.FileMessageFilter"/>
+    <classEntry path="model.providers.FileProvider"/>
+    <classEntry path="model.providers.FtpBus"/>
+    <classEntry path="model.providers.FtpMessageFilter"/>
+    <classEntry path="model.providers.FtpProvider"/>
+    <classEntry path="model.providers.JmsBus"/>
+    <classEntry path="model.providers.JmsMessageFilter"/>
+    <classEntry path="model.providers.JmsProvider"/>
+    <classEntry path="model.providers.Provider"/>
+    <classEntry path="model.services.Action"/>
+    <classEntry path="model.services.ActionTemplateManager"/>
+    <classEntry path="model.services.FileListener"/>
+    <classEntry path="model.services.FtpListener"/>
+    <classEntry path="model.services.JmsListener"/>
+    <classEntry path="model.services.Listener"/>
+    <classEntry path="model.services.Service"/>
+  </includeClasses>
+  <includeResources/>
+  <namespaceManifests/>
+</flexLibProperties>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.project
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.project	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.project	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ESBConfigModel</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.adobe.flexbuilder.project.flexbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.adobe.flexbuilder.project.flexlibnature</nature>
+		<nature>com.adobe.flexbuilder.project.actionscriptnature</nature>
+	</natures>
+</projectDescription>

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.settings/org.eclipse.core.resources.prefs
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.settings/org.eclipse.core.resources.prefs	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/.settings/org.eclipse.core.resources.prefs	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,3 @@
+#Mon Feb 19 11:38:21 EST 2007
+eclipse.preferences.version=1
+encoding/<project>=utf-8

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESB.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESB.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESB.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,86 @@
+package model {
+	
+	import model.providers.Bus;
+	import model.providers.Provider;
+	import model.services.Service;
+	
+	import mx.collections.ArrayCollection;
+	import model.common.Namespaces;
+	
+	/**
+	 * Configuration for JBossESB.
+	 */
+	[Bindable]
+	public class JBossESB {
+		
+		/** Parameter reload interval */
+		public var paramReloadSecs:Number = 5;
+		
+		/** Collection of providers */
+		public var providers:ArrayCollection = new ArrayCollection();
+		
+		/** Collection of services */
+		public var services:ArrayCollection = new ArrayCollection();
+		
+		/** QName for the providers element */
+		private static const PROVIDERS:QName = new QName(Namespaces.JESB, "providers");
+		
+		/** QName for the providers element */
+		private static const SERVICES:QName = new QName(Namespaces.JESB, "services");
+		
+		/**
+		 * Create the JBossESB config model from XML.
+		 */
+		public function JBossESB(xml:XML = null) {
+			if (xml != null) {
+				if (xml.elements(PROVIDERS).length() == 1) {
+					this.providers = Provider.getProviders(XML(xml.elements(PROVIDERS)));
+				}
+				if (xml.elements(SERVICES).length() == 1) {
+					this.services = Service.getServices(XML(xml.elements(SERVICES)));
+				}
+			}
+		}
+		
+		/**
+		 * Get the string representation of the config XML.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<jbossesb ";
+			xml = xml + "xmlns=\"http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd\" ";
+			xml = xml + "parameterReloadSecs=\"" + this.paramReloadSecs + "\">";
+			xml = xml + "<providers>";
+			for each (var provider:Provider in this.providers) {
+				xml = xml + provider.getXmlString();
+			}
+			xml = xml + "</providers>";
+			xml = xml + "<services>";
+			for each (var service:Service in this.services) {
+				xml = xml + service.getXmlString();
+			}
+			xml = xml + "</services>";
+			xml = xml + "</jbossesb>";
+			return xml;
+		}
+		
+		/**
+		 * Get the config XML.
+		 */
+		public function getXml():XML {
+			return new XML(getXmlString());
+		}
+		
+		/**
+		 * Gets the list of all buses in the configuration.
+		 */
+		public function getAllBuses():ArrayCollection {
+			var result:ArrayCollection = new ArrayCollection();
+			for each (var provider:Provider in this.providers) {
+				for each (var bus:Bus in provider.buses) {
+					result.addItem(bus);
+				}
+			}
+			return result;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESBModel.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESBModel.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/JBossESBModel.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,85 @@
+package model {
+	
+	import model.providers.Bus;
+	import model.providers.Provider;
+	import model.services.Action;
+	import model.services.ActionTemplateManager;
+	import model.services.Listener;
+	import model.services.Service;
+	import mx.collections.ArrayCollection;
+	import mx.controls.Alert;
+	
+	/**
+	 * The model that holds information about the loaded configuration.
+	 */
+	[Bindable]
+	public class JBossESBModel {
+		
+		/** Configuration model loaded from XML */
+		private var _config:JBossESB = new JBossESB();
+
+		/** Base URL for server calls */
+		public var serverBaseUrl:String = "http://localhost:8080/";
+		
+		/** List of action templates */
+		public var actionTemplates:ArrayCollection = new ArrayCollection();
+		
+		/** Currently selected provider */
+		public var selectedProvider:Provider;
+		
+		/** Currently selected bus */
+		public var selectedBus:Bus;
+		
+		/** Currently selected service */
+		public var selectedService:Service;
+		
+		/** Currently selected listener */
+		public var selectedListener:Listener;
+		
+		/** Currently selected action */
+		public var selectedAction:Action;
+		
+		/**
+		 * Setter for the working configuration.
+		 */
+		public function set config(config:JBossESB):void {
+			this._config = config;
+			this.selectedProvider = null;
+			this.selectedService = null;
+			this.selectedBus = null;
+			this.selectedAction = null;
+			this.selectedListener = null;
+		}
+		
+		/**
+		 * Getter for the working configuration.
+		 */
+		public function get config():JBossESB {
+			return this._config;
+		}
+			
+		/**
+		 * Save the working configuration as XML.
+		 */
+		public function getConfigAsXml():XML {
+			return config.getXml();
+		}
+		
+		/**
+		 * Load the working configuration from XML.
+		 */
+		public function setConfigFromXml(xml:XML):void {
+			try {
+				var startTag:String = xml.localName();
+				if ((startTag != null) || (startTag == "jbossesb")) {
+					var newConfig:JBossESB = new JBossESB(xml);
+					config = newConfig;
+				} else {
+					Alert.show("JBossESB Configuration Invalid", "Error");
+				}
+			} catch (err:Error) {
+				Alert.show(err.message, "Error Parsing Configuration");
+			}
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/ServerManager.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/ServerManager.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/ServerManager.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,98 @@
+package model {
+	
+	import flash.events.Event;
+	import flash.events.IOErrorEvent;
+	import flash.events.SecurityErrorEvent;
+	import flash.net.URLLoader;
+	import flash.net.URLRequest;
+	import flash.net.URLRequestMethod;
+	
+	import model.JBossESB;
+	import model.JBossESBModel;
+	
+	import mx.controls.Alert;
+	
+	/**
+	 * Manages interactions with a remote server.
+	 */
+	public class ServerManager {
+			
+		/** Injected config reference */
+		public var jmodel:JBossESBModel;
+			
+		/** Loads data from the server */
+		protected var downloader:URLLoader;
+		
+		/** Uploads data to the server */
+		protected var uploader:URLLoader;
+		
+		/** URL called to download the config from the server */
+		protected static const DOWNLOAD_SUFFIX:String = "esbconfig/download";
+		
+		/** URL called to upload a config to the server */
+		protected static const UPLOAD_SUFFIX:String = "esbconfig/upload";
+		
+		/**
+		 * Create a ServerManager and initialize it.
+		 */
+		public function ServerManager() {
+			this.downloader = new URLLoader();
+			this.downloader.addEventListener(Event.COMPLETE, downloadComplete);
+			this.downloader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityError);
+			this.downloader.addEventListener(IOErrorEvent.IO_ERROR, ioError);
+			
+			this.uploader = new URLLoader();
+			this.uploader.addEventListener(Event.COMPLETE, uploadComplete);
+			this.uploader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityError);
+			this.uploader.addEventListener(IOErrorEvent.IO_ERROR, ioError);
+		}
+			
+		/**
+		 * Start a download.
+		 */
+		public function startDownload():void {
+			var request:URLRequest = new URLRequest();
+			request.url = jmodel.serverBaseUrl + DOWNLOAD_SUFFIX;
+			this.downloader.load(request);
+		}
+		
+		/**
+		 * Called when a config download is complete.
+		 */
+		protected function downloadComplete(event:Event):void {
+			jmodel.setConfigFromXml(new XML(this.downloader.data));
+		}
+		
+		/**
+		 * Start an upload.
+		 */
+		public function startUpload():void {
+			var request:URLRequest = new URLRequest();
+			request.url = jmodel.serverBaseUrl + UPLOAD_SUFFIX;
+			request.method = URLRequestMethod.POST;
+			request.data = jmodel.getConfigAsXml().toXMLString();
+			this.uploader.load(request);
+		}
+		
+		/**
+		 * Called when a config download is complete.
+		 */
+		protected function uploadComplete(event:Event):void {
+			Alert.show("Configuration uploaded successfully.", "Success");
+		}
+		
+		/**
+		 * Called when there is a security error making a URL request.
+		 */
+		protected function securityError(event:SecurityErrorEvent):void {
+			Alert.show(event.text, "Security Error");
+		}
+		
+		/**
+		 * Called when there is an IO error making a URL request.
+		 */
+		protected function ioError(event:IOErrorEvent):void {
+			Alert.show(event.text, "Error Contacting Server");
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Namespaces.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Namespaces.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Namespaces.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,12 @@
+package model.common {
+	
+	/**
+	 * Namespaces used in JBoss ESB configurations.
+	 */
+	public class Namespaces {
+		
+		/** Main JBoss ESB namespace */
+		public static const JESB:Namespace = 
+			new Namespace("http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.xsd");
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Property.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Property.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/Property.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,90 @@
+package model.common {
+	
+	import mx.collections.ArrayCollection;
+	
+	/**
+	 * A name-value pair.
+	 */
+	[Bindable]
+	public class Property {
+		
+		/** Property name */
+		public var name:String;
+		
+		/** Property value */
+		public var value:String;
+		
+		/** Nested elements */
+		public var nested:String;
+		
+		/** QName for the providers element */
+		private static const PROPERTY:QName = new QName(Namespaces.JESB, "property");
+		
+		/**
+		 * Create a Property from XML.
+		 */
+		public function Property(xml:XML = null) {
+			if (xml != null) {
+				this.name = xml. at name;
+				this.value = xml. at value;
+				this.nested = xml.children().toXMLString();
+			}
+		}
+		
+		/**
+		 * Convenience method for existence of nested content.
+		 */
+		public function get hasNested():Boolean {
+			return ((this.nested != null) && (this.nested.length > 0));
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<property ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " value=\"" + this.value + "\" ";
+			xml = xml + ">";
+			if ((this.nested != null) && (this.nested.length > 0)) {
+				xml = xml + this.nested;
+			}
+			xml = xml + "</property>";
+			return xml;
+		}
+		
+		/**
+		 * Create a clone of this property.
+		 */
+		public function clone():Property {
+			var result:Property = new Property();
+			result.name = this.name;
+			result.value = this.value;
+			result.nested = this.nested;
+			return result;
+		}
+		
+		/**
+		 * Clone a list of properties.
+		 */
+		public static function cloneProperties(original:ArrayCollection):ArrayCollection {
+			var result:ArrayCollection = new ArrayCollection();
+			for each (var prop:Property in original) {
+				result.addItem(prop.clone());
+			}
+			return result;
+		}
+		
+		/**
+		 * Get a list of properties from an enclosing element.
+		 */
+		public static function getProperties(xml:XML):ArrayCollection {
+			var result:ArrayCollection = new ArrayCollection();
+			for each (var propXml:XML in xml.elements(PROPERTY)) {
+				var prop:Property = new Property(propXml);
+				result.addItem(prop);
+			}
+			return result;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/XmlUtils.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/XmlUtils.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/common/XmlUtils.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,22 @@
+package model.common {
+	
+	/**
+	 * Utilities for XML data handling.
+	 */
+	public class XmlUtils {
+		
+		/**
+		 * Converts an XMLList for an attribute into a boolean value.
+		 */
+		public static function asBoolean(list:XMLList, fallback:Boolean):Boolean {
+			if ((list == null) || (list.length() == 0)) {
+				return fallback;
+			}
+			var value:String = list[0].toString();
+			if (value == "false") {
+				return false;
+			}
+			return true;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Bus.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Bus.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Bus.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,55 @@
+package model.providers {
+	
+	import model.common.Namespaces;
+	import model.common.Property;
+	
+	import mx.collections.ArrayCollection;
+	
+	/**
+	 * A bus on which data from the provider is placed.
+	 */
+	[Bindable]
+	public class Bus {
+		
+		/** Unique bus id */
+		public var id:String;
+		
+		/** Collection of provider props */
+		public var properties:ArrayCollection;
+		
+		/**
+		 * Create a Bus from XML.
+		 */
+		public function Bus(xml:XML = null) {
+			if (xml != null) {
+				this.id = xml. at busid;
+				this.properties = Property.getProperties(xml);
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			return null;
+		}
+		
+		/**
+		 * Get a list of buses from an enclosing element.
+		 */
+		public static function getBuses(xml:XML):ArrayCollection {
+			var results:ArrayCollection = new ArrayCollection();
+			for each (var busXml:XML in xml.children()) {
+				var tag:String = busXml.localName();
+				if (tag == "fs-bus") {
+					results.addItem(new FileBus(busXml));					
+				} else if (tag == "ftp-bus") {
+					results.addItem(new FtpBus(busXml));					
+				} else if (tag == "jms-bus") {
+					results.addItem(new JmsBus(busXml));					
+				}
+			}
+			return results;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileBus.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileBus.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileBus.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,50 @@
+package model.providers {
+	
+	import model.common.Namespaces;
+	
+	/**
+	 * Bus instance for file protocol.
+	 */
+	[Bindable]
+	public class FileBus extends Bus {
+		
+		/** Filter options for the bus */
+		public var filter:FileMessageFilter = new FileMessageFilter();
+		
+		/** Indicates whether the filter should be used */
+		public var useFilter:Boolean = true;
+		
+		/** QName for the providers element */
+		private static const FILTER:QName = new QName(Namespaces.JESB, "fs-message-filter");
+		
+		/**
+		 * Create a FileBus from XML.
+		 */
+		public function FileBus(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				var filterXml:XMLList = xml.elements(FILTER);
+				if (filterXml.length() > 0) {
+					this.filter = new FileMessageFilter(filterXml[0]);
+					this.useFilter = true;
+				} else {
+					this.useFilter = false;
+				}
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<fs-bus ";
+			xml = xml + " busid=\"" + this.id + "\" ";
+			xml = xml + ">";
+			if (useFilter) {
+				xml = xml + filter.getXmlString();
+			}
+			xml = xml + "</fs-bus>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileMessageFilter.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileMessageFilter.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileMessageFilter.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,83 @@
+package model.providers {
+	
+	import model.common.XmlUtils;
+	
+	/**
+	 * Message filter used with FileBus
+	 */
+	[Bindable]
+	public class FileMessageFilter {
+		
+		/** Filter directory */
+		public var directory:String;
+		
+		/** Filter input suffix */
+		public var inputSuffix:String;
+		
+		/** Filter work suffix */
+		public var workSuffix:String = ".esbInProcess";
+		
+		/** Flag for post delete */
+		public var postDelete:Boolean = true;
+		
+		/** Filter post directory */
+		public var postDirectory:String = "processed";
+		
+		/** Filter post suffix */
+		public var postSuffix:String = ".esbDone";
+		
+		/** Flag for error delete */
+		public var errorDelete:Boolean = true;
+		
+		/** Filter error directory */
+		public var errorDirectory:String = "processed";
+		
+		/** Filter error suffix */
+		public var errorSuffix:String = ".esbERROR";
+		
+		/**
+		 * Create a FileMessageFilter from XML.
+		 */
+		public function FileMessageFilter(xml:XML = null) {
+			if (xml != null) {
+				this.directory = xml.attribute("directory");
+				this.inputSuffix = xml.attribute("input-suffix");
+				this.workSuffix = xml.attribute("work-suffix");
+				this.postDelete = XmlUtils.asBoolean(xml.attribute("post-delete"), true);
+				this.postDirectory = xml.attribute("post-directory");
+				this.postSuffix = xml.attribute("post-suffix");
+				this.errorDelete = XmlUtils.asBoolean(xml.attribute("error-delete"), true);
+				this.errorDirectory = xml.attribute("error-directory");
+				this.errorSuffix = xml.attribute("error-suffix");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<fs-message-filter ";
+			xml = xml + " directory=\"" + this.directory + "\" ";
+			xml = xml + " input-suffix=\"" + this.inputSuffix + "\" ";
+			if (this.workSuffix.length > 0) {
+				xml = xml + " work-suffix=\"" + this.workSuffix + "\" ";
+			}
+			xml = xml + " post-delete=\"" + this.postDelete + "\" ";
+			if (this.postDirectory.length > 0) {
+				xml = xml + " post-directory=\"" + this.postDirectory + "\" ";
+			}
+			if (this.postSuffix.length > 0) {
+				xml = xml + " post-suffix=\"" + this.postSuffix + "\" ";
+			}
+			xml = xml + " error-delete=\"" + this.errorDelete + "\" ";
+			if (this.errorDirectory.length > 0) {
+				xml = xml + " error-directory=\"" + this.errorDirectory + "\" ";
+			}
+			if (this.errorSuffix.length > 0) {
+				xml = xml + " error-suffix=\"" + this.errorSuffix + "\" ";
+			}
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileProvider.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileProvider.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FileProvider.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,30 @@
+package model.providers {
+	
+	/**
+	 * Provider that monitors a file system.
+	 */
+	[Bindable]
+	public class FileProvider extends Provider {
+		
+		/**
+		 * Create a FileProvider from XML.
+		 */
+		public function FileProvider(xml:XML = null) {
+			super(xml);
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<fs-provider ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + ">";
+			for each (var bus:Bus in this.buses) {
+				xml = xml + bus.getXmlString();
+			}
+			xml = xml + "</fs-provider>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpBus.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpBus.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpBus.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,50 @@
+package model.providers {
+	
+	import model.common.Namespaces;
+	
+	/**
+	 * Bus instance for FTP protocol.
+	 */
+	[Bindable]
+	public class FtpBus extends Bus {
+		
+		/** Filter options for the bus */
+		public var filter:FtpMessageFilter = new FtpMessageFilter();
+		
+		/** Indicates whether the filter should be used */
+		public var useFilter:Boolean = true;
+		
+		/** QName for the providers element */
+		private static const FILTER:QName = new QName(Namespaces.JESB, "ftp-message-filter");
+		
+		/**
+		 * Create a FileBus from XML.
+		 */
+		public function FtpBus(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				var filterXml:XMLList = xml.elements(FILTER);
+				if (filterXml.length() > 0) {
+					this.filter = new FtpMessageFilter(filterXml[0]);
+					this.useFilter = true;
+				} else {
+					this.useFilter = false;
+				}
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<ftp-bus ";
+			xml = xml + " busid=\"" + this.id + "\" ";
+			xml = xml + ">";
+			if (useFilter) {
+				xml = xml + filter.getXmlString();
+			}
+			xml = xml + "</ftp-bus>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpMessageFilter.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpMessageFilter.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpMessageFilter.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,110 @@
+package model.providers {
+	
+	import model.common.XmlUtils;
+	
+	/**
+	 * Message filter for an FtpBus
+	 */
+	[Bindable]
+	public class FtpMessageFilter {
+		
+		/** Filter directory */
+		public var directory:String;
+		
+		/** Filter username */
+		public var username:String;
+		
+		/** Filter password */
+		public var password:String;
+		
+		/** Filter input suffix */
+		public var inputSuffix:String;
+		
+		/** Filter work suffix */
+		public var workSuffix:String = ".esbInProcess";
+		
+		/** Flag for post delete */
+		public var postDelete:Boolean = true;
+		
+		/** Filter post directory */
+		public var postDirectory:String = "processed";
+		
+		/** Filter post suffix */
+		public var postSuffix:String = ".esbDone";
+		
+		/** Flag for error delete */
+		public var errorDelete:Boolean = true;
+		
+		/** Filter error directory */
+		public var errorDirectory:String = "processed";
+		
+		/** Filter error suffix */
+		public var errorSuffix:String = ".esbERROR";
+		
+		/** Flag for passive mode */
+		public var passive:Boolean = false;
+		
+		/** FTP protocol */
+		public var protocol:String;
+		
+		/** URL for certificate */
+		public var certificateUrl:String;
+		
+		/**
+		 * Create a FileMessageFilter from XML.
+		 */
+		public function FtpMessageFilter(xml:XML = null) {
+			if (xml != null) {
+				this.directory = xml.attribute("directory");
+				this.username = xml.attribute("username");
+				this.password = xml.attribute("password");
+				this.inputSuffix = xml.attribute("input-suffix");
+				this.workSuffix = xml.attribute("work-suffix");
+				this.postDelete = XmlUtils.asBoolean(xml.attribute("post-delete"), true);
+				this.postDirectory = xml.attribute("post-directory");
+				this.postSuffix = xml.attribute("post-suffix");
+				this.errorDelete = XmlUtils.asBoolean(xml.attribute("error-delete"), true);
+				this.errorDirectory = xml.attribute("error-directory");
+				this.errorSuffix = xml.attribute("error-suffix");
+				this.passive = XmlUtils.asBoolean(xml.attribute("passive"), false);
+				this.protocol = xml.attribute("protocol");
+				this.certificateUrl = xml.attribute("certificate-url");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<ftp-message-filter ";
+			xml = xml + " directory=\"" + this.directory + "\" ";
+			xml = xml + " username=\"" + this.username + "\" ";
+			xml = xml + " password=\"" + this.password + "\" ";
+			xml = xml + " input-suffix=\"" + this.inputSuffix + "\" ";
+			if (this.workSuffix.length > 0) {
+				xml = xml + " work-suffix=\"" + this.workSuffix + "\" ";
+			}
+			xml = xml + " post-delete=\"" + this.postDelete + "\" ";
+			if (this.postDirectory.length > 0) {
+				xml = xml + " post-directory=\"" + this.postDirectory + "\" ";
+			}
+			if (this.postSuffix.length > 0) {
+				xml = xml + " post-suffix=\"" + this.postSuffix + "\" ";
+			}
+			xml = xml + " error-delete=\"" + this.errorDelete + "\" ";
+			if (this.errorDirectory.length > 0) {
+				xml = xml + " error-directory=\"" + this.errorDirectory + "\" ";
+			}
+			if (this.errorSuffix.length > 0) {
+				xml = xml + " error-suffix=\"" + this.errorSuffix + "\" ";
+			}
+			xml = xml + " passive=\"" + this.passive + "\" ";
+			xml = xml + " protocol=\"" + this.protocol + "\" ";
+			if (this.certificateUrl.length > 0) {
+				xml = xml + " certificate-url=\"" + this.certificateUrl + "\" ";
+			}
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpProvider.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpProvider.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/FtpProvider.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,37 @@
+package model.providers {
+	
+	/**
+	 * Provider that loads data from an FTP site.
+	 */
+	[Bindable]
+	public class FtpProvider extends Provider {
+		
+		/** FTP host name */
+		public var hostName:String;
+		
+		/**
+		 * Create a FtpProvider from XML.
+		 */
+		public function FtpProvider(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				this.hostName = xml. at hostname;
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<ftp-provider ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " hostname=\"" + this.hostName + "\" ";
+			xml = xml + ">";
+			for each (var bus:Bus in this.buses) {
+				xml = xml + bus.getXmlString();
+			}
+			xml = xml + "</ftp-provider>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsBus.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsBus.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsBus.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,50 @@
+package model.providers {
+	
+	import model.common.Namespaces;
+	
+	/**
+	 * Bus instance for JMS.
+	 */
+	[Bindable]
+	public class JmsBus extends Bus {
+		
+		/** Filter options for the bus */
+		public var filter:JmsMessageFilter = new JmsMessageFilter();
+		
+		/** Indicates whether the filter should be used */
+		public var useFilter:Boolean = true;
+		
+		/** QName for the providers element */
+		private static const FILTER:QName = new QName(Namespaces.JESB, "jms-message-filter");
+		
+		/**
+		 * Create a FileBus from XML.
+		 */
+		public function JmsBus(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				var filterXml:XMLList = xml.elements(FILTER);
+				if (filterXml.length() > 0) {
+					this.filter = new JmsMessageFilter(filterXml[0]);
+					this.useFilter = true;
+				} else {
+					this.useFilter = false;
+				}
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<jms-bus ";
+			xml = xml + " busid=\"" + this.id + "\" ";
+			xml = xml + ">";
+			if (useFilter) {
+				xml = xml + filter.getXmlString();
+			}
+			xml = xml + "</jms-bus>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsMessageFilter.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsMessageFilter.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsMessageFilter.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,49 @@
+package model.providers {
+	
+	/**
+	 * Message filter for an FtpBus
+	 */
+	[Bindable]
+	public class JmsMessageFilter {
+		
+		/** Destination name */
+		public var destName:String;
+		
+		/** Destination type */
+		public var destType:String;
+		
+		/** Selector */
+		public var selector:String;
+		
+		/** Constant for queue dest type */
+		public static const QUEUE:String = "QUEUE";
+		
+		/** Constant for topic dest type */
+		public static const TOPIC:String = "TOPIC";
+		
+		/**
+		 * Create a FileMessageFilter from XML.
+		 */
+		public function JmsMessageFilter(xml:XML = null) {
+			if (xml != null) {
+				this.destName = xml.attribute("dest-name");
+				this.destType = xml.attribute("dest-type");
+				this.selector = xml.attribute("selector");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<jms-message-filter ";
+			xml = xml + " dest-name=\"" + this.destName + "\" ";
+			xml = xml + " dest-type=\"" + this.destType + "\" ";
+			if (this.selector.length > 0) {
+				xml = xml + " selector=\"" + this.selector + "\" ";
+			}
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsProvider.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsProvider.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/JmsProvider.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,56 @@
+package model.providers {
+	
+	/**
+	 * Provider that loads data from JMS.
+	 */
+	[Bindable]
+	public class JmsProvider extends Provider {
+		
+		/** JMS connection factory */
+		public var connectionFactory:String;
+		
+		/** JMS JNDI context factory */
+		public var jndiContextFactory:String;
+		
+		/** JMS JNDI package prefix */
+		public var jndiPackagePrefix:String;
+		
+		/** JMS JNDI URL */
+		public var jndiUrl:String;
+		
+		/**
+		 * Create a JmsProvider from XML.
+		 */
+		public function JmsProvider(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				this.connectionFactory = xml.attribute("connection-factory");
+				this.jndiContextFactory = xml.attribute("jndi-context-factory");
+				this.jndiPackagePrefix = xml.attribute("jndi-pkg-prefix");
+				this.jndiUrl = xml.attribute("jndi-URL");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<jms-provider ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " connection-factory=\"" + this.connectionFactory + "\" ";
+			if (this.jndiContextFactory.length > 0) {
+				xml = xml + " jndi-context-factory=\"" + this.jndiContextFactory + "\" ";
+			}
+			if (this.jndiPackagePrefix.length > 0) {
+				xml = xml + " jndi-pkg-prefix=\"" + this.jndiPackagePrefix + "\" ";
+			}
+			xml = xml + " jndi-URL=\"" + this.jndiUrl + "\" ";
+			xml = xml + ">";
+			for each (var bus:Bus in this.buses) {
+				xml = xml + bus.getXmlString();
+			}
+			xml = xml + "</jms-provider>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Provider.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Provider.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/providers/Provider.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,58 @@
+package model.providers {
+	
+	import model.common.Property;
+	
+	import mx.collections.ArrayCollection;
+	
+	/**
+	 * Specifies a data provider for getting information onto a bus.
+	 */
+	[Bindable]
+	public class Provider {
+		
+		/** Provider name */
+		public var name:String;
+		
+		/** Collection of provider props */
+		public var properties:ArrayCollection = new ArrayCollection();
+		
+		/** Collection of buses */
+		public var buses:ArrayCollection = new ArrayCollection();
+		
+		/**
+		 * Create a provider from XML.
+		 */
+		public function Provider(xml:XML = null) {
+			if (xml != null) {
+				this.name = xml. at name;
+				this.properties = Property.getProperties(xml);
+				this.buses = Bus.getBuses(xml);
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			return null;
+		}
+		
+		/**
+		 * Load a list of providers from XML.
+		 */
+		public static function getProviders(xml:XML):ArrayCollection {
+			var results:ArrayCollection = new ArrayCollection();
+			for each (var providerXml:XML in xml.children()) {
+				var tag:String = providerXml.localName();
+				if (tag == "fs-provider") {
+					results.addItem(new FileProvider(providerXml));					
+				} else if (tag == "ftp-provider") {
+					results.addItem(new FtpProvider(providerXml));					
+				} else if (tag == "jms-provider") {
+					results.addItem(new JmsProvider(providerXml));					
+				}
+			}
+			return results;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Action.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Action.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Action.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,78 @@
+package model.services {
+	
+	import model.common.Property;
+	
+	import mx.collections.ArrayCollection;
+	
+	/**
+	 * Action performed on messages received by the service.
+	 */
+	[Bindable]
+	public class Action {
+		
+		/** Action name */
+		public var name:String;
+		
+		/** Class executed by action */
+		public var actionClass:String;
+		
+		/** Function to be executed on actionClass */
+		public var processingFunction:String;
+		
+		/** Action properties */
+		public var properties:ArrayCollection;
+		
+		/**
+		 * Create an Action from XML.
+		 */
+		public function Action(xml:XML = null) {
+			if (xml != null) {
+				this.name = xml. at name;
+				this.actionClass = xml.attribute("class");
+				this.processingFunction = xml. at process;
+				this.properties = Property.getProperties(xml);
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<action ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " class=\"" + this.actionClass + "\" ";
+			if ((this.processingFunction != null) && (this.processingFunction.length > 0)) {
+				xml = xml + " process=\"" + this.processingFunction + "\" ";
+			}
+			xml = xml + ">";
+			for each (var property:Property in properties) {
+				xml = xml + property.getXmlString();
+			}
+			xml = xml + "</action>";
+			return xml;
+		}
+		
+		/**
+		 * Create a clone of this action.
+		 */
+		public function clone():Action {
+			var action:Action = new Action();
+			action.name = this.name;
+			action.actionClass = this.actionClass;
+			action.processingFunction = this.processingFunction;
+			action.properties = Property.cloneProperties(this.properties);
+			return action;
+		}
+		
+		/**
+		 * Load a list of actions from XML.
+		 */
+		public static function getActions(xml:XML):ArrayCollection {
+			var results:ArrayCollection = new ArrayCollection();
+			for each (var actionXml:XML in xml.children()) {
+				results.addItem(new Action(actionXml));					
+			}
+			return results;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/ActionTemplateManager.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/ActionTemplateManager.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/ActionTemplateManager.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,75 @@
+package model.services {
+	
+	import flash.events.Event;
+	import flash.net.URLLoader;
+	import flash.net.URLRequest;
+	
+	import model.JBossESBModel;
+	
+	import mx.collections.ArrayCollection;
+	import mx.controls.Alert;
+	import flash.events.IOErrorEvent;
+	
+	/**
+	 * Manages the list of action templates.
+	 */
+	public class ActionTemplateManager {
+		
+		/** Injected model reference */
+		private var _jmodel:JBossESBModel;
+
+		/** Loads action templates via HTTP */
+		protected var loader:URLLoader;
+			
+		/** URL called to download the action templates from the server */
+		protected static const TEMPLATES_SUFFIX:String = "esbconfig/download?file=actions";
+	
+		/**
+		 * Create the template manager.
+		 */
+		public function ActionTemplateManager() {
+			this.loader = new URLLoader();
+			this.loader.addEventListener(Event.COMPLETE, receivedTemplates);
+			this.loader.addEventListener(IOErrorEvent.IO_ERROR, ioError);
+		}
+		
+		/**
+		 * Getter for ESB model.
+		 */
+		public function get jmodel():JBossESBModel {
+			return _jmodel;
+		}
+		
+		/**
+		 * Setter for ESB model.
+		 */
+		public function set jmodel(model:JBossESBModel):void {
+			this._jmodel = model;
+			refresh();
+		}
+		
+		/**
+		 * Refresh the list of templates.
+		 */
+		public function refresh():void {
+			var request:URLRequest = new URLRequest();
+			request.url = jmodel.serverBaseUrl + TEMPLATES_SUFFIX;
+			this.loader.load(request);
+		}
+		
+		/**
+		 * Called when template data has been loaded.
+		 */
+		protected function receivedTemplates(event:Event):void {
+			var xml:XML = new XML(loader.data);
+			jmodel.actionTemplates = Action.getActions(xml);
+		}
+		
+		/**
+		 * Called on IO error loading templates.
+		 */
+		protected function ioError(event:IOErrorEvent):void {
+			Alert.show(event.text, "Unable to Load Action Templates");
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FileListener.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FileListener.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FileListener.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,36 @@
+package model.services {
+	
+	/**
+	 * Listener which references a FileBus.
+	 */
+	[Bindable]
+	public class FileListener extends Listener {
+		
+		/** Number of seconds between file polls */
+		public var pollFrequencySeconds:Number;
+		
+		/**
+		 * Create a FileListener from XML.
+		 */
+		public function FileListener(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				this.pollFrequencySeconds = xml.attribute("poll-frequency-seconds");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<fs-listener ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " busidref=\"" + this.busIdRef + "\" ";
+			xml = xml + " maxThreads=\"" + this.maxThreads + "\" ";
+			xml = xml + " is-gateway=\"" + this.isGateway + "\" ";
+			xml = xml + " poll-frequency-seconds=\"" + this.pollFrequencySeconds + "\" ";
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FtpListener.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FtpListener.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/FtpListener.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,36 @@
+package model.services {
+	
+	/**
+	 * Listener which references a FtpBus.
+	 */
+	[Bindable]
+	public class FtpListener extends Listener {
+		
+		/** Number of seconds between FTP polls */
+		public var pollFrequencySeconds:Number;
+		
+		/**
+		 * Create a FtpListener from XML.
+		 */
+		public function FtpListener(xml:XML = null) {
+			super(xml);
+			if (xml != null) {
+				this.pollFrequencySeconds = xml.attribute("poll-frequency-seconds");
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<ftp-listener ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " busidref=\"" + this.busIdRef + "\" ";
+			xml = xml + " maxThreads=\"" + this.maxThreads + "\" ";
+			xml = xml + " is-gateway=\"" + this.isGateway + "\" ";
+			xml = xml + " poll-frequency-seconds=\"" + this.pollFrequencySeconds + "\" ";
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/JmsListener.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/JmsListener.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/JmsListener.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,29 @@
+package model.services {
+	
+	/**
+	 * Listener which references a JmsBus.
+	 */
+	[Bindable]
+	public class JmsListener extends Listener {
+		
+		/**
+		 * Create a JmsListener from XML.
+		 */
+		public function JmsListener(xml:XML = null) {
+			super(xml);
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		override public function getXmlString():String {
+			var xml:String = "<jms-listener ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " busidref=\"" + this.busIdRef + "\" ";
+			xml = xml + " maxThreads=\"" + this.maxThreads + "\" ";
+			xml = xml + " is-gateway=\"" + this.isGateway + "\" ";
+			xml = xml + "/>";
+			return xml;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Listener.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Listener.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Listener.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,67 @@
+package model.services {
+	
+	import model.common.Property;
+	
+	import mx.collections.ArrayCollection;
+	import model.common.XmlUtils;
+	
+	/**
+	 * Used by services to listen for messages.
+	 */
+	[Bindable]
+	public class Listener {
+		
+		/** Listener name */
+		public var name:String;
+		
+		/** Reference to provider bus id */
+		public var busIdRef:String;
+		
+		/** Max listener thread count */
+		public var maxThreads:Number;
+		
+		/** Indicates if the listener is a gateway */
+		public var isGateway:Boolean;
+		
+		/** Listener properties */
+		public var properties:ArrayCollection;
+		
+		/**
+		 * Create a Listener from XML.
+		 */
+		public function Listener(xml:XML = null) {
+			if (xml != null) {
+				this.name = xml. at name;
+				this.busIdRef = xml. at busidref;
+				this.maxThreads = xml. at maxThreads;
+				this.isGateway = XmlUtils.asBoolean(xml.attribute("is-gateway"), false);
+				this.properties = Property.getProperties(xml);
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			return null;
+		}
+		
+		/**
+		 * Load a list of listeners from XML.
+		 */
+		public static function getListeners(xml:XML):ArrayCollection {
+			var results:ArrayCollection = new ArrayCollection();
+			for each (var listenerXml:XML in xml.children()) {
+				var tag:String = listenerXml.localName();
+				if (tag == "fs-listener") {
+					results.addItem(new FileListener(listenerXml));					
+				} else if (tag == "ftp-listener") {
+					results.addItem(new FtpListener(listenerXml));					
+				} else if (tag == "jms-listener") {
+					results.addItem(new JmsListener(listenerXml));					
+				}
+			}
+			return results;
+		}
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Service.as
===================================================================
--- labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Service.as	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/configeditor/flex/ESBConfigModel/model/services/Service.as	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,89 @@
+package model.services {
+	
+	import model.common.Namespaces;
+	
+	import mx.collections.ArrayCollection;
+	import mx.controls.List;
+	
+	/**
+	 * A service to which messages may be routed.
+	 */
+	[Bindable]
+	public class Service {
+		
+		/** Category in registry */
+		public var category:String;
+		
+		/** Name in registry */
+		public var name:String;
+		
+		/** Service description */
+		public var description:String;
+		
+		/** Listeners for the service */
+		public var listeners:ArrayCollection = new ArrayCollection();
+		
+		/** Action chain for the service */
+		public var actions:ArrayCollection = new ArrayCollection();
+		
+		/** QName for the providers element */
+		private static const LISTENERS:QName = new QName(Namespaces.JESB, "listeners");
+		
+		/** QName for the providers element */
+		private static const ACTIONS:QName = new QName(Namespaces.JESB, "actions");
+		
+		/**
+		 * Create a Service from XML.
+		 */
+		public function Service(xml:XML = null) {
+			if (xml != null) {
+				this.category = xml. at category;
+				this.name = xml. at name;
+				this.description = xml. at description;
+				this.listeners = Listener.getListeners(XML(xml.elements(LISTENERS)));
+				this.actions = Action.getActions(XML(xml.elements(ACTIONS)));
+			}
+		}
+		
+		/**
+		 * Get the XML representation.
+		 */
+		public function getXmlString():String {
+			var xml:String = "<service ";
+			xml = xml + " category=\"" + this.category + "\" ";
+			xml = xml + " name=\"" + this.name + "\" ";
+			xml = xml + " description=\"" + this.description + "\" ";
+			xml = xml + ">";
+			xml = xml + "<listeners>";
+			for each (var listener:Listener in this.listeners) {
+				xml = xml + listener.getXmlString();
+			}
+			xml = xml + "</listeners>";
+			xml = xml + "<actions>";
+			for each (var action:Action in this.actions) {
+				xml = xml + action.getXmlString();
+			}
+			xml = xml + "</actions>";
+			xml = xml + "</service>";
+			return xml;
+		}
+		
+		/**
+		 * Get the fully-qualified service name.
+		 */
+		public function get fullName():String {
+			return category + ":" + name;
+		}
+		
+		/**
+		 * Load a list of services from XML.
+		 */
+		public static function getServices(xml:XML):ArrayCollection {
+			var results:ArrayCollection = new ArrayCollection();
+			for each (var serviceXml:XML in xml.children()) {
+				results.addItem(new Service(serviceXml));					
+			}
+			return results;
+		}
+	}
+}
\ No newline at end of file

Copied: labs/jbossesb/trunk/product/tools/console (from rev 9999, labs/jbossesb/trunk/product/console)

Deleted: labs/jbossesb/trunk/product/tools/console/.classpath
===================================================================
--- labs/jbossesb/trunk/product/console/.classpath	2007-03-06 12:59:48 UTC (rev 9999)
+++ labs/jbossesb/trunk/product/tools/console/.classpath	2007-03-07 10:10:16 UTC (rev 10011)
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="embedded-ejb/conf"/>
-	<classpathentry kind="lib" path="lib/hibernate-all.jar"/>
-	<classpathentry kind="lib" path="lib/javax.servlet.jsp.jar"/>
-	<classpathentry kind="lib" path="lib/jboss-aop-jdk50.jar"/>
-	<classpathentry kind="lib" path="lib/jboss-cache-jdk50.jar"/>
-	<classpathentry kind="lib" path="lib/jboss-ejb3-all.jar"/>
-	<classpathentry kind="lib" path="lib/jboss-seam.jar"/>
-	<classpathentry kind="lib" path="lib/jboss-seam-debug.jar"/>
-	<classpathentry kind="lib" path="lib/jbpm-3.1.4.jar"/>
-	<classpathentry kind="lib" path="lib/drools-core-3.0.5.jar"/>
-	<classpathentry kind="lib" path="lib/drools-compiler-3.0.5.jar"/>
-	<classpathentry kind="lib" path="lib/janino-2.4.3.jar"/>
-	<classpathentry kind="lib" path="lib/antlr-2.7.6.jar"/>
-	<classpathentry kind="lib" path="lib/antlr-3.0ea8.jar"/>
-	<classpathentry kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
-	<classpathentry kind="lib" path="lib/commons-jci-janino-2.4.3.jar"/>
-	<classpathentry kind="lib" path="lib/stringtemplate-2.3b6.jar"/>
-	<classpathentry kind="lib" path="lib/jgroups.jar"/>
-	<classpathentry kind="lib" path="lib/jsf-facelets.jar"/>
-	<classpathentry kind="lib" path="lib/jstl-1.1.0.jar"/>
-	<classpathentry kind="lib" path="lib/myfaces-api-1.1.4.jar"/>
-	<classpathentry kind="lib" path="lib/servlet-api.jar"/>
-	<classpathentry kind="lib" path="lib/testng-4.5.1-jdk15.jar"/>
-	<classpathentry kind="lib" path="lib/thirdparty-all.jar"/>
-	<classpathentry kind="lib" path="lib/el-api.jar"/>
-	<classpathentry kind="lib" path="lib/el-ri.jar"/>
-	<classpathentry kind="lib" path="lib/hsqldb.jar"/>
-	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-commons-0.8.jar"/>
-	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-smooks-core-0.8.jar"/>
-	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-tinak-0.7.1.jar"/>
-	<classpathentry kind="output" path="test-build"/>
-</classpath>

Copied: labs/jbossesb/trunk/product/tools/console/.classpath (from rev 10010, labs/jbossesb/trunk/product/console/.classpath)
===================================================================
--- labs/jbossesb/trunk/product/tools/console/.classpath	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/.classpath	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="embedded-ejb/conf"/>
+	<classpathentry kind="lib" path="lib/hibernate-all.jar"/>
+	<classpathentry kind="lib" path="lib/javax.servlet.jsp.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-aop-jdk50.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-cache-jdk50.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-ejb3-all.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-seam.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-seam-debug.jar"/>
+	<classpathentry kind="lib" path="lib/jbpm-3.1.4.jar"/>
+	<classpathentry kind="lib" path="lib/drools-core-3.0.5.jar"/>
+	<classpathentry kind="lib" path="lib/drools-compiler-3.0.5.jar"/>
+	<classpathentry kind="lib" path="lib/janino-2.4.3.jar"/>
+	<classpathentry kind="lib" path="lib/antlr-2.7.6.jar"/>
+	<classpathentry kind="lib" path="lib/antlr-3.0ea8.jar"/>
+	<classpathentry kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
+	<classpathentry kind="lib" path="lib/commons-jci-janino-2.4.3.jar"/>
+	<classpathentry kind="lib" path="lib/stringtemplate-2.3b6.jar"/>
+	<classpathentry kind="lib" path="lib/jgroups.jar"/>
+	<classpathentry kind="lib" path="lib/jsf-facelets.jar"/>
+	<classpathentry kind="lib" path="lib/jstl-1.1.0.jar"/>
+	<classpathentry kind="lib" path="lib/myfaces-api-1.1.4.jar"/>
+	<classpathentry kind="lib" path="lib/servlet-api.jar"/>
+	<classpathentry kind="lib" path="lib/testng-4.5.1-jdk15.jar"/>
+	<classpathentry kind="lib" path="lib/thirdparty-all.jar"/>
+	<classpathentry kind="lib" path="lib/el-api.jar"/>
+	<classpathentry kind="lib" path="lib/el-ri.jar"/>
+	<classpathentry kind="lib" path="lib/hsqldb.jar"/>
+	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-commons-0.8.jar"/>
+	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-smooks-core-0.8.jar"/>
+	<classpathentry kind="lib" path="/ESB/product/lib/ext/milyn-tinak-0.7.1.jar"/>
+	<classpathentry kind="output" path="test-build"/>
+</classpath>

Deleted: labs/jbossesb/trunk/product/tools/console/.exploded.launch
===================================================================
--- labs/jbossesb/trunk/product/console/.exploded.launch	2007-03-06 12:59:48 UTC (rev 9999)
+++ labs/jbossesb/trunk/product/tools/console/.exploded.launch	2007-03-07 10:10:16 UTC (rev 10011)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-	<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-	<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-	<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="clean,unexplode,restart,buildtest,"/>
-	<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
-	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-		<listEntry value="1"/>
-	</listAttribute>
-	<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-	<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-	<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-	<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="clean,unexplode,restart,buildtest,"/>
-	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="explode,buildtest,"/>
-	<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jboss-esb-console"/>
-	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-		<listEntry value="/jboss-esb-console/build.xml"/>
-	</listAttribute>
-	<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/jboss-esb-console/build.xml}"/>
-</launchConfiguration>

Copied: labs/jbossesb/trunk/product/tools/console/.exploded.launch (from rev 10010, labs/jbossesb/trunk/product/console/.exploded.launch)
===================================================================
--- labs/jbossesb/trunk/product/tools/console/.exploded.launch	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/.exploded.launch	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+	<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+	<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+	<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="clean,unexplode,restart,buildtest,"/>
+	<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
+	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+		<listEntry value="1"/>
+	</listAttribute>
+	<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+	<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+	<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+	<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="clean,unexplode,restart,buildtest,"/>
+	<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="explode,buildtest,"/>
+	<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jboss-esb-console"/>
+	<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+		<listEntry value="/jboss-esb-console/build.xml"/>
+	</listAttribute>
+	<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/jboss-esb-console/build.xml}"/>
+</launchConfiguration>

Deleted: labs/jbossesb/trunk/product/tools/console/.project
===================================================================
--- labs/jbossesb/trunk/product/console/.project	2007-03-06 12:59:48 UTC (rev 9999)
+++ labs/jbossesb/trunk/product/tools/console/.project	2007-03-07 10:10:16 UTC (rev 10011)
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>jboss-esb-console</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>auto,full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.exploded.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

Copied: labs/jbossesb/trunk/product/tools/console/.project (from rev 10010, labs/jbossesb/trunk/product/console/.project)
===================================================================
--- labs/jbossesb/trunk/product/tools/console/.project	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/.project	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jboss-esb-console</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+			<triggers>auto,full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>LaunchConfigHandle</key>
+					<value>&lt;project&gt;/.exploded.launch</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Deleted: labs/jbossesb/trunk/product/tools/console/build.properties
===================================================================
--- labs/jbossesb/trunk/product/console/build.properties	2007-03-06 12:59:48 UTC (rev 9999)
+++ labs/jbossesb/trunk/product/tools/console/build.properties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -1 +0,0 @@
-jboss.home = H:/jboss-4.0.5.GA
\ No newline at end of file

Copied: labs/jbossesb/trunk/product/tools/console/build.properties (from rev 10010, labs/jbossesb/trunk/product/console/build.properties)
===================================================================
--- labs/jbossesb/trunk/product/tools/console/build.properties	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/build.properties	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1 @@
+jboss.home = H:/jboss-4.0.5.GA
\ No newline at end of file

Deleted: labs/jbossesb/trunk/product/tools/console/build.xml
===================================================================
--- labs/jbossesb/trunk/product/console/build.xml	2007-03-06 12:59:48 UTC (rev 9999)
+++ labs/jbossesb/trunk/product/tools/console/build.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -1,292 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="jboss-esb-console" default="deploy" basedir=".">
-
-	<!-- Give user a chance to override without editing this file or typing -D -->
-	<property file="${basedir}/build.properties" />
-
-	<!-- set global properties for this build -->
-	<property name="project.name" value="jboss-esb-console"/>
-	<property name="dist.dir" value="${basedir}/build" />
-	<property name="src.java.dir" value="src" />
-	<property name="src.test.dir" value="test" />
-	<property name="lib.dir" value="lib" />
-	<property name="exploded.archives.dir" value="${basedir}/exploded-archives" />
-	<property name="ear.dir" value="${exploded.archives.dir}/${project.name}.ear" />
-	<property name="jar.dir" value="${exploded.archives.dir}/${project.name}.jar" />
-	<property name="war.dir" value="${exploded.archives.dir}/${project.name}.war" />
-	<property name="test.dir" value="test-build" />
-	<property name="embedded-ejb3.dir" value="${basedir}/embedded-ejb/conf" />
-	<property name="deploy.dir" value="${jboss.home}/server/default/deploy" />
-	<property name="ear.deploy.dir" value="${deploy.dir}/${project.name}.ear" />
-	<property name="jar.deploy.dir" value="${ear.deploy.dir}/${project.name}.jar" />
-	<property name="war.deploy.dir" value="${ear.deploy.dir}/${project.name}.war" />
-	<property name="testng.jar" value="${basedir}/lib/testng-4.5.1-jdk15.jar" />
-	<property name="javac.debug" value="true" />
-	<property name="javac.deprecation" value="false" />
-	<property name="product.lib.ext.dir" location="../lib/ext" />
-
-	<fileset id="lib" dir="${lib.dir}">
-		<include name="*.jar" />
-	</fileset>
-
-	<fileset id="milyn-dependencies" dir="${product.lib.ext.dir}" 
-		includes="milyn*.jar,opencsv*.jar,ognl-*.jar,xbean.jar,xmlpublic.jar,groovy*.jar" />
-	
-	<path id="build.classpath">
-		<fileset refid="lib" />
-		<fileset refid="milyn-dependencies" />
-	</path>
-
-	<target name="init" description="Initialize the build">
-		<mkdir dir="${dist.dir}" />
-		<mkdir dir="${jar.dir}" />
-		<mkdir dir="${ear.dir}" />
-		<mkdir dir="${war.dir}" />
-	</target>
-
-	<target name="compile" depends="init" 
-			description="Compile the Java source code"
-		    unless="eclipse.running">
-		
-		<javac classpathref="build.classpath" 
-			        destdir="${jar.dir}" 
-			          debug="${javac.debug}" 
-			    deprecation="${javac.deprecation}" 
-			        nowarn="on">
-			<src path="${src.java.dir}" />
-		</javac>
-	</target>
-
-	<target name="copyclasses" depends="init" 
-			description="Copy the classes that were compiled by eclipse"
-		    if="eclipse.running">
-		<copy todir="${jar.dir}">
-			<fileset dir="${test.dir}">
-				<include name="**/*.class"/>
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="jar" depends="compile,copyclasses" 
-			description="Build the distribution .jar file">
-		<copy todir="${jar.dir}">
-			<fileset dir="${basedir}/resources">
-				<include name="seam.properties" />
-				<include name="jboss-esb-console.properties" />
-			</fileset>
-		</copy>
-		<copy todir="${jar.dir}/META-INF">
-			<fileset dir="${basedir}/resources/META-INF">
-				<include name="ejb-jar.xml" />
-			</fileset>
-		</copy>
-		<copy tofile="${jar.dir}/META-INF/persistence.xml" 
-			    file="${basedir}/resources/META-INF/persistence.xml"
-		   overwrite="true"/>
-		<copy tofile="${jar.dir}/import.sql" 
-			    file="${basedir}/resources/import.sql"
-		   overwrite="true"/>
-	</target>
-
-	<target name="war" depends="compile" 
-			description="Build the distribution .war file">
-		<copy todir="${war.dir}">
-			<fileset dir="${basedir}/view" />
-		</copy>
-		<copy todir="${war.dir}/WEB-INF">
-			<fileset dir="${basedir}/resources/WEB-INF">
-				<include name="*.*"/>
-				<include name="classes/**/*.*"/>
-				<exclude name="classes/**/*.class"/>
-			</fileset>
-			<filterset>
-				<filter token="jndiPattern" value="${project.name}/#{ejbName}/local" />
-				<filter token="embeddedEjb" value="false" />
-			</filterset>
-		</copy>		
-		<copy todir="${war.dir}/WEB-INF">
-			<fileset dir="${basedir}/resources/WEB-INF">
-				<include name="lib/*.*"/>
-				<include name="classes/**/*.class"/>
-			</fileset>
-		</copy>		
-		<copy todir="${war.dir}/WEB-INF/lib">
-			<fileset dir="${lib.dir}">
-				<include name="jsf-facelets.jar" />
-				<include name="jboss-seam-*.jar" />
-				<exclude name="jboss-seam-gen.jar" />
-			</fileset>
-		</copy>
-		<copy todir="${war.dir}/WEB-INF/classes">
-			<fileset dir="${basedir}/resources"> 
-				<include name="messages*.properties"/>
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="ear" description="Build the EAR">
-		<copy todir="${ear.dir}">
-			<fileset dir="${basedir}/resources">
-				<include name="*jpdl.xml" />
-				<include name="hibernate.cfg.xml" />
-				<include name="jbpm.cfg.xml" />
-				<include name="security.drl" />
-				<include name="jboss-esb-console-service.xml" />
-			</fileset>
-			<fileset dir="${lib.dir}">
-				<include name="jboss-seam.jar" />
-				<include name="jbpm*.jar" />
-				<include name="el-*.jar" />
-				<include name="drools-*.jar"/>
-				<include name="janino-*.jar"/>
-				<include name="antlr-*.jar"/>
-				<include name="commons-jci-*.jar"/>
-				<include name="stringtemplate-*.jar"/>
-			</fileset>
-			<fileset refid="milyn-dependencies" />
-		</copy>
-		<copy todir="${ear.dir}/META-INF">
-			<fileset dir="${basedir}/resources/META-INF">
-				<include name="application.xml" />
-				<include name="jboss-app.xml" />
-			</fileset>
-		</copy>
-	</target>
-	
-	<target name="archive" depends="jar,war,ear,test" description="Package the archives">
-		<jar jarfile="${dist.dir}/${project.name}.jar" basedir="${jar.dir}"/>
-		<jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}"/>
-		<jar jarfile="${dist.dir}/${project.name}.ear">
-			<fileset dir="${ear.dir}"/>
-			<fileset dir="${dist.dir}">
-				<include name="${project.name}.jar"/>
-				<include name="${project.name}.war"/>
-			</fileset>
-		</jar>
-	</target>
-	
-	<target name="datasource">
-		<fail unless="jboss.home">jboss.home not set</fail>
-		<copy todir="${deploy.dir}">
-			<fileset dir="${basedir}/resources">
-				<include name="${project.name}-ds.xml" />
-			</fileset>
-		</copy>
-	</target>
-	
-    <target name="dist" depends="jar,war,ear,test">
-    	<property name="install.console.dir"  location="${install.tools.dir}/console" />
-
-    	<mkdir dir="${install.console.dir}"/>
-    	
-		<!-- Copy the build related files to the "tools" folder. -->
-		<copy todir="${install.console.dir}">
-			<fileset dir="${exploded.archives.dir}"/>
-			<fileset dir="${basedir}" includes="distro/**" excludes="distro/distro-*" />
-		</copy>
-		<copy file="distro/distro-build.xml" tofile="${install.tools.dir}/build.xml" />
-		<copy file="distro/distro-CONSOLE-README.TXT" tofile="${install.tools.dir}/CONSOLE-README.TXT" />
-		<copy file="resources/import.sql" tofile="${install.tools.dir}/CONSOLE-import.sql" />
-    </target>
-	
-	<target name="explode" depends="jar,war,ear,datasource" 
-			description="Deploy the exploded archive">
-		<fail unless="jboss.home">jboss.home not set</fail>
-		
-		<mkdir dir="${jar.deploy.dir}"/>
-		<mkdir dir="${war.deploy.dir}"/>		
-		
-		<copy todir="${jar.deploy.dir}">
-			<fileset dir="${jar.dir}"/>
-		</copy>
-		<copy todir="${war.deploy.dir}">
-			<fileset dir="${war.dir}"/>
-		</copy>
-		<copy todir="${ear.deploy.dir}">
-			<fileset dir="${ear.dir}"/>
-		</copy>
-	</target>
-
-	<target name="unexplode" description="Undeploy the exploded archive">
-		<delete failonerror="no">
-			<fileset dir="${ear.deploy.dir}">
-				<exclude name="**/*.jar"/>
-			</fileset>
-		</delete>
-		<delete file="${deploy.dir}/${project.name}-ds.xml" failonerror="no"/>
-		<delete dir="${ear.deploy.dir}" failonerror="no"/>
-	</target>
-	
-	<target name="restart" depends="explode" description="Restart the exploded archive">
-		<touch file="${ear.deploy.dir}/META-INF/application.xml"/>
-	</target>
-
-	<target name="deploy" depends="archive,datasource" description="Deploy to JBoss AS">
-		<fail unless="jboss.home">jboss.home not set</fail>
-		<copy todir="${deploy.dir}" file="${dist.dir}/${project.name}.ear" />
-	</target>
-
-	<target name="undeploy" description="Undeploy the example from JBoss">
-		<delete file="${deploy.dir}/${project.name}.ear" />
-		<delete file="${deploy.dir}/${project.name}-ds.xml" />
-	</target>
-
-	<target name="clean" description="Cleans up the build directory">
-		<delete dir="${dist.dir}"/>
-		<delete dir="${exploded.archives.dir}"/>
-		<delete dir="${basedir}/test-report"/>
-		<delete dir="${basedir}/test-output"/>
-		<delete dir="${basedir}/test-build"/>
-		<delete failonerror="no">
-			<fileset dir="${test.dir}">
-				<exclude name="**/*.class" if="eclipse.running"/>
-			</fileset>
-		</delete>
-	</target>
-
-	<target name="compiletest" unless="eclipse.running" description="Compile the Java source code for the tests">
-        <mkdir dir="${test.dir}"/>
-        <javac classpathref="build.classpath"
-                        destdir="${test.dir}"
-                          debug="${javac.debug}"
-                    deprecation="${javac.deprecation}"
-                        nowarn="on">
-                <src path="${src.java.dir}" />
-                <src path="${src.test.dir}" />
-        </javac>
-	</target>
-	
-	<target name="buildtest" depends="compiletest" description="Build the tests">
-		<copy todir="${test.dir}">
-			<fileset dir="${basedir}/resources">
-				<exclude name="META-INF/persistence.xml"/>
-				<exclude name="import.sql"/>
-				<exclude name="${project.name}-ds.xml"/>
-			</fileset>
-		</copy>
-		<copy tofile="${test.dir}/META-INF/persistence.xml" 
-			    file="${basedir}/resources/META-INF/persistence.xml"
-		   overwrite="true"/>
-		<copy tofile="${test.dir}/import.sql" 
-			    file="${basedir}/resources/import.sql"
-		   overwrite="true"/>
-		<copy todir="${test.dir}" flatten="true">
-			<fileset dir="${src.test.dir}">
-				<include name="**/*Test.xml" />
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="test" depends="buildtest" description="Run the tests">		
-		<taskdef resource="testngtasks" classpath="${testng.jar}" />
-		<testng outputdir="${basedir}/test-report" haltonfailure="true">
-			<classpath path="${test.dir}" />
-			<classpath path="${src.test.dir}" />
-			<classpath path="${embedded-ejb3.dir}" />
-			<classpath refid="build.classpath" />
-			<xmlfileset dir="${src.test.dir}" includes="**/testng.xml" />
-		</testng>
-	</target>
-	
-</project>

Copied: labs/jbossesb/trunk/product/tools/console/build.xml (from rev 10010, labs/jbossesb/trunk/product/console/build.xml)
===================================================================
--- labs/jbossesb/trunk/product/tools/console/build.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/console/build.xml	2007-03-07 10:10:16 UTC (rev 10011)
@@ -0,0 +1,292 @@
+<?xml version="1.0"?>
+
+<project name="jboss-esb-console" default="deploy" basedir=".">
+
+	<!-- Give user a chance to override without editing this file or typing -D -->
+	<property file="${basedir}/build.properties" />
+
+	<!-- set global properties for this build -->
+	<property name="project.name" value="jboss-esb-console"/>
+	<property name="dist.dir" value="${basedir}/build" />
+	<property name="src.java.dir" value="src" />
+	<property name="src.test.dir" value="test" />
+	<property name="lib.dir" value="lib" />
+	<property name="exploded.archives.dir" value="${basedir}/exploded-archives" />
+	<property name="ear.dir" value="${exploded.archives.dir}/${project.name}.ear" />
+	<property name="jar.dir" value="${exploded.archives.dir}/${project.name}.jar" />
+	<property name="war.dir" value="${exploded.archives.dir}/${project.name}.war" />
+	<property name="test.dir" value="test-build" />
+	<property name="embedded-ejb3.dir" value="${basedir}/embedded-ejb/conf" />
+	<property name="deploy.dir" value="${jboss.home}/server/default/deploy" />
+	<property name="ear.deploy.dir" value="${deploy.dir}/${project.name}.ear" />
+	<property name="jar.deploy.dir" value="${ear.deploy.dir}/${project.name}.jar" />
+	<property name="war.deploy.dir" value="${ear.deploy.dir}/${project.name}.war" />
+	<property name="testng.jar" value="${basedir}/lib/testng-4.5.1-jdk15.jar" />
+	<property name="javac.debug" value="true" />
+	<property name="javac.deprecation" value="false" />
+	<property name="product.lib.ext.dir" location="../../lib/ext" />
+
+	<fileset id="lib" dir="${lib.dir}">
+		<include name="*.jar" />
+	</fileset>
+
+	<fileset id="milyn-dependencies" dir="${product.lib.ext.dir}" 
+		includes="milyn*.jar,opencsv*.jar,ognl-*.jar,xbean.jar,xmlpublic.jar,groovy*.jar" />
+	
+	<path id="build.classpath">
+		<fileset refid="lib" />
+		<fileset refid="milyn-dependencies" />
+	</path>
+
+	<target name="init" description="Initialize the build">
+		<mkdir dir="${dist.dir}" />
+		<mkdir dir="${jar.dir}" />
+		<mkdir dir="${ear.dir}" />
+		<mkdir dir="${war.dir}" />
+	</target>
+
+	<target name="compile" depends="init" 
+			description="Compile the Java source code"
+		    unless="eclipse.running">
+		
+		<javac classpathref="build.classpath" 
+			        destdir="${jar.dir}" 
+			          debug="${javac.debug}" 
+			    deprecation="${javac.deprecation}" 
+			        nowarn="on">
+			<src path="${src.java.dir}" />
+		</javac>
+	</target>
+
+	<target name="copyclasses" depends="init" 
+			description="Copy the classes that were compiled by eclipse"
+		    if="eclipse.running">
+		<copy todir="${jar.dir}">
+			<fileset dir="${test.dir}">
+				<include name="**/*.class"/>
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="jar" depends="compile,copyclasses" 
+			description="Build the distribution .jar file">
+		<copy todir="${jar.dir}">
+			<fileset dir="${basedir}/resources">
+				<include name="seam.properties" />
+				<include name="jboss-esb-console.properties" />
+			</fileset>
+		</copy>
+		<copy todir="${jar.dir}/META-INF">
+			<fileset dir="${basedir}/resources/META-INF">
+				<include name="ejb-jar.xml" />
+			</fileset>
+		</copy>
+		<copy tofile="${jar.dir}/META-INF/persistence.xml" 
+			    file="${basedir}/resources/META-INF/persistence.xml"
+		   overwrite="true"/>
+		<copy tofile="${jar.dir}/import.sql" 
+			    file="${basedir}/resources/import.sql"
+		   overwrite="true"/>
+	</target>
+
+	<target name="war" depends="compile" 
+			description="Build the distribution .war file">
+		<copy todir="${war.dir}">
+			<fileset dir="${basedir}/view" />
+		</copy>
+		<copy todir="${war.dir}/WEB-INF">
+			<fileset dir="${basedir}/resources/WEB-INF">
+				<include name="*.*"/>
+				<include name="classes/**/*.*"/>
+				<exclude name="classes/**/*.class"/>
+			</fileset>
+			<filterset>
+				<filter token="jndiPattern" value="${project.name}/#{ejbName}/local" />
+				<filter token="embeddedEjb" value="false" />
+			</filterset>
+		</copy>		
+		<copy todir="${war.dir}/WEB-INF">
+			<fileset dir="${basedir}/resources/WEB-INF">
+				<include name="lib/*.*"/>
+				<include name="classes/**/*.class"/>
+			</fileset>
+		</copy>		
+		<copy todir="${war.dir}/WEB-INF/lib">
+			<fileset dir="${lib.dir}">
+				<include name="jsf-facelets.jar" />
+				<include name="jboss-seam-*.jar" />
+				<exclude name="jboss-seam-gen.jar" />
+			</fileset>
+		</copy>
+		<copy todir="${war.dir}/WEB-INF/classes">
+			<fileset dir="${basedir}/resources"> 
+				<include name="messages*.properties"/>
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="ear" description="Build the EAR">
+		<copy todir="${ear.dir}">
+			<fileset dir="${basedir}/resources">
+				<include name="*jpdl.xml" />
+				<include name="hibernate.cfg.xml" />
+				<include name="jbpm.cfg.xml" />
+				<include name="security.drl" />
+				<include name="jboss-esb-console-service.xml" />
+			</fileset>
+			<fileset dir="${lib.dir}">
+				<include name="jboss-seam.jar" />
+				<include name="jbpm*.jar" />
+				<include name="el-*.jar" />
+				<include name="drools-*.jar"/>
+				<include name="janino-*.jar"/>
+				<include name="antlr-*.jar"/>
+				<include name="commons-jci-*.jar"/>
+				<include name="stringtemplate-*.jar"/>
+			</fileset>
+			<fileset refid="milyn-dependencies" />
+		</copy>
+		<copy todir="${ear.dir}/META-INF">
+			<fileset dir="${basedir}/resources/META-INF">
+				<include name="application.xml" />
+				<include name="jboss-app.xml" />
+			</fileset>
+		</copy>
+	</target>
+	
+	<target name="archive" depends="jar,war,ear,test" description="Package the archives">
+		<jar jarfile="${dist.dir}/${project.name}.jar" basedir="${jar.dir}"/>
+		<jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}"/>
+		<jar jarfile="${dist.dir}/${project.name}.ear">
+			<fileset dir="${ear.dir}"/>
+			<fileset dir="${dist.dir}">
+				<include name="${project.name}.jar"/>
+				<include name="${project.name}.war"/>
+			</fileset>
+		</jar>
+	</target>
+	
+	<target name="datasource">
+		<fail unless="jboss.home">jboss.home not set</fail>
+		<copy todir="${deploy.dir}">
+			<fileset dir="${basedir}/resources">
+				<include name="${project.name}-ds.xml" />
+			</fileset>
+		</copy>
+	</target>
+	
+    <target name="dist" depends="jar,war,ear,test">
+    	<property name="install.console.dir"  location="${install.tools.dir}/console" />
+
+    	<mkdir dir="${install.console.dir}"/>
+    	
+		<!-- Copy the build related files to the "tools" folder. -->
+		<copy todir="${install.console.dir}">
+			<fileset dir="${exploded.archives.dir}"/>
+			<fileset dir="${basedir}" includes="distro/**" excludes="distro/distro-*" />
+		</copy>
+		<copy file="distro/distro-build.xml" tofile="${install.tools.dir}/build.xml" />
+		<copy file="distro/distro-CONSOLE-README.TXT" tofile="${install.tools.dir}/CONSOLE-README.TXT" />
+		<copy file="resources/import.sql" tofile="${install.tools.dir}/CONSOLE-import.sql" />
+    </target>
+	
+	<target name="explode" depends="jar,war,ear,datasource" 
+			description="Deploy the exploded archive">
+		<fail unless="jboss.home">jboss.home not set</fail>
+		
+		<mkdir dir="${jar.deploy.dir}"/>
+		<mkdir dir="${war.deploy.dir}"/>		
+		
+		<copy todir="${jar.deploy.dir}">
+			<fileset dir="${jar.dir}"/>
+		</copy>
+		<copy todir="${war.deploy.dir}">
+			<fileset dir="${war.dir}"/>
+		</copy>
+		<copy todir="${ear.deploy.dir}">
+			<fileset dir="${ear.dir}"/>
+		</copy>
+	</target>
+
+	<target name="unexplode" description="Undeploy the exploded archive">
+		<delete failonerror="no">
+			<fileset dir="${ear.deploy.dir}">
+				<exclude name="**/*.jar"/>
+			</fileset>
+		</delete>
+		<delete file="${deploy.dir}/${project.name}-ds.xml" failonerror="no"/>
+		<delete dir="${ear.deploy.dir}" failonerror="no"/>
+	</target>
+	
+	<target name="restart" depends="explode" description="Restart the exploded archive">
+		<touch file="${ear.deploy.dir}/META-INF/application.xml"/>
+	</target>
+
+	<target name="deploy" depends="archive,datasource" description="Deploy to JBoss AS">
+		<fail unless="jboss.home">jboss.home not set</fail>
+		<copy todir="${deploy.dir}" file="${dist.dir}/${project.name}.ear" />
+	</target>
+
+	<target name="undeploy" description="Undeploy the example from JBoss">
+		<delete file="${deploy.dir}/${project.name}.ear" />
+		<delete file="${deploy.dir}/${project.name}-ds.xml" />
+	</target>
+
+	<target name="clean" description="Cleans up the build directory">
+		<delete dir="${dist.dir}"/>
+		<delete dir="${exploded.archives.dir}"/>
+		<delete dir="${basedir}/test-report"/>
+		<delete dir="${basedir}/test-output"/>
+		<delete dir="${basedir}/test-build"/>
+		<delete failonerror="no">
+			<fileset dir="${test.dir}">
+				<exclude name="**/*.class" if="eclipse.running"/>
+			</fileset>
+		</delete>
+	</target>
+
+	<target name="compiletest" unless="eclipse.running" description="Compile the Java source code for the tests">
+        <mkdir dir="${test.dir}"/>
+        <javac classpathref="build.classpath"
+                        destdir="${test.dir}"
+                          debug="${javac.debug}"
+                    deprecation="${javac.deprecation}"
+                        nowarn="on">
+                <src path="${src.java.dir}" />
+                <src path="${src.test.dir}" />
+        </javac>
+	</target>
+	
+	<target name="buildtest" depends="compiletest" description="Build the tests">
+		<copy todir="${test.dir}">
+			<fileset dir="${basedir}/resources">
+				<exclude name="META-INF/persistence.xml"/>
+				<exclude name="import.sql"/>
+				<exclude name="${project.name}-ds.xml"/>
+			</fileset>
+		</copy>
+		<copy tofile="${test.dir}/META-INF/persistence.xml" 
+			    file="${basedir}/resources/META-INF/persistence.xml"
+		   overwrite="true"/>
+		<copy tofile="${test.dir}/import.sql" 
+			    file="${basedir}/resources/import.sql"
+		   overwrite="true"/>
+		<copy todir="${test.dir}" flatten="true">
+			<fileset dir="${src.test.dir}">
+				<include name="**/*Test.xml" />
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="test" depends="buildtest" description="Run the tests">		
+		<taskdef resource="testngtasks" classpath="${testng.jar}" />
+		<testng outputdir="${basedir}/test-report" haltonfailure="true">
+			<classpath path="${test.dir}" />
+			<classpath path="${src.test.dir}" />
+			<classpath path="${embedded-ejb3.dir}" />
+			<classpath refid="build.classpath" />
+			<xmlfileset dir="${src.test.dir}" includes="**/testng.xml" />
+		</testng>
+	</target>
+	
+</project>

Copied: labs/jbossesb/trunk/product/tools/console/distro (from rev 10010, labs/jbossesb/trunk/product/console/distro)

Copied: labs/jbossesb/trunk/product/tools/console/embedded-ejb (from rev 10010, labs/jbossesb/trunk/product/console/embedded-ejb)

Copied: labs/jbossesb/trunk/product/tools/console/lib (from rev 10010, labs/jbossesb/trunk/product/console/lib)

Copied: labs/jbossesb/trunk/product/tools/console/nbproject (from rev 10010, labs/jbossesb/trunk/product/console/nbproject)

Copied: labs/jbossesb/trunk/product/tools/console/resources (from rev 10010, labs/jbossesb/trunk/product/console/resources)

Copied: labs/jbossesb/trunk/product/tools/console/src (from rev 10010, labs/jbossesb/trunk/product/console/src)

Copied: labs/jbossesb/trunk/product/tools/console/test (from rev 10010, labs/jbossesb/trunk/product/console/test)

Copied: labs/jbossesb/trunk/product/tools/console/view (from rev 10010, labs/jbossesb/trunk/product/console/view)




More information about the jboss-svn-commits mailing list