[jboss-svn-commits] JBL Code SVN: r7535 - in labs/jbossesb/trunk/product: . console console/resources console/resources/WEB-INF console/resources/WEB-INF/classes console/resources/WEB-INF/lib console/src console/src/org console/src/org/jboss console/src/org/jboss/soa console/src/org/jboss/soa/esb console/src/org/jboss/soa/esb/admin console/src/org/jboss/soa/esb/admin/console console/src/org/jboss/soa/esb/admin/console/contract console/src/org/jboss/soa/esb/admin/console/transform console/src/org/jboss/soa/esb/admin/console/transform/flow console/test console/test/src console/test/src/org console/test/src/org/jboss console/test/src/org/jboss/soa console/test/src/org/jboss/soa/esb console/test/src/org/jboss/soa/esb/admin console/test/src/org/jboss/soa/esb/admin/console console/test/src/org/jboss/soa/esb/admin/console/transform console/test/src/org/jboss/soa/esb/admin/console/transform/flow console/view console/view/contract console/view/css console/view/img console/view/img/rh console/v! iew/transform

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 10 13:57:11 EST 2006


Author: tfennelly
Date: 2006-11-10 13:42:09 -0500 (Fri, 10 Nov 2006)
New Revision: 7535

Added:
   labs/jbossesb/trunk/product/console/
   labs/jbossesb/trunk/product/console/build.properties
   labs/jbossesb/trunk/product/console/build.xml
   labs/jbossesb/trunk/product/console/resources/
   labs/jbossesb/trunk/product/console/resources/WEB-INF/
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/.gpd.pageflow.jpdl.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/hibernate.cfg.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/import.sql
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/jboss-beans.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/pageflow.jpdl.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/seam.properties
   labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/xxx_persistence.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/components.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-beanutils-1.7.0.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-codec-1.3.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-digester-1.6.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-api.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-ri.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/hibernate-all.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-aop-jdk50.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-cache-jdk50.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-ejb3-all.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-debug.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-ui.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jbpm-3.1.1.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jgroups.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jsf-facelets.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jstl.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mailstuff.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mc-conf.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-api-1.1.3.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-impl-1.1.3.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/portlet-api-lib.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/postgresql-8.1-407.jdbc2ee.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/selectitems-1.1.0rc2.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/thirdparty-all.jar
   labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml
   labs/jbossesb/trunk/product/console/resources/WEB-INF/web.xml
   labs/jbossesb/trunk/product/console/src/
   labs/jbossesb/trunk/product/console/src/org/
   labs/jbossesb/trunk/product/console/src/org/jboss/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPR.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPRConverter.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/SeamUtils.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/ManageContracts.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/MessageContract.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/NewContract.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ManageResources.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverter.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksUtils.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResource.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlow.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelected.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelectedInterceptor.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/SelectMessageFlow.java
   labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/TransformationConfigRejoin.java
   labs/jbossesb/trunk/product/console/test/
   labs/jbossesb/trunk/product/console/test/src/
   labs/jbossesb/trunk/product/console/test/src/org/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/MessageTypeTest.java
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksUtilsTest.java
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/expected-1.txt
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/flow/
   labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/flow/MessageContractTest.java
   labs/jbossesb/trunk/product/console/view/
   labs/jbossesb/trunk/product/console/view/contract/
   labs/jbossesb/trunk/product/console/view/contract/list-message-contracts.xhtml
   labs/jbossesb/trunk/product/console/view/contract/new-message-contract.xhtml
   labs/jbossesb/trunk/product/console/view/contract/template.xhtml
   labs/jbossesb/trunk/product/console/view/css/
   labs/jbossesb/trunk/product/console/view/css/common.css
   labs/jbossesb/trunk/product/console/view/css/custom.css
   labs/jbossesb/trunk/product/console/view/css/global.css
   labs/jbossesb/trunk/product/console/view/css/headings.css
   labs/jbossesb/trunk/product/console/view/css/layout.css
   labs/jbossesb/trunk/product/console/view/css/navigation.css
   labs/jbossesb/trunk/product/console/view/css/pagelayout.css
   labs/jbossesb/trunk/product/console/view/css/print.css
   labs/jbossesb/trunk/product/console/view/css/screen.css
   labs/jbossesb/trunk/product/console/view/css/screen_001.css
   labs/jbossesb/trunk/product/console/view/css/screen_002.css
   labs/jbossesb/trunk/product/console/view/css/tables.css
   labs/jbossesb/trunk/product/console/view/error.xhtml
   labs/jbossesb/trunk/product/console/view/home.xhtml
   labs/jbossesb/trunk/product/console/view/img/
   labs/jbossesb/trunk/product/console/view/img/bg.gif
   labs/jbossesb/trunk/product/console/view/img/bg_bottom_red.gif
   labs/jbossesb/trunk/product/console/view/img/bg_side_btm_red.gif
   labs/jbossesb/trunk/product/console/view/img/bg_top_red.gif
   labs/jbossesb/trunk/product/console/view/img/bg_topmenu_red_round.gif
   labs/jbossesb/trunk/product/console/view/img/btn.bg.gif
   labs/jbossesb/trunk/product/console/view/img/cnt.bg.gif
   labs/jbossesb/trunk/product/console/view/img/crn_left_bot_blue.gif
   labs/jbossesb/trunk/product/console/view/img/crn_left_bot_green.gif
   labs/jbossesb/trunk/product/console/view/img/crn_left_bot_red.gif
   labs/jbossesb/trunk/product/console/view/img/crn_left_bot_yellow.gif
   labs/jbossesb/trunk/product/console/view/img/gradient_news_bkgd_650.gif
   labs/jbossesb/trunk/product/console/view/img/hdr.bg.gif
   labs/jbossesb/trunk/product/console/view/img/input.bg.gif
   labs/jbossesb/trunk/product/console/view/img/logo.gif
   labs/jbossesb/trunk/product/console/view/img/rh/
   labs/jbossesb/trunk/product/console/view/img/rh/points.gif
   labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tl.gif
   labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tr.gif
   labs/jbossesb/trunk/product/console/view/img/sdb.bg.gif
   labs/jbossesb/trunk/product/console/view/img/table_corner_tl.gif
   labs/jbossesb/trunk/product/console/view/img/table_corner_tr.gif
   labs/jbossesb/trunk/product/console/view/img/th.bg.gif
   labs/jbossesb/trunk/product/console/view/index.html
   labs/jbossesb/trunk/product/console/view/template.xhtml
   labs/jbossesb/trunk/product/console/view/transform/
   labs/jbossesb/trunk/product/console/view/transform/add-resource-parameter.xhtml
   labs/jbossesb/trunk/product/console/view/transform/list-resources-as-smooks-config.xhtml
   labs/jbossesb/trunk/product/console/view/transform/list-resources.xhtml
   labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-create.xhtml
   labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-target.xhtml
   labs/jbossesb/trunk/product/console/view/transform/select-message-flow-finish.xhtml
   labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-epr.xhtml
   labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-type.xhtml
   labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-epr.xhtml
   labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-type.xhtml
   labs/jbossesb/trunk/product/console/view/transform/smooks.xhtml
   labs/jbossesb/trunk/product/console/view/transform/template.xhtml
   labs/jbossesb/trunk/product/console/view/transform/view-resource.xhtml
Log:
Added ESB Admin UI Console Application

Added: labs/jbossesb/trunk/product/console/build.properties
===================================================================
--- labs/jbossesb/trunk/product/console/build.properties	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/build.properties	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1 @@
+deploy.dir=/home/tfennelly/packages/apache-tomcat-5.5.20/webapps
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/build.xml
===================================================================
--- labs/jbossesb/trunk/product/console/build.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/build.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+
+<project name="JBoss ESB Administration Console" default="build" basedir=".">
+
+    <property file="build.properties" />
+	
+    <!-- Naming -->
+    <property name="Name"              value="JBoss ESB Administration Conosle"/>
+    <property name="package.name"      value="jboss-esb-console"/>
+
+	<!-- Structure -->
+	<property name="src.dir"           value="src"/>
+	<property name="build.dir"         value="build" />
+	<property name="classes.dir"       value="${build.dir}/WEB-INF/classes" />
+	<property name="test.src.dir"      value="test/src"/>
+	<property name="test.classes.dir"  value="${build.dir}/test/classes" />
+	<property name="test.report.dir"   value="${build.dir}/test/report" />
+	<property name="resources.dir"     value="resources" />
+	<property name="view.dir"          value="view" />
+	<property name="product.lib.ext.dir"   value="../lib/ext" />
+
+    <target name="build" description="Compile, test and package (war) the application.">
+    	<!-- Compile... -->
+    	<mkdir dir="${classes.dir}" />
+        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="src.compile.classpath" debug="true" />
+    	<mkdir dir="${test.classes.dir}" />
+        <javac srcdir="${test.src.dir}" destdir="${test.classes.dir}" classpathref="test.classpath" debug="true" />
+    	
+    	<!-- Test -->
+		<mkdir dir="${test.report.dir}" />
+        <junit printsummary="yes" showoutput="true" fork="true" errorproperty="test.failed" failureproperty="test.failed">
+            <formatter type="xml"/>
+            <batchtest todir="${test.report.dir}">
+                <fileset dir="${test.src.dir}" includes="**/**Test.java" />
+            </batchtest>
+            <classpath refid="test.classpath" />
+        </junit>
+        <junitreport>
+            <fileset dir="${test.report.dir}" includes="*.xml" />
+            <report format="frames" todir="${test.report.dir}"/>
+            <report format="noframes" todir="${test.report.dir}"/>
+        </junitreport>
+
+    	<!-- Assert tests passed... -->
+    	<ant target="assertTestsFailed" />
+
+    	<!-- Package -->
+    	<delete file="${build.dir}/${package.name}.war" />
+    	<copy todir="${resources.dir}/WEB-INF/lib">
+    		<fileset dir="${product.lib.ext.dir}" includes="milyn*.jar" />
+   		</copy>
+    	<jar destfile="${build.dir}/${package.name}.war">
+    		<fileset dir="${build.dir}" excludes="test/**" />
+    		<fileset dir="${resources.dir}" includes="WEB-INF/**" />
+    		<fileset dir="${view.dir}" />
+    	</jar>
+    	<delete dir="${resources.dir}/WEB-INF/lib" includes="milyn*.jar" />
+    </target>
+
+	<target name="assertTestsFailed" if="test.failed">
+		<fail message="Unit tests failed.  Check reports in ${test.report.dir}" />
+    </target>
+	
+    <target name="deploy" depends="build" description="Run tests on the application.">
+    	<copy file="${build.dir}/${package.name}.war" todir="${deploy.dir}" />
+    </target>
+	
+    <target name="clean" description="Delete the build folder..">
+    	<mkdir dir="${build.dir}" />
+    	<delete dir="${build.dir}" failonerror="true" />
+    	<delete dir="./" includes="**/TESTS-TestSuites.xml" />
+    </target>
+	
+    <target name="cleantc" description="Clean Tomcat.">
+    	<delete dir="${deploy.dir}/${package.name}" />
+    	<delete dir="${deploy.dir}" includes="${package.name}.war" />
+    	<delete dir="${deploy.dir}/../work/Catalina" />
+    </target>
+
+	<path id="src.compile.classpath">
+		<fileset dir="${resources.dir}/WEB-INF/lib" includes="*.jar" />
+		<fileset dir="${product.lib.ext.dir}" includes="milyn*.jar" />
+	</path>
+
+	<path id="test.classpath">
+		<pathelement location="${classes.dir}" />
+		<path refid="src.compile.classpath"/>
+		<pathelement location="${test.classes.dir}" />
+		<pathelement location="${test.src.dir}" />
+	</path>
+	
+</project>

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/.gpd.pageflow.jpdl.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/.gpd.pageflow.jpdl.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/.gpd.pageflow.jpdl.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<pageflow-diagram />
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/hibernate.cfg.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/hibernate.cfg.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/hibernate.cfg.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,21 @@
+<!DOCTYPE hibernate-configuration PUBLIC
+	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+<hibernate-configuration>
+	<session-factory name="java:/esbDatabase">
+		<property name="show_sql">false</property>
+		<property name="connection.datasource">java:/hibernateDatasource</property>
+		<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
+		<property name="hbm2ddl.auto">update</property>
+		<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+		<property name="transaction.flush_before_completion">true</property>
+		<property name="connection.release_mode">after_statement</property>
+		<property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
+		<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
+		
+		<mapping class="org.jboss.soa.esb.admin.console.EPR"/>
+		<mapping class="org.jboss.soa.esb.admin.console.contract.MessageContract"/>
+		<mapping class="org.jboss.soa.esb.admin.console.transform.TransformationResource"/>
+	</session-factory>
+</hibernate-configuration>

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/import.sql
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/import.sql	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/import.sql	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,5 @@
+INSERT INTO epr VALUES (1, 'file://org.acme/ITOperationsService');
+INSERT INTO epr VALUES (2, 'http://www.jboss-services.com/SupportCenter');
+
+INSERT INTO messagecontract (id, epr, usage, mime, namespace, messagedescription) VALUES (1, 'file://org.acme/ITOperationsService', 'PRODUCES', 'text/csv', 'reportProviderFault', 'http://org.acme/ITOperationsService/reportProviderFault.xsd');
+INSERT INTO messagecontract (id, epr, usage, mime, namespace, messagedescription) VALUES (2, 'http://www.jboss-services.com/SupportCenter', 'CONSUMES', 'text/xml', 'postSupportTicket', 'http://www.jboss-services.com/SupportCenter/supportTicket-post.dtd');
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/jboss-beans.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/jboss-beans.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/jboss-beans.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+
+   <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
+
+   <bean name="TransactionManagerFactory" class="org.jboss.seam.microcontainer.TransactionManagerFactory"/>
+   <bean name="TransactionManager" class="java.lang.Object">
+      <constructor factoryMethod="getTransactionManager">
+         <factory bean="TransactionManagerFactory"/>
+      </constructor>
+   </bean>
+
+   <bean name="esbDatasourceFactory" class="org.jboss.seam.microcontainer.DataSourceFactory">
+      <property name="driverClass">org.postgresql.Driver</property>
+      <property name="connectionUrl">jdbc:postgresql://localhost:5432/jbossesb</property>
+      <property name="userName">postgres</property>
+      <property name="password">password</property>
+      <property name="jndiName">java:/hibernateDatasource</property>
+      <property name="minSize">0</property>
+      <property name="maxSize">10</property>
+      <property name="blockingTimeout">1000</property>
+      <property name="idleTimeout">100000</property>
+      <property name="transactionManager"><inject bean="TransactionManager"/></property>
+   </bean>
+   <bean name="esbDatasource" class="java.lang.Object">
+      <constructor factoryMethod="getDataSource">
+         <factory bean="esbDatasourceFactory"/>
+      </constructor>
+   </bean>
+   
+   <bean name="esbDatabaseFactory" class="org.jboss.seam.microcontainer.HibernateFactory"/>
+   <bean name="esbDatabase" class="java.lang.Object">
+      <constructor factoryMethod="getSessionFactory">
+         <factory bean="esbDatabaseFactory"/>
+      </constructor>
+      <depends>esbDatasource</depends>
+   </bean>
+
+</deployment>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/pageflow.jpdl.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/pageflow.jpdl.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/pageflow.jpdl.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,47 @@
+<pageflow-definition name="selectMessageFlow">
+   
+   <start-page name="from-epr" view-id="/transform/select-message-flow-from-epr.xhtml">
+      <redirect/>
+      <transition name="next" to="assertDisplayFromType" />
+      <transition name="cancel" to="cancelSelection" />
+   </start-page>
+   
+   <decision name="assertDisplayFromType" expression="#{messageFlowSelect.fromEPRSelected}">
+      <transition name="true" to="from-type"/>
+      <transition name="false" to="to-epr"/>
+   </decision>
+
+   <page name="from-type" view-id="/transform/select-message-flow-from-type.xhtml">
+      <redirect/>
+      <transition name="next" to="to-epr" />
+      <transition name="cancel" to="cancelSelection" />
+   </page>
+
+   <page name="to-epr" view-id="/transform/select-message-flow-to-epr.xhtml">
+      <redirect/>
+      <transition name="next" to="assertDisplayToType" />
+      <transition name="cancel" to="cancelSelection" />
+   </page>
+   
+   <decision name="assertDisplayToType" expression="#{messageFlowSelect.toEPRSelected}">
+      <transition name="true" to="to-type"/>
+      <transition name="false" to="finish"/>
+   </decision>
+
+   <page name="to-type" view-id="/transform/select-message-flow-to-type.xhtml">
+      <redirect/>
+      <transition name="next" to="finish" />
+      <transition name="cancel" to="cancelSelection" />
+   </page>
+
+   <page name="cancelSelection" view-id="/home.xhtml">
+      <redirect/>
+      <end-conversation />
+   </page>
+
+   <page name="finish" view-id="/transform/select-message-flow-finish.xhtml">
+      <redirect/>
+      <end-conversation />
+   </page>
+   
+</pageflow-definition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/seam.properties
===================================================================

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/xxx_persistence.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/xxx_persistence.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/classes/xxx_persistence.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,24 @@
+<persistence>
+   <persistence-unit name="esbDatabase">
+      <provider>org.hibernate.ejb.HibernatePersistence</provider>
+      <jta-data-source>java:/JBossESBDS</jta-data-source>
+      
+	  <class>org.jboss.soa.esb.admin.console.EPR</class>
+	  <class>org.jboss.soa.esb.admin.console.contract.MessageContract</class>
+	  <class>org.jboss.soa.esb.admin.console.transform.TransformationResource</class>
+      
+      <properties>
+         <property name="hibernate.hbm2ddl.auto" value="update"/>
+         <property name="hibernate.show_sql" value="true"/>
+		 <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
+
+         <property name="hibernate.connection.driver_class" value="org.hibernate.cache.HashtableCacheProvider"/>
+         <property name="hibernate.connection.username" value="postgres"/>
+         <property name="hibernate.connection.password" value="password"/>
+         <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/jbossesb"/>
+         
+         <property name="jboss.entity.manager.factory.jndi.name" value="java:/jbossEsbEntityManagerFactory"/>
+         <property name="jboss.entity.manager.jndi.name" value="java:/jbossEsbEntityManager"/>
+      </properties>
+   </persistence-unit>
+</persistence>

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/components.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/components.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/components.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,24 @@
+<components>
+
+    <component name="org.jboss.seam.core.init">
+        <property name="myFacesLifecycleBug">false</property>
+        <property name="debug">true</property>
+    </component>
+
+    <!-- 120 second conversation timeout -->
+    <component name="org.jboss.seam.core.manager">
+        <property name="conversationTimeout">120000</property>
+    </component>
+
+    <component class="org.jboss.seam.core.Jbpm">
+        <property name="pageflowDefinitions">pageflow.jpdl.xml</property>
+    </component>
+    
+    <!-- Bootstrap Hibernate -->
+    <component name="esbDatabase" 
+              class="org.jboss.seam.core.ManagedHibernateSession"/>
+    <component class="org.jboss.seam.core.Hibernate"/> 
+    
+    <component class="org.jboss.seam.core.Microcontainer" installed="true"/>
+    
+</components>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/faces-config.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE faces-config 
+    PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
+    "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+    
+<faces-config>
+
+    <!-- Navigation rules for the Admin Console app -->
+
+    <navigation-rule>
+
+        <navigation-case>
+            <from-outcome>home</from-outcome>
+            <to-view-id>/home.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>error</from-outcome>
+            <to-view-id>/error.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+		<!-- ==============================================================================================
+			Message Transformation Config View navigation rules.
+		=============================================================================================== -->
+
+        <navigation-case>
+            <from-outcome>select-message-flow</from-outcome>
+            <to-view-id>/transform/select-message-flow-from-epr.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>select-message-flow-from-epr</from-outcome>
+            <to-view-id>/transform/select-message-flow-from-epr.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>select-message-flow-from-type</from-outcome>
+            <to-view-id>/transform/select-message-flow-from-type.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>select-message-flow-to-epr</from-outcome>
+            <to-view-id>/transform/select-message-flow-to-epr.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>select-message-flow-to-type</from-outcome>
+            <to-view-id>/transform/select-message-flow-to-type.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>select-message-flow-finish</from-outcome>
+            <to-view-id>/transform/select-message-flow-finish.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>new-trans-resource-create</from-outcome>
+            <to-view-id>/transform/new-trans-resource-create.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>new-trans-resource-target</from-outcome>
+            <to-view-id>/transform/new-trans-resource-target.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>list-resources</from-outcome>
+            <to-view-id>/transform/list-resources.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>view-resource</from-outcome>
+            <to-view-id>/transform/view-resource.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>list-resources-as-smooks-config</from-outcome>
+            <to-view-id>/transform/list-resources-as-smooks-config.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+		<!-- ==============================================================================================
+			Message Contract Config View navigation rules.
+		=============================================================================================== -->
+
+        <navigation-case>
+            <from-outcome>new-message-contract</from-outcome>
+            <to-view-id>/contract/new-message-contract.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+        <navigation-case>
+            <from-outcome>list-message-contracts</from-outcome>
+            <to-view-id>/contract/list-message-contracts.xhtml</to-view-id>
+            <redirect />
+        </navigation-case>
+
+    </navigation-rule>
+
+	<navigation-rule>
+		<from-view-id>/home.xhtml</from-view-id>
+	</navigation-rule>
+
+    <!-- Facelets support -->
+
+    <application>
+        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+    </application>
+    
+    <!-- Select one of the two standard persistence lifecycle models for the Seam application -->
+
+    <lifecycle>
+        <phase-listener>org.jboss.seam.jsf.SeamExtendedManagedPersistencePhaseListener</phase-listener>
+    </lifecycle>
+
+	<converter>
+		<converter-id>EPRConverter</converter-id>
+		<converter-class>org.jboss.soa.esb.admin.console.EPRConverter</converter-class>
+	</converter>
+	
+	<converter>
+		<converter-id>SmooksResourceListConverter</converter-id>
+		<converter-class>org.jboss.soa.esb.admin.console.transform.SmooksResourceListConverter</converter-class>
+	</converter>
+	
+</faces-config>

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-beanutils-1.7.0.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-beanutils-1.7.0.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-codec-1.3.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-codec-1.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-digester-1.6.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-digester-1.6.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-api.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-api.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-ri.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/el-ri.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/hibernate-all.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/hibernate-all.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-aop-jdk50.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-aop-jdk50.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-cache-jdk50.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-cache-jdk50.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-ejb3-all.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-ejb3-all.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-debug.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-debug.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-ui.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam-ui.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jboss-seam.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jbpm-3.1.1.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jbpm-3.1.1.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jgroups.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jgroups.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jsf-facelets.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jsf-facelets.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jstl.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/jstl.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mailstuff.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mailstuff.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mc-conf.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/mc-conf.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-api-1.1.3.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-api-1.1.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-impl-1.1.3.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/myfaces-impl-1.1.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/portlet-api-lib.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/portlet-api-lib.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/postgresql-8.1-407.jdbc2ee.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/postgresql-8.1-407.jdbc2ee.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/selectitems-1.1.0rc2.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/selectitems-1.1.0rc2.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/thirdparty-all.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/thirdparty-all.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/pages.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,3 @@
+<pages>
+	<page view-id="/transform/select-message-flow-from-epr.xhtml" action="#{messageFlowSelect.startSelection}"/>
+</pages>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/trunk/product/console/resources/WEB-INF/web.xml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/resources/WEB-INF/web.xml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4" 
+    xmlns="http://java.sun.com/xml/ns/j2ee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    
+    <!-- Seam -->
+   
+    <listener>
+        <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+    </listener>
+    
+    <!-- Propagate conversations across redirects -->
+    <filter>
+        <filter-name>Seam Redirect Filter</filter-name>
+        <filter-class>org.jboss.seam.servlet.SeamRedirectFilter</filter-class>
+    </filter>
+    
+    <filter-mapping>
+        <filter-name>Seam Redirect Filter</filter-name>
+        <url-pattern>*.jsf</url-pattern>
+    </filter-mapping>
+
+    <!-- Needed to ensure safe tx cleanup when using Seam-managed sessions/persistence contexts -->
+    <filter>
+        <filter-name>Seam Exception Filter</filter-name>
+        <filter-class>org.jboss.seam.servlet.SeamExceptionFilter</filter-class>
+    </filter>
+    
+    <filter-mapping>
+        <filter-name>Seam Exception Filter</filter-name>
+        <url-pattern>*.jsf</url-pattern>
+    </filter-mapping> 
+    
+    <!-- MyFaces -->
+    
+    <listener>
+        <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
+    </listener>
+    
+    <context-param>
+        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+        <param-value>client</param-value>
+    </context-param>
+
+    <context-param>
+        <param-name>facelets.DEVELOPMENT</param-name>
+        <param-value>true</param-value>
+    </context-param>
+
+    <context-param>
+        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+        <param-value>.xhtml</param-value>
+    </context-param>
+    
+    <servlet>
+        <servlet-name>Faces Servlet</servlet-name>
+        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <servlet-mapping>
+        <servlet-name>Faces Servlet</servlet-name>
+        <url-pattern>*.jsf</url-pattern>
+    </servlet-mapping>
+
+</web-app>

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPR.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPR.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPR.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.validator.NotNull;
+import org.jboss.seam.annotations.Name;
+
+/**
+ * Endpoint Reference Entity Bean.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Entity
+ at Name("epr")
+public class EPR implements Serializable {
+
+	/**
+	 * Persistence ID ref.
+	 */
+	private Long id;
+	/**
+	 * The URI of the EPR.
+	 */
+	private String uri;
+	
+	/**
+	 * Public default constructor.
+	 */
+	public EPR() {
+	}
+
+	/**
+	 * Public constructor.
+	 * @param uri EPR URI.
+	 */
+	public EPR(String uri) {
+		this.uri = uri;
+	}
+
+	/**
+	 * Get the URI.
+	 * @return Returns the uri.
+	 */
+	@NotNull
+	public String getUri() {
+		// TODO: Add a regex @Pattern for URI validation.
+		return uri;
+	}
+
+	/**
+	 * Set the URI.
+	 * @param uri The uri to set.
+	 */
+	public void setUri(String uri) {
+		this.uri = uri;
+	}
+
+	/**
+	 * @return Returns the id.
+	 */
+	@Id @GeneratedValue
+	public Long getId() {
+		return id;
+	}
+
+	/**
+	 * @param id The id to set.
+	 */
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return uri;
+	}	
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPRConverter.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPRConverter.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/EPRConverter.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+/**
+ * Facelets converter for the EPR type.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class EPRConverter implements Converter {
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
+	 */
+	public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String string)
+			throws ConverterException {
+		
+		return new EPR(string);
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
+	 */
+	public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object object)
+			throws ConverterException {
+		
+		return ((EPR)object).getUri();
+	}
+
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/SeamUtils.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/SeamUtils.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/SeamUtils.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console;
+
+import java.util.Arrays;
+
+import org.jboss.seam.contexts.Contexts;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class SeamUtils {
+
+	public static void printContexts() {
+		System.out.println("==================================== Seam Contexts ====================================");
+		System.out.println("Appl Ctx [" + Contexts.getApplicationContext() + "]: : " + Arrays.asList(Contexts.getApplicationContext().getNames()));
+		System.out.println("Buss Ctx [" + Contexts.getBusinessProcessContext() + "]: : " + Arrays.asList(Contexts.getBusinessProcessContext().getNames()));
+		System.out.println("Sess Ctx [" + Contexts.getSessionContext() + "]: " + Arrays.asList(Contexts.getSessionContext().getNames()));
+		System.out.println("Conv Ctx [" + Contexts.getConversationContext() + "]: : " + Arrays.asList(Contexts.getConversationContext().getNames()));
+		System.out.println("Page Ctx [" + Contexts.getPageContext() + "]: : " + Arrays.asList(Contexts.getPageContext().getNames()));
+		System.out.println("Evnt Ctx [" + Contexts.getEventContext() + "]: : " + Arrays.asList(Contexts.getEventContext().getNames()));
+		System.out.println("=======================================================================================");
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/ManageContracts.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/ManageContracts.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/ManageContracts.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.contract;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+import static org.jboss.seam.ScopeType.EVENT;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.datamodel.DataModelSelectionIndex;
+import org.jboss.soa.esb.admin.console.SeamUtils;
+import org.jboss.soa.esb.admin.console.transform.SmooksUtils;
+import org.jboss.soa.esb.admin.console.transform.TransformationResource;
+import org.jboss.soa.esb.admin.console.transform.TransformationResourceParameter;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlow;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlowSelected;
+
+/**
+ * Manage the configured message contracts.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("manageContracts")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="home")
+public class ManageContracts implements Serializable {
+
+
+	@In(create=true)
+	private Session esbDatabase;
+	
+	@DataModel
+	private List<MessageContract> contracts;
+	@DataModelSelectionIndex("contracts")
+	int contractIndex = 0;
+	
+	@In(required=false) @Out(required=false,scope=CONVERSATION)
+	private MessageContract selectedContract;
+	
+	/**
+	 * Get the {@link MessageContract} list factory method.
+	 */
+	@Factory("contracts")
+	public void findMessageContracts() {
+		contracts = esbDatabase.createQuery("from MessageContract order by epr").list();
+	}
+	
+	@Begin(join=true)
+	public String list() {
+		return "list-message-contracts";
+	}
+	
+	public String deleteContract() {
+		selectedContract = contracts.get(contractIndex);
+		esbDatabase.delete(selectedContract);
+		
+		findMessageContracts();
+		
+		return "list-message-contracts";
+	}
+
+	@End
+	public String close() {
+		return "home";
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/MessageContract.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/MessageContract.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/MessageContract.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,216 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.contract;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.validator.NotNull;
+import org.jboss.seam.annotations.Name;
+
+/**
+ * Message contract definition.
+ * <p/>
+ * This class defines message properties with respect to the type of data contained in the message, as well as the EPR
+ * that produces or consumes the message.  It basically puts some typing information around the messages that flow
+ * through the ESB.
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Entity
+ at Name("`messageContract`")
+public class MessageContract implements Serializable {
+
+	/**
+	 * Enumeration type for how a message type is used by the service located at the associated EPR.
+	 * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+	 */
+	public static enum USAGE {
+		PRODUCES, 
+		CONSUMES
+	};
+	
+	/**
+	 * Persistence ID ref.
+	 */
+	private String id;
+	/**
+	 * The EPR that this message type is associated with.
+	 */
+	private String epr;
+	/**
+	 * How this message is used by the EPR.
+	 */
+	private String usage;
+	/**
+	 * Message Mime Type.
+	 */
+	private String mime;
+	/**
+	 * Message namespace.
+	 */
+	private String namespace;
+	/**
+	 * Message description (dtd, xsd etc).
+	 */
+	private String messageDescription;
+	
+	// TODO:  The type could/should be normalised further by pulling the message typing info into a type of its own,
+	// making this class look like...
+	// class MessageContract {
+	//		MessageType messageType;
+	// 		EPR serviceEPR;
+	//		USAGE messageUsage;
+	// }
+	
+	/**
+	 * Public default constructor.
+	 */
+	public MessageContract() {
+	}
+
+	/**
+	 * Public Constructor.
+	 * @param mime Message mime type (required).
+	 * @param namespace Message namespace (optional).
+	 * @param messageDescription Message dtd/schema (optional).
+	 */
+	public MessageContract(String mime, String namespace, String messageDescription) {
+		this.mime = mime;
+		this.namespace = namespace;
+		this.messageDescription = messageDescription;
+	}
+
+	/**
+	 * @return Returns the epr.
+	 */
+	@NotNull
+	public String getEpr() {
+		return epr;
+	}
+
+	/**
+	 * @param epr The epr to set.
+	 */
+	public void setEpr(String epr) {
+		this.epr = epr;
+	}
+
+	/**
+	 * @return Returns the usage.
+	 */
+	@NotNull
+	public String getUsage() {
+		return usage;
+	}
+
+	/**
+	 * @param usage The usage to set.
+	 */
+	public void setUsage(String usage) {
+		// TODO:  There must be a way to get Seam to perform tis checking via annotations!
+		if(!USAGE.PRODUCES.name().equals(usage) && !USAGE.CONSUMES.name().equals(usage)) {
+			// TODO: Handle this properly!!  Better still - find out if and how to get enums to work with Seam.
+			throw new RuntimeException("Message Usage field must be either '" + USAGE.PRODUCES.name() + "' '" + USAGE.CONSUMES.name() + "'");
+		}
+		this.usage = usage;
+	}
+	
+	/**
+	 * @return Returns the messageDescription.
+	 */
+	public String getMessageDescription() {
+		return messageDescription;
+	}
+	/**
+	 * @param messageDescription The messageDescription to set.
+	 */
+	public void setMessageDescription(String messageDescription) {
+		this.messageDescription = messageDescription;
+	}
+	/**
+	 * @return Returns the mime.
+	 */
+	@NotNull
+	public String getMime() {
+		return mime;
+	}
+	/**
+	 * @param mime The mime to set.
+	 */
+	public void setMime(String mime) {
+		this.mime = mime;
+	}
+
+	/**
+	 * @return Returns the id.
+	 */
+	@Id @GeneratedValue(generator="system-uuid")
+	@GenericGenerator(name="system-uuid", strategy = "uuid")
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * @param id The id to set.
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	/**
+	 * @return Returns the message namespace.
+	 */
+	@NotNull
+	public String getNamespace() {
+		return namespace;
+	}
+	
+	/**
+	 * @param namespace The message namespace to set.
+	 */
+	public void setNamespace(String xmlns) {
+		this.namespace = xmlns;
+	}	
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		StringBuffer stringBuf = new StringBuffer();
+		
+		stringBuf.append(mime);
+		if(namespace != null) {
+			stringBuf.append(':').append(namespace);
+		}
+		if(messageDescription != null) {
+			stringBuf.append(':').append(messageDescription);
+		}
+		
+		return stringBuf.toString();
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/NewContract.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/NewContract.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/contract/NewContract.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.contract;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+
+import java.io.Serializable;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * Add a new Message Contract.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("newContract")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="home")
+public class NewContract implements Serializable {
+	
+	@In(create=true, required=false) @Out(scope=CONVERSATION)
+	private MessageContract contract;
+
+	@In(create=true)
+	private Session esbDatabase;
+
+	@Begin(join=true)
+	public String showForm() {
+		return "new-message-contract";
+	}
+	
+	@Create
+	public void create() {
+		contract = new MessageContract();
+	}
+	
+	@End
+	public String save() {
+		try {
+			// Persist...
+			esbDatabase.persist(contract);
+			
+			return "home";
+		} catch(Throwable thrown) {
+			thrown.printStackTrace();
+			throw new RuntimeException(thrown);
+		}
+	}
+	
+	@End
+	public String cancel() {
+		return "home";
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ListAllResources.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import static org.jboss.seam.ScopeType.EVENT;
+import static org.jboss.seam.ScopeType.SESSION;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * Action listener for outjecting the complete list of {@link org.jboss.soa.esb.admin.console.transform.TransformationResource}
+ * configurations managed by this instance of the console.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("listAllResources")
+ at Scope(EVENT)
+public class ListAllResources implements Serializable {
+
+	@In(create=true)
+	private Session esbDatabase;
+
+	// TODO: Why can't we outject this to the EVENT context???
+	@Out(scope=SESSION)
+	private List<TransformationResource> allResourceConfigs;
+	
+	/**
+	 * List all resources.
+	 * <p/>
+	 * Initialises the data model before it's outjected.
+	 * @return
+	 */
+	public String list() {
+		allResourceConfigs = esbDatabase.createQuery("from TransformationResource").list();
+		
+		return "list-resources-as-smooks-config";
+	}
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ManageResources.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ManageResources.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/ManageResources.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+import static org.jboss.seam.ScopeType.EVENT;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.datamodel.DataModelSelectionIndex;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlow;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlowSelected;
+
+/**
+ * Manage the <a href="http://milyn.codehaus.org/Smooks">Smooks</a> resource configurations targeted at the session selected message flow.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("manageResources")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="home")
+ at MessageFlowSelected
+public class ManageResources implements Serializable {
+
+	@In(create=true)
+	private Session esbDatabase;
+
+	@In
+	private MessageFlow messageFlow;
+	
+	@DataModel 
+	private List<TransformationResource> messageFlowConfigs;
+	@DataModelSelectionIndex("messageFlowConfigs")
+	int messageFlowConfigIndex = 0;
+	
+	@In(required=false) @Out(required=false,scope=CONVERSATION)
+	private TransformationResource selectedConfig;
+	
+	@DataModel 
+	private List<TransformationResourceParameter> selectedConfigParams;
+	
+	@Begin(join=true)
+	public String list() {
+		initialise();
+		
+		return "list-resources";
+	}
+
+	public String viewConfiguration() {
+		selectedConfig = messageFlowConfigs.get(messageFlowConfigIndex);
+		selectedConfigParams = Arrays.asList(selectedConfig.getParameters());
+				
+		return "view-resource";
+	}
+	
+	public String deleteConfiguration() {
+		selectedConfig = messageFlowConfigs.get(messageFlowConfigIndex);
+		esbDatabase.delete(selectedConfig);
+		initialise();
+		
+		return "list-resources";
+	}
+
+	@End
+	public String close() {
+		return "home";
+	}
+	
+	/**
+	 * Initialise the message flow configurations list.
+	 */
+	private void initialise() {
+		List<TransformationResource> allResourceConfigs;
+		
+		// Read all resources configs from the DB...
+		allResourceConfigs = esbDatabase.createQuery("from TransformationResource").list();
+		
+		// Filter and sort the resource configs for the selected message flow (for display)...
+		messageFlowConfigs = SmooksUtils.getMessageFlowConfigs(messageFlow, allResourceConfigs);
+		
+		// Clear the selected configuration.
+		selectedConfig = null;
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/NewResource.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.soa.esb.admin.console.SeamUtils;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlow;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlowSelected;
+
+/**
+ * Add Transformation Resource action handler.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("newResource")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="home")
+ at MessageFlowSelected
+public class NewResource implements Serializable {
+
+	@In(create=true)
+	private Session esbDatabase;
+
+	@In
+	private MessageFlow messageFlow;
+	
+	@In(create=true) @Out
+	private TransformationResource transResource;
+	
+	@In(create=true) @Out
+	private TransformationResourceParameter transResourceParameter;
+	
+	@DataModel 
+	private List<TransformationResourceParameter> parameterList;
+	
+	@Begin(join=true)
+	public String captureResourceDetailsConfiguration() {
+		// Create the new resource and set the useragent...
+		transResource = new TransformationResource();
+		transResource.setUseragent(messageFlow.getFlowUseragentString());
+
+		parameterList = null;
+		initParameterList();
+		
+		return "new-trans-resource-create";
+	}
+
+	public void initParameterList() {
+		if(parameterList == null) {
+			parameterList = new ArrayList<TransformationResourceParameter>();
+		}
+	}
+	
+	public String addParameter() {
+		parameterList.add(transResourceParameter);
+		transResourceParameter = new TransformationResourceParameter();
+		
+		return "new-trans-resource-create";
+	}
+	
+	public String cancelAddParameter() {
+		return "new-trans-resource-create";
+	}
+	
+	@End
+	public String save() {
+		try {
+			TransformationResourceParameter[] paramArray = new TransformationResourceParameter[parameterList.size()];
+			
+			// Set the parameter set...
+			parameterList.toArray(paramArray);
+			transResource.setParameters(paramArray);
+			
+			// Persist...
+			esbDatabase.persist(transResource);
+			
+			return "home";
+		} catch(Throwable thrown) {
+			SeamUtils.printContexts();
+			return "error";
+		}
+	}
+	
+	@End
+	public String cancel() {
+		return "home";
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverter.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverter.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverter.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.util.List;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.soa.esb.admin.console.SeamUtils;
+
+/**
+ * Faces converter for a list of transformation resource.
+ * <p/>
+ * Generates a Smooks XML config fragment.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class SmooksResourceListConverter implements Converter {
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
+	 */
+	public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String string) throws ConverterException {
+		throw new UnsupportedOperationException();
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
+	 */
+	public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object object) throws ConverterException {
+		StringBuffer stringBuffer = new StringBuffer();
+		
+		if(object instanceof List) {
+			List resList = (List)object;
+			
+			for(int i = 0; i < resList.size(); i++) {
+				TransformationResource resource = (TransformationResource) resList.get(i);
+				
+				appendResource(resource, stringBuffer);
+			}
+		} else {
+			stringBuffer.append("<!-- No configurations found. -->");
+			SeamUtils.printContexts();
+		}
+		
+		return stringBuffer.toString();
+	}
+
+	private static void appendResource(TransformationResource resource, StringBuffer stringBuffer) {
+		
+		stringBuffer.append("\n\t<smooks-resource ");
+		if(resource.getSelector() != null && !resource.getSelector().trim().equals("")) {
+			stringBuffer.append("selector=\"").append(resource.getSelector()).append("\" ");
+		}
+		if(resource.getUseragent() != null && !resource.getUseragent().trim().equals("")) {
+			stringBuffer.append("useragent=\"").append(resource.getUseragent()).append("\" ");
+		}
+		if(resource.getNamespace() != null && !resource.getNamespace().trim().equals("")) {
+			stringBuffer.append("namespace=\"").append(resource.getNamespace()).append("\" ");
+		}
+		if(resource.getPath() != null && !resource.getPath().trim().equals("")) {
+			stringBuffer.append("path=\"").append(resource.getPath()).append("\" ");
+		}
+		stringBuffer.append(">");
+
+		TransformationResourceParameter[] parameters = resource.getParameters();
+		if(parameters != null && parameters.length > 0) {
+			appendParameters(parameters, stringBuffer);
+		}
+	
+		stringBuffer.append("\n\t</smooks-resource>");
+	}
+
+	private static void appendParameters(TransformationResourceParameter[] parameters, StringBuffer stringBuffer) {
+		for(TransformationResourceParameter param : parameters) {
+			stringBuffer.append("\n\t\t<param name=\"").append(param.getName()).append("\">");
+			stringBuffer.append("<![CDATA[");
+			stringBuffer.append(param.getValue());
+			stringBuffer.append("]]>");
+			stringBuffer.append("</param>");
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksUtils.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksUtils.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/SmooksUtils.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlow;
+import org.milyn.SmooksStandalone;
+import org.milyn.cdr.SmooksResourceConfiguration;
+import org.milyn.container.standalone.StandaloneContainerSession;
+
+/**
+ * <a href="http://milyn.codehaus.org/Smooks">Milyn Smooks</a> utility methods
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class SmooksUtils {
+
+	/**
+	 * Get the ordered set of message {@link TransformationResource}s targetd at the supplied message flow.
+	 * <p/>
+	 * The resource are grouped by selector and ordered according to their specificity.  See 
+	 * <a href="http://milyn.codehaus.org/Smooks">Milyn Smooks</a>.
+	 * @param messageFlow The message flow whose resources we're interested in.
+	 * @param allResourceConfigs All the configured transformation resources on this ESB instance.
+	 * @return List of transformation resources targeted at the supplied message flow.
+	 */
+	public static List<TransformationResource> getMessageFlowConfigs(MessageFlow messageFlow, List<TransformationResource> allResourceConfigs) {
+		SmooksStandalone smooks = new SmooksStandalone("UTF-8");
+		String messageUAString = "JBossESBMessage"; // Doesn't really matter what this string is because of how we're using it here!
+		StandaloneContainerSession messageUASession;
+		Map messageFlowConfigsMap;
+		List<TransformationResource> messageFlowConfigsList = new ArrayList<TransformationResource>();;
+		
+		// Register all the configurations on the context...
+		for(TransformationResource resourceConfig : allResourceConfigs) {
+			smooks.registerResource(DBLinkedSmooksResourceConfiguration.getInstance(resourceConfig));
+		}
+		
+		// Capture the message flow properties as useragent profiles...
+		String[] profilesArray = getMessageFlowProfiles(messageFlow);
+
+		// Create and register a message useragent with the message flow profiles ...
+		smooks.registerUseragent(messageUAString, profilesArray);
+		messageUASession = smooks.getSession(messageUAString);
+		
+		// Filter out the configurations for the message session...
+		messageFlowConfigsMap = messageUASession.getDeliveryConfig().getSmooksResourceConfigurations();
+		Iterator mapIterator = messageFlowConfigsMap.entrySet().iterator();
+		while(mapIterator.hasNext()) {
+			Entry mapEntry = (Entry)mapIterator.next();
+			List selectorResourceList = (List)mapEntry.getValue();
+			
+			for(Object resourceConfig : selectorResourceList) {
+				if(resourceConfig instanceof DBLinkedSmooksResourceConfiguration) {
+					messageFlowConfigsList.add(((DBLinkedSmooksResourceConfiguration)resourceConfig).persistedConfigForm);
+				}
+			}
+		}
+		
+
+		return messageFlowConfigsList;
+	}
+
+	/**
+	 * Get the Smooks "profiles" that correspond to the supplied message flow. 
+	 * @param messageFlow The message flow.
+	 * @return List of profiles.
+	 */
+	private static String[] getMessageFlowProfiles(MessageFlow messageFlow) {
+		String[] profilesArray;
+		List<String> profiles = new ArrayList<String>();
+		
+		if(messageFlow.getFromMessageType() != null) {
+			profiles.add(MessageFlow.FROM_TYPE + messageFlow.getFromMessageType());
+		}
+		if(messageFlow.getFromEPR() != null) {
+			profiles.add(MessageFlow.FROM_EPR + messageFlow.getFromEPR());
+		}
+		if(messageFlow.getToEPR() != null) {
+			profiles.add(MessageFlow.TO_EPR + messageFlow.getToEPR());
+		}
+		if(messageFlow.getToMessageType() != null) {
+			profiles.add(MessageFlow.TO_TYPE + messageFlow.getToMessageType());
+		}
+
+		if(profiles.isEmpty()) {
+			profiles.add("$NO-PROFILES$");
+		}
+		
+		profilesArray = new String[profiles.size()];
+		profiles.toArray(profilesArray);
+		
+		return profilesArray;
+	}
+
+	/**
+	 * Linking of the SmooksResourceConfiguration to it's persisted JBoss ESB TransformationResource
+	 * form.
+	 * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+	 */
+	private static class DBLinkedSmooksResourceConfiguration extends SmooksResourceConfiguration {
+		
+		private TransformationResource persistedConfigForm;
+		
+		public DBLinkedSmooksResourceConfiguration(String selector, String namespaceURI, String useragents, String path) {
+			super(selector, namespaceURI, useragents, path);
+		}
+		
+		private static DBLinkedSmooksResourceConfiguration getInstance(TransformationResource resourceConfig) {
+			DBLinkedSmooksResourceConfiguration instance;
+			
+			instance = new DBLinkedSmooksResourceConfiguration(
+					resourceConfig.getSelector(), resourceConfig.getNamespace(),
+					resourceConfig.getUseragent(), resourceConfig.getPath());
+			instance.persistedConfigForm = resourceConfig;
+			
+			return instance;
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResource.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResource.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResource.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.validator.NotNull;
+import org.jboss.seam.annotations.Name;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Entity
+ at Name("transResource")
+public class TransformationResource implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	private String id;
+	private String useragent;
+	private String selector;
+	private String namespace;
+	private String path;
+	private TransformationResourceParameter[] parameters;
+
+	/**
+	 * @return Returns the id.
+	 */
+	@Id @GeneratedValue(generator="system-uuid")
+	@GenericGenerator(name="system-uuid", strategy = "uuid")
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * @param id The id to set.
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+	
+	/**
+	 * @return Returns the namespace.
+	 */
+	public String getNamespace() {
+		return namespace;
+	}
+	/**
+	 * @param namespace The namespace to set.
+	 */
+	public void setNamespace(String namespace) {
+		this.namespace = namespace;
+	}
+	/**
+	 * @return Returns the path.
+	 */
+	public String getPath() {
+		return path;
+	}
+	/**
+	 * @param path The path to set.
+	 */
+	public void setPath(String path) {
+		this.path = path;
+	}
+	/**
+	 * @return Returns the parameters.
+	 */
+	public TransformationResourceParameter[] getParameters() {
+		return parameters;
+	}
+	/**
+	 * @param parameters The parameters to set.
+	 */
+	public void setParameters(TransformationResourceParameter[] properties) {
+		this.parameters = properties;
+	}
+	/**
+	 * @return Returns the selector.
+	 */
+	@NotNull
+	public String getSelector() {
+		return selector;
+	}
+	/**
+	 * @param selector The selector to set.
+	 */
+	public void setSelector(String selector) {
+		this.selector = selector;
+	}
+	/**
+	 * @return Returns the useragent.
+	 */
+	public String getUseragent() {
+		return useragent;
+	}
+	/**
+	 * @param useragent The useragent to set.
+	 */
+	public void setUseragent(String useragent) {
+		this.useragent = useragent;
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/TransformationResourceParameter.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.io.Serializable;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.validator.NotNull;
+import org.jboss.seam.annotations.Name;
+
+/**
+ * Transformation Resource Parameter.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("transResourceParameter")
+public class TransformationResourceParameter implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	private String name;
+	private String value;
+
+	public TransformationResourceParameter() {
+	}
+
+	public TransformationResourceParameter(String name, String value) {
+		this.name = name;
+		this.value = value;
+	}
+	
+	/**
+	 * @return Returns the name.
+	 */
+	@NotNull
+	public String getName() {
+		return name;
+	}
+	/**
+	 * @param name The name to set.
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	/**
+	 * @return Returns the value.
+	 */
+	@NotNull
+	public String getValue() {
+		return value;
+	}
+	/**
+	 * @param value The value to set.
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlow.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlow.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlow.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,219 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import java.io.Serializable;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.soa.esb.admin.console.EPR;
+import org.jboss.soa.esb.admin.console.contract.MessageContract;
+
+/**
+ * Message flow.
+ * <p/>
+ * This class defines properties used to target message transformation resources at a message flow,
+ * or a subset there of.
+ * <p/>
+ * This class will likely be expanded to include support for other message profile types. 
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("messageFLow")
+public class MessageFlow implements Serializable {
+	
+	public static final String FROM_EPR = "from-epr:";
+	public static final String FROM_TYPE = "from-type:";
+	public static final String TO_EPR = "to-epr:";
+	public static final String TO_TYPE = "to-type:";
+
+	@In(required=false) @Out(required=false)
+	private EPR fromEPR;
+
+	@In(required=false) @Out(required=false)
+	private MessageContract fromMessageType;
+
+	@In(required=false) @Out(required=false)
+	private EPR toEPR;
+
+	@In(required=false) @Out(required=false)
+	private MessageContract toMessageType;
+
+	/**
+	 * Set the message source {@link EPR}.
+	 * @param fromEPR The fromEPR to set.
+	 */
+	public void setFromEPR(EPR fromEPR) {
+		this.fromEPR = fromEPR;
+	}
+
+	/**
+	 * Get the message source {@link EPR}.
+	 * @return Returns the fromEPR.
+	 */
+	public EPR getFromEPR() {
+		return fromEPR;
+	}
+
+	/**
+	 * Set the message type associated with the flow.
+	 * @param fromMessageType The fromMessageType to set.
+	 */
+	public void setFromMessageType(MessageContract messageType) {
+		this.fromMessageType = messageType;
+	}
+
+	/**
+	 * Get the message type associated with the flow.
+	 * @return Returns the fromMessageType.
+	 */
+	public MessageContract getFromMessageType() {
+		return fromMessageType;
+	}
+
+	/**
+	 * Set the message destination {@link EPR}.
+	 * @param toEPR The toEPR to set.
+	 */
+	public void setToEPR(EPR toEPR) {
+		this.toEPR = toEPR;
+	}
+
+	/**
+	 * Get the message destination {@link EPR}.
+	 * @return Returns the toEPR.
+	 */
+	public EPR getToEPR() {
+		return toEPR;
+	}
+
+	/**
+	 * @param toMessageType The toMessageType to set.
+	 */
+	public void setToMessageType(MessageContract toMessageType) {
+		this.toMessageType = toMessageType;
+	}
+
+	/**
+	 * @return Returns the toMessageType.
+	 */
+	public MessageContract getToMessageType() {
+		return toMessageType;
+	}
+
+	@Out
+	public String getFlowUseragentString() {
+		if(fromMessageType == null && fromEPR == null && toMessageType == null && toEPR == null) {
+			return "*";
+		}
+
+		StringBuffer stringBuffer = new StringBuffer();
+		
+		if(fromMessageType != null) {
+			stringBuffer.append(FROM_TYPE);
+			stringBuffer.append(fromMessageType != null?fromMessageType:"*");
+			stringBuffer.append(fromEPR != null || toMessageType != null || toEPR != null?" AND ":"");
+		}
+
+		if(fromEPR != null) {
+			stringBuffer.append(FROM_EPR);
+			stringBuffer.append(fromEPR != null?fromEPR:"*");
+			stringBuffer.append(toMessageType != null || toEPR != null?" AND ":"");
+		}
+		
+		if(toMessageType != null) {
+			stringBuffer.append(TO_TYPE);
+			stringBuffer.append(toMessageType != null?toMessageType:"*");
+			stringBuffer.append(toEPR != null?" AND ":"");
+		}
+
+		if(toEPR != null) {
+			stringBuffer.append(TO_EPR);
+			stringBuffer.append(toEPR != null?toEPR:"*");
+		}
+		
+		return stringBuffer.toString().trim();
+	}
+	
+	@Out
+	public String getFlowUseragentStringAsHtml() {
+		if(fromMessageType == null && fromEPR == null && toMessageType == null && toEPR == null) {
+			return "All Messages";
+		}
+
+		StringBuffer stringBuffer = new StringBuffer();
+		
+		stringBuffer.append("<b>").append(FROM_TYPE).append("</b>");
+		stringBuffer.append(fromMessageType != null?fromMessageType:"*");
+		stringBuffer.append("<br/>AND<br/>");
+
+		stringBuffer.append("<b>").append(FROM_EPR).append("</b>");
+		stringBuffer.append(fromEPR != null?fromEPR:"*");
+		stringBuffer.append("<br/>AND<br/>");
+		
+		stringBuffer.append("<b>").append(TO_TYPE).append("</b>");
+		stringBuffer.append(toMessageType != null?toMessageType:"*");
+		stringBuffer.append("<br/>AND<br/>");
+
+		stringBuffer.append("<b>").append(TO_EPR).append("</b>");
+		stringBuffer.append(toEPR != null?toEPR:"*");
+		
+		return stringBuffer.toString();
+	}
+	
+	@Out
+	public String getFlowAsHtml() {
+		if(fromMessageType == null && fromEPR == null && toMessageType == null && toEPR == null) {
+			return "All Messages";
+		}
+
+		StringBuffer stringBuffer = new StringBuffer();
+		
+		stringBuffer.append("<b>").append(FROM_TYPE).append("</b> ");
+		stringBuffer.append(fromMessageType != null?fromMessageType:"*");
+		stringBuffer.append("<br/>");
+
+		stringBuffer.append("<b>").append(FROM_EPR).append("</b> ");
+		stringBuffer.append(fromEPR != null?fromEPR:"*");
+		stringBuffer.append("<br/>");
+		
+		stringBuffer.append("<b>").append(TO_TYPE).append("</b> ");
+		stringBuffer.append(toMessageType != null?toMessageType:"*");
+		stringBuffer.append("<br/>");
+
+		stringBuffer.append("<b>").append(TO_EPR).append("</b> ");
+		stringBuffer.append(toEPR != null?toEPR:"*");
+		
+		return stringBuffer.toString();
+	}
+
+	/**
+	 * Reset the message flow.
+	 */
+	public void reset() {
+		fromEPR = null;
+		fromMessageType = null;
+		toEPR = null;
+		toMessageType = null;
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelected.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelected.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelected.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.interceptor.Interceptors;
+
+/**
+ * Meta-annotation for the {@link org.jboss.soa.esb.admin.console.transform.flow.MessageFlowSelectedInterceptor}
+ * interceptor class.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Target(TYPE)
+ at Retention(RUNTIME)
+ at Documented
+ at Interceptors(MessageFlowSelectedInterceptor.class)
+public @interface MessageFlowSelected {}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelectedInterceptor.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelectedInterceptor.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/MessageFlowSelectedInterceptor.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import javax.interceptor.AroundInvoke;
+import javax.interceptor.InvocationContext;
+
+import org.jboss.seam.annotations.Around;
+import org.jboss.seam.interceptors.BijectionInterceptor;
+import org.jboss.seam.interceptors.BusinessProcessInterceptor;
+import org.jboss.seam.interceptors.ConversationInterceptor;
+import org.jboss.seam.interceptors.ValidationInterceptor;
+
+/**
+ * Interceptor to enforce Message flow selection.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Around( { BijectionInterceptor.class, ValidationInterceptor.class, ConversationInterceptor.class, BusinessProcessInterceptor.class })
+public class MessageFlowSelectedInterceptor {
+
+	@AroundInvoke
+	public Object assertFlowSelected(InvocationContext invocation) throws Exception {
+		boolean isFlowSelected = SelectMessageFlow.isMessageFlowSelected();
+		
+		if (isFlowSelected) {
+			return invocation.proceed();
+		} else {
+			return "select-message-flow";
+		}
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/SelectMessageFlow.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/SelectMessageFlow.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/SelectMessageFlow.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+import static org.jboss.seam.ScopeType.SESSION;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.ejb.Remove;
+
+import org.hibernate.Session;
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Conversational;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.Destroy;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.datamodel.DataModelSelectionIndex;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.soa.esb.admin.console.EPR;
+import org.jboss.soa.esb.admin.console.SeamUtils;
+import org.jboss.soa.esb.admin.console.contract.MessageContract;
+
+/**
+ * Message Flow Select Listener.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("messageFlowSelect")
+ at Scope(CONVERSATION)
+ at Conversational(ifNotBegunOutcome="select-message-flow")
+public class SelectMessageFlow implements Serializable {
+
+	@In(create=true)
+	private Session esbDatabase;
+
+	@DataModel
+	private List<MessageContract> fromMessageTypes;
+	@DataModelSelectionIndex("fromMessageTypes")
+	int fromMessageTypeIndex = 0;
+	
+	@DataModel
+	private List<EPR> fromEPRs;
+	@DataModelSelectionIndex("fromEPRs")
+	int fromEPRSelectionIndex = 0;
+
+	@DataModel
+	private List<MessageContract> toMessageTypes;
+	@DataModelSelectionIndex("toMessageTypes")
+	int toMessageTypeIndex = 0;
+	
+	@DataModel
+	private List<EPR> toEPRs;
+	@DataModelSelectionIndex("toEPRs")
+	int toEPRSelectionIndex = 0;
+	   
+	@In(required=false) @Out(scope=SESSION)
+	private MessageFlow messageFlow;
+	
+	public void startSelection() {		
+	}
+
+	/*
+	 * Begin the select message flow pageflow conversation.
+	 */
+	@Create
+	@Begin(pageflow="selectMessageFlow", nested=true)
+	public void begin() {
+		messageFlow = new MessageFlow();
+		Contexts.getSessionContext().set(MessageFlow.class.getName(), "set");
+
+		fromEPRs = esbDatabase.createQuery("from EPR order by uri").list();
+		toEPRs = esbDatabase.createQuery("from EPR order by uri").list();
+	}
+
+	/**
+	 * Select the "from" {@link EPR} action listener method.
+	 */
+	public void selectFromEPR() {
+		EPR fromEPR;
+		
+		fromEPR = fromEPRs.get(fromEPRSelectionIndex);
+		messageFlow.setFromEPR(fromEPR);
+		
+		// Select the message contracts *produced* by the selected "from" EPR...
+		fromMessageTypes = esbDatabase.createQuery("from MessageContract where epr = :epr and usage = 'PRODUCES'")
+										.setParameter("epr", fromEPR.getUri())
+										.list();
+	}
+
+	/**
+	 * Select the "from" {@link MessageContract} action listener method.
+	 */
+	public void selectFromMessageType() {
+		messageFlow.setFromMessageType(fromMessageTypes.get(fromMessageTypeIndex));
+	}
+
+	/**
+	 * Select the "to" {@link EPR} action listener method.
+	 */
+	public void selectToEPR() {
+		EPR toEPR;
+		
+		toEPR = toEPRs.get(toEPRSelectionIndex);
+		messageFlow.setToEPR(toEPR);
+		
+		// Select the message contracts *consumed* by the selected "from" EPR...
+		toMessageTypes = esbDatabase.createQuery("from MessageContract where epr = :epr and usage = 'CONSUMES'")
+										.setParameter("epr", toEPR.getUri())
+										.list();
+	}
+
+	/**
+	 * Select the "to" {@link MessageContract} action listener method.
+	 */
+	public void selectToMessageType() {
+		messageFlow.setToMessageType(toMessageTypes.get(toMessageTypeIndex));
+	}
+
+	public void next() {		
+	}
+
+	@End
+	public void cancel() {
+		messageFlow = null;
+		Contexts.getSessionContext().set(MessageFlow.class.getName(), "notset");
+	}
+	
+	public boolean isFromEPRSelected() {
+		return (messageFlow.getFromEPR() != null);
+	}
+	
+	public boolean isToEPRSelected() {
+		return (messageFlow.getToEPR() != null);
+	}
+	
+	/**
+	 * Is the {@link MessageFlow} selected on the current session.
+	 * @return True if the {@link MessageFlow} is selected on the current session, otherwise false.
+	 */
+	public static boolean isMessageFlowSelected() {
+		String set = (String)Contexts.getSessionContext().get(MessageFlow.class.getName());
+		
+		return (set != null && set.equals("set"));
+	}
+}

Added: labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/TransformationConfigRejoin.java
===================================================================
--- labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/TransformationConfigRejoin.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/src/org/jboss/soa/esb/admin/console/transform/flow/TransformationConfigRejoin.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import static org.jboss.seam.ScopeType.EVENT;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * Action listener for rejoining whichever Transformation Configuration conversation
+ * was interupted by the Message Flow selection process.
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ at Name("transConfigRejoin")
+ at Scope(EVENT)
+public class TransformationConfigRejoin {
+
+	/**
+	 * Action listener method.
+	 * @return The view ID to rejoin.
+	 */
+	public String rejoin() {
+		// TODO: Find out how to rejoin the conversation that was interrupted in order to select the message flow. 
+		return "home";
+	}
+}

Added: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/MessageTypeTest.java
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/MessageTypeTest.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/MessageTypeTest.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console;
+
+import org.jboss.soa.esb.admin.console.contract.MessageContract;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MessageTypeTest extends TestCase {
+
+	public void test_toString() {
+		MessageContract messageType = new MessageContract("text/xml", "org.jboss.XService#getSomething", "http://org.jboss/XService/get-something.xsd");
+		
+		assertEquals("text/xml:org.jboss.XService#getSomething:http://org.jboss/XService/get-something.xsd", messageType.toString());
+		
+		messageType.setMessageDescription(null);
+		assertEquals("text/xml:org.jboss.XService#getSomething", messageType.toString());
+		
+		messageType.setNamespace(null);
+		assertEquals("text/xml", messageType.toString());
+	}
+}

Added: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksResourceListConverterTest.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.milyn.io.StreamUtils;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class SmooksResourceListConverterTest extends TestCase {
+
+	/*
+	 * Test method for 'org.jboss.soa.esb.admin.console.transform.SmooksResourceListConverter.getAsString(FacesContext, UIComponent, Object)'
+	 */
+	public void test_getAsString() throws IOException {
+		SmooksResourceListConverter converter = new SmooksResourceListConverter();
+		List<TransformationResource> transList = new ArrayList<TransformationResource>();
+		TransformationResource res = new TransformationResource();
+		
+		res.setNamespace("ns");
+		res.setPath("path");
+		res.setSelector("selector");
+		res.setUseragent("ua");
+		res.setParameters(new TransformationResourceParameter[] {new TransformationResourceParameter("name", "value")});
+		transList.add(res);
+		transList.add(res);
+	
+		String expected = new String(StreamUtils.readStream(getClass().getResourceAsStream("expected-1.txt")));
+		assertEquals(expected, converter.getAsString(null, null, transList));
+	}
+	
+	
+}

Added: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksUtilsTest.java
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksUtilsTest.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/SmooksUtilsTest.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,118 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.soa.esb.admin.console.EPR;
+import org.jboss.soa.esb.admin.console.contract.MessageContract;
+import org.jboss.soa.esb.admin.console.transform.flow.MessageFlow;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class SmooksUtilsTest extends TestCase {
+
+	/*
+	 * Test method for 'org.jboss.soa.esb.admin.console.transform.SmooksUtils.getMessageFlowConfigs(MessageFlow, List<TransformationResource>)'
+	 */
+	public void test_getMessageFlowConfigs() {
+		MessageFlow flow = new MessageFlow();
+		List<TransformationResource> allResources = new ArrayList<TransformationResource>();
+		List<TransformationResource> flowResources;
+		TransformationResource resource;
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "A");
+		resource.setSelector("header");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "A AND " + MessageFlow.TO_EPR + "B");
+		resource.setSelector("header");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent("*");
+		resource.setSelector("header");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "B");
+		resource.setSelector("body");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "B AND " + MessageFlow.TO_TYPE + "text/xml");
+		resource.setSelector("body");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "B AND " + "not:" + MessageFlow.FROM_TYPE + "text/xml");
+		resource.setSelector("body");
+		allResources.add(resource);
+		
+		resource = new TransformationResource();
+		resource.setUseragent(MessageFlow.FROM_EPR + "C");
+		resource.setSelector("legs");
+		allResources.add(resource);
+
+		// Set the flow and run some tests...
+		flow.setFromEPR(new EPR("A"));
+		flowResources = SmooksUtils.getMessageFlowConfigs(flow, allResources);
+		assertEquals(2, flowResources.size());
+		assertEquals(allResources.get(0), flowResources.get(0)); // 1st
+		assertEquals(allResources.get(2), flowResources.get(1)); // 3rd - useragent="*"
+
+		// Change the flow and run some more tests...
+		flow.setFromEPR(new EPR("A"));
+		flow.setToEPR(new EPR("B"));
+		flowResources = SmooksUtils.getMessageFlowConfigs(flow, allResources);
+		assertEquals(3, flowResources.size());
+		assertEquals(allResources.get(1), flowResources.get(0)); // 2nd - useragent expression is more specific
+		assertEquals(allResources.get(0), flowResources.get(1)); // 1st
+		assertEquals(allResources.get(2), flowResources.get(2)); // 3rd - useragent="*"
+
+		flow.reset();
+		
+		// Change the flow and run some more tests...
+		flow.setFromEPR(new EPR("B"));
+		flow.setFromMessageType(new MessageContract("text/xml", null, null));
+		flowResources = SmooksUtils.getMessageFlowConfigs(flow, allResources);
+		assertEquals(2, flowResources.size());
+		assertEquals(allResources.get(3), flowResources.get(0)); // 4th
+		assertEquals(allResources.get(2), flowResources.get(1)); // 3rd - useragent="*"
+
+		// Change the flow and run some more tests...
+		flow.setFromEPR(new EPR("B"));
+		flow.setFromMessageType(new MessageContract("text/xml", null, null));
+		flow.setToMessageType(new MessageContract("text/xml", null, null));
+		flowResources = SmooksUtils.getMessageFlowConfigs(flow, allResources);
+		assertEquals(3, flowResources.size());
+		assertEquals(allResources.get(4), flowResources.get(0)); // 5th
+		assertEquals(allResources.get(3), flowResources.get(1)); // 4th
+		assertEquals(allResources.get(2), flowResources.get(2)); // 3rd - useragent="*"
+	}
+}

Added: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/expected-1.txt
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/expected-1.txt	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/expected-1.txt	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,7 @@
+
+	<smooks-resource selector="selector" useragent="ua" namespace="ns" path="path" >
+		<param name="name"><![CDATA[value]]></param>
+	</smooks-resource>
+	<smooks-resource selector="selector" useragent="ua" namespace="ns" path="path" >
+		<param name="name"><![CDATA[value]]></param>
+	</smooks-resource>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/flow/MessageContractTest.java
===================================================================
--- labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/flow/MessageContractTest.java	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/test/src/org/jboss/soa/esb/admin/console/transform/flow/MessageContractTest.java	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.admin.console.transform.flow;
+
+import org.jboss.soa.esb.admin.console.EPR;
+import org.jboss.soa.esb.admin.console.contract.MessageContract;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MessageContractTest extends TestCase {
+
+	public void test_getFlowUseragentString_and_getFlowUseragentStringAsHtml_getFlowAsHtml() {
+		MessageFlow flow = new MessageFlow();
+		
+		flow.setFromEPR(new EPR("jms://x.y"));
+		flow.setFromMessageType(new MessageContract("text/xml", null, null));
+		flow.setToEPR(new EPR("file://x.y"));
+		flow.setToMessageType(new MessageContract("text/xml", null, null));
+		
+		assertEquals("from-type:text/xml AND from-epr:jms://x.y AND to-type:text/xml AND to-epr:file://x.y", flow.getFlowUseragentString());
+		assertEquals("<b>from-type:</b>text/xml<br/>AND<br/><b>from-epr:</b>jms://x.y<br/>AND<br/><b>to-type:</b>text/xml<br/>AND<br/><b>to-epr:</b>file://x.y", flow.getFlowUseragentStringAsHtml());
+		assertEquals("<b>from-type:</b> text/xml<br/><b>from-epr:</b> jms://x.y<br/><b>to-type:</b> text/xml<br/><b>to-epr:</b> file://x.y", flow.getFlowAsHtml());
+
+		flow.setToEPR(null);
+		assertEquals("from-type:text/xml AND from-epr:jms://x.y AND to-type:text/xml", flow.getFlowUseragentString());
+		assertEquals("<b>from-type:</b>text/xml<br/>AND<br/><b>from-epr:</b>jms://x.y<br/>AND<br/><b>to-type:</b>text/xml<br/>AND<br/><b>to-epr:</b>*", flow.getFlowUseragentStringAsHtml());
+		assertEquals("<b>from-type:</b> text/xml<br/><b>from-epr:</b> jms://x.y<br/><b>to-type:</b> text/xml<br/><b>to-epr:</b> *", flow.getFlowAsHtml());
+
+		flow.setToMessageType(null);
+		assertEquals("from-type:text/xml AND from-epr:jms://x.y", flow.getFlowUseragentString());
+		assertEquals("<b>from-type:</b>text/xml<br/>AND<br/><b>from-epr:</b>jms://x.y<br/>AND<br/><b>to-type:</b>*<br/>AND<br/><b>to-epr:</b>*", flow.getFlowUseragentStringAsHtml());
+		assertEquals("<b>from-type:</b> text/xml<br/><b>from-epr:</b> jms://x.y<br/><b>to-type:</b> *<br/><b>to-epr:</b> *", flow.getFlowAsHtml());
+		
+		flow.setFromEPR(null);
+		assertEquals("from-type:text/xml", flow.getFlowUseragentString());
+		assertEquals("<b>from-type:</b>text/xml<br/>AND<br/><b>from-epr:</b>*<br/>AND<br/><b>to-type:</b>*<br/>AND<br/><b>to-epr:</b>*", flow.getFlowUseragentStringAsHtml());
+		assertEquals("<b>from-type:</b> text/xml<br/><b>from-epr:</b> *<br/><b>to-type:</b> *<br/><b>to-epr:</b> *", flow.getFlowAsHtml());
+
+		flow.setFromMessageType(null);
+		assertEquals("*", flow.getFlowUseragentString());
+		assertEquals("All Messages", flow.getFlowUseragentStringAsHtml());
+	}
+}

Added: labs/jbossesb/trunk/product/console/view/contract/list-message-contracts.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/contract/list-message-contracts.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/contract/list-message-contracts.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,61 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<div class="section">
+	<fieldset>
+		<h:form>			
+			<h2>Manage Message Contracts</h2>
+			<div class="section">
+				This wizard lists all defined Message Contracts.
+			</div>
+			<div class="section">
+		    <h:outputText value="There are no Message Contracts configured!" rendered="#{contracts != null and contracts.rowCount==0}"/>
+		    <h:dataTable value="#{contracts}" var="contractSelection" rendered="#{contracts.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header">EPR</f:facet>
+				    #{contractSelection.epr}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Namespace</f:facet>
+				    #{contractSelection.namespace}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Usage</f:facet>
+				    #{contractSelection.usage}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">MIME Type</f:facet>
+				    #{contractSelection.mime}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Description</f:facet>
+				    #{contractSelection.messageDescription}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Manage</f:facet>
+				    <h:commandLink action="#{manageContracts.deleteContract}">Delete</h:commandLink>
+		        </h:column>
+		    </h:dataTable>
+			</div>
+		</h:form>
+		<h:form>			
+			<div class="section">
+				<s:link action="#{manageContracts.close}" value="Done" linkStyle="button" buttonClass="button" />
+			</div>	
+		</h:form>
+	</fieldset>
+</div>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/contract/new-message-contract.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/contract/new-message-contract.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/contract/new-message-contract.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,91 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>			
+		<div class="section">
+			<h2>Configure New Message Contract</h2>
+		</div>
+		<div class="section">
+			This form allows you to create a new "Message Contract".  A Message Contract defines a message with respect to the 
+			Endpoint Reference (EPR) that PRODUCES or CONSUMES the message, as well as the type of data contained in the
+			message payload.
+		</div>
+		<s:validateAll>
+			<div class="section">
+				<div class="entry">
+					<div class="label"><h:outputLabel for="EPR">Service EPR:</h:outputLabel></div>
+					<div class="input">
+						<h:inputText id="EPR" value="#{contract.epr}" size="50" required="true" />
+						<br/><span class="errors"><h:message for="EPR" /></span>
+					</div>
+				</div>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Namespace">Message Namespace (e.g. SOAP Action):</h:outputLabel></div>
+					<div class="input">
+						<h:inputText id="Namespace" value="#{contract.namespace}" size="50" required="true" />
+						<br/><span class="errors"><h:message for="Namespace" /></span>
+					</div>
+				</div>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Usage">Message Usage:</h:outputLabel></div>
+					<div class="input">
+						<h:selectOneListbox id="Usage" value="#{contract.usage}" required="true">
+							<f:selectItem itemLabel="PRODUCES" itemValue="PRODUCES"/>
+							<f:selectItem itemLabel="CONSUMES" itemValue="CONSUMES"/>
+						</h:selectOneListbox>
+						<br/><span class="errors"><h:message for="Usage" /></span>
+					</div>
+				</div>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Mime">Message Mime (e.g. text/xml):</h:outputLabel></div>
+					<div class="input">
+						<h:inputText id="Mime" value="#{contract.mime}" size="30" required="true" />
+						<br/><span class="errors"><h:message for="Mime" /></span>
+					</div>
+				</div>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Description">Message Description (dtd/xsd reference):</h:outputLabel></div>
+					<div class="input">
+						<h:inputText id="Description" value="#{contract.messageDescription}" size="50"/>
+						<br/><span class="errors"><h:message for="Description" /></span>
+					</div>
+				</div>
+
+				<div class="entry errors"><h:messages globalOnly="true"/></div>
+				
+				<div class="entry">
+					<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+					<div class="input">
+						<h:commandButton value="Save" action="#{newContract.save}" class="button"/>
+					</div>
+				</div>
+			</div>
+		</s:validateAll>
+	</h:form>
+	<h:form>
+		<div class="section">
+			<div class="entry">
+				<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+				<div class="input">
+					<h:commandButton value="Cancel" action="#{newContract.cancel}" class="button"/>
+				</div>
+			</div>		
+		</div>
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Create Transformation/Analysis Configuration</h1>
+	Create a message transformation/analysis configuration for the chosen Message Flow.
+	<p/>
+</ui:define>
+
+</ui:composition>

Added: labs/jbossesb/trunk/product/console/view/contract/template.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/contract/template.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/contract/template.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+	  xmlns:s="http://jboss.com/products/seam/taglib"
+      xmlns:f="http://java.sun.com/jsf/core"
+	  xmlns:h="http://java.sun.com/jsf/html">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<title>JBoss ESB: Administration Console</title>
+	<link href="../css/screen.css" rel="stylesheet" type="text/css" />
+	<link rel="stylesheet" href="../css/custom.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/global.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/headings.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/layout.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/navigation.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/pagelayout.css" type="text/css" media="all"/>
+	<link rel="stylesheet" href="../css/tables.css" type="text/css" media="all" />
+	
+	<link rel="stylesheet" href="../css/screen_001.css" type="text/css" media="screen" />
+	<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+	<link rel="stylesheet" href="../css/common.css" type="text/css" media="all" />
+</head>
+<body>
+
+<div id="document">
+	<div id="header">
+		<div>
+		  <a href="http://www.jboss.com"><img src="http://www.jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+		</div>
+		
+		<div id="TopMenu">
+		  <table cellpadding="0" cellspacing="0">
+		  <tr>
+		    <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+		    <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+		
+		    <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+		    <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+		  </tr>
+		  </table>
+		</div>	
+	</div>
+	<div id="container">
+		<div id="sidebar">
+			<b><h:outputLink value="../home.jsf"><f:verbatim>Home</f:verbatim></h:outputLink></b>
+			<p/>
+			<ui:insert name="sidebar"/>
+		</div>
+		<div id="content">
+			<ui:insert name="content"/>
+		</div>
+	</div>
+</div>
+<ui:debug hotkey="D"/>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/console/view/css/common.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/common.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/common.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,211 @@
+body { font: 11px Verdana, Arial, Helvetica, sans-serif; }
+
+a:link { color: #005EB6; text-decoration: none; }
+a:active { color: #666666; text-decoration: none; }
+a:visited { color: #005EB6/*#888888*/; text-decoration: none; }
+a:hover { }
+
+h1 { color: #000000; line-height: 22px; font: 20px Verdana, Arial, Helvetica, sans-serif; }
+h3 { color: #000000; line-height: 16px; font: bold 14px Verdana, Arial, Helvetica, sans-serif; margin-top: 8px; }
+h4 { color: #000000; line-height: 16px; font: 14px Verdana, Arial, Helvetica, sans-serif; margin-top: 8px; }
+h5 { color: #000000; line-height: 14px; font: 12px Verdana, Arial, Helvetica, sans-serif; margin-top: 8px; }
+
+strong { font-weight: bold; }
+em { font-style: italic; }
+
+p { line-height: 150%; }
+pre { font-family: Andale Mono, Courier New, Courier, monospace; }
+code { font: 11px Andale Mono, Courier New, Courier, monospace; line-height: 110%; white-space: pre; padding: 5px; margin: 5px; background-color: #efefef; width: 550px; overflow: visible; }
+
+hr { color: #6e6e6e; }
+
+dl {}
+dl dt { font-weight: bold; }
+dl dd { margin-top: 10px; margin-bottom: 20px; margin-left: 20px;}
+
+
+/* FOOTER ----------------------------------------------*/
+#PageFooter #Copyright { font: 9px Verdana, Helvetica, Arial, sans-serif;}
+#PageFooter a { color: #0044AA; }
+
+
+/* INFOTABLE ----------------------------------------------*/
+.infotable { border-spacing: 3px; text-align: left; color: #ffffff; }
+.infotable .grey{ background-color: #b2b2b2; }
+.infotable .blue { background-color: #b2b2b2; }
+.infotable .beige { background-color: #b2b2b2; }
+.infotable .orange { background-color: #b2b2b2; }
+.infotable .green { background-color: #b2b2b2; }
+.infotable .blank { color: #ffffff; background-color: #ffffff; }
+.infotable .headline { font-size: 110%; padding-left:5px; color:#000000; background-color: #cccccc; font-weight:bold;}
+.infotable .button { padding:3px; margin:0px; background-color: #777777; font: bold;}
+.infotable .button a { color: #ffffff; text-decoration: none; font: bold 10px Helvetica, Arial, sans-serif; }
+.infotable td { padding: 5px; background-color: #efefef; color: #000000; font: 11px Verdana, Arial, Helvetica, sans-serif; }
+.infotable th { padding: 5px; background-color: #efefef; color: white; font: bold 13px Verdana, Arial, Helvetica, sans-serif; }
+
+table.infotable2 {}
+table.infotable2 td { padding: 10px 10px 10px 10px; background-color: #eaeaea; border-top: solid 1px #777777; line-height: 150% }
+table.infotable2 td:first-child { padding-top: 15px; padding-right: 20px; background-color: transparent; }
+table.infotable2 p { padding: 10px; }
+table.infotable2 p:first-child { padding-top: 0px; }
+table.infotable2 table {border-bottom: none;}
+table.infotable2 table td, table.infotable2 table td:first-child { padding: 5px; background-color: transparent; border: none; line-height: 100% }
+table.infotable2 table p, table.infotable2 table p:first-child { padding: 0px; }
+table.infotable2 h2 {margin: 0px;}
+
+/* PARTNERTABLE ----------------------------------------------*/
+.partnertable { border-spacing: 2px; border-color:#FFFFFF; text-align: left; color: #ffffff; }
+.partnertable .grey{ background-color: #b2b2b2;}
+.partnertable .blue { background-color: #b2b2b2; }
+.partnertable .beige { background-color: #b2b2b2; }
+.partnertable .orange { background-color: #b2b2b2; }
+.partnertable .green { background-color: #b2b2b2; }
+.partnertable .blank { color: #ffffff; background-color: #ffffff; }
+.partnertable .headline { font-size: 110%; padding-left:5px; color:#000000; background-color: #cccccc; font-weight:bold;}
+.partnertable .button { padding:3px; margin:0px; background-color: #777777; font: bold;}
+.partnertable .button a { color: #ffffff; text-decoration: none; font: bold 10px Helvetica, Arial, sans-serif; }
+.partnertable td { padding: 5px; background-color: #efefef; color: #000000; font: 11px Verdana, Arial, Helvetica, sans-serif; }
+.partnertable th { padding: 5px; background-color: #efefef; color: white; font: bold 13px Verdana, Arial, Helvetica, sans-serif; }
+
+
+.partnertable .partnerblue {color: #05229E}
+.partnertable .partnerred {color: #54110B}
+.partnertable .partnerorange {color: #98400C}
+.partnertable .partnergreen {color: #353925}
+.partnertable .partnerlavender {color: #936883}
+.partnertable .partnerpurple {color: #5C5675}
+
+
+
+table.partnertable2 {}
+table.partnertable2 td { padding: 10px 10px 10px 10px; background-color: #eaeaea; border-top: solid 1px #777777; line-height: 150% }
+table.partnertable2 td:first-child { padding-top: 15px; padding-right: 20px; background-color: transparent; }
+table.partnertable2 p { padding: 10px; }
+table.partnertable2 p:first-child { padding-top: 0px; }
+table.partnertable2 table {border-bottom: none;}
+table.partnertable2 table td, table.infotable2 table td:first-child { padding: 5px; background-color: transparent; border: none; line-height: 100% }
+table.partnertable2 table p, table.infotable2 table p:first-child { padding: 0px; }
+table.partnertable2 h2 {margin: 0px;}
+
+
+/* PARTNERLISTING ----------------------------------------------*/
+.partnerlist { border-spacing: 2px; border-color:#FFFFFF; text-align: left; color: #ffffff; }
+.partnerlist .grey{ background-color: #b2b2b2; }
+.partnerlist .blue { background-color: #b2b2b2; }
+.partnerlist .beige { background-color: #b2b2b2; }
+.partnerlist .orange { background-color: #b2b2b2; }
+.partnerlist .green { background-color: #b2b2b2; }
+.partnerlist .blank { color: #ffffff; background-color: #ffffff; }
+.partnerlist .headline { font-size: 110%; padding-left:5px; color:#000000; background-color: #cccccc; font-weight:bold;}
+.partnerlist .button { padding:3px; margin:0px; background-color: #777777; font: bold;}
+.partnerlist .button a { color: #ffffff; text-decoration: none; font: bold 10px Verdana, Arial, Helvetica, sans-serif; }
+.partnerlist td { padding: 5px; background-color: #ffffff; color: #000000; font: 11px Verdana, Arial, Helvetica, sans-serif; }
+.partnerlist th { padding: 5px; background-color: #efefef; color: white; font: bold 13px Verdana, Arial, Helvetica, sans-serif; }
+
+
+/* NEWSTABLE ----------------------------------------------*/
+.newstable { border-spacing: 3px; text-align: left; background-image: url(../img/gradient_news_bkgd_650.gif); background-repeat:no-repeat; }
+.newstable .grey{ background-color: #b2b2b2; }
+.newstable .blue { background-color: #b2b2b2; }
+.newstable .beige { background-color: #b2b2b2; }
+.newstable .orange { background-color: #b2b2b2; }
+.newstable .green { background-color: #b2b2b2; }
+.newstable .blank { color: #ffffff; background-color: #ffffff; }
+.newstable .headline { font-size: 110%; padding-left:5px; color:#000000; background-color: #cccccc; font-weight:bold;}
+.newstable .button { padding:3px; margin:0px; background-color: #777777; font: bold;}
+.newstable .button a { color: #ffffff; text-decoration: none; font: bold 10px Verdana, Arial, Helvetica, sans-serif; }
+.newstable td { padding: 5px;  font: 11px Verdana, Arial, Helvetica, sans-serif; }
+.newstable th { padding: 5px; color: black; font: bold 14px Verdana, Arial, Helvetica, sans-serif; }
+
+table.newstable2 {}
+table.newstable2 td { padding: 10px 10px 10px 10px; background-color: #eaeaea; border-top: solid 1px #777777; line-height: 150% }
+table.newstable2 td:first-child { padding-top: 15px; padding-right: 20px; background-color: transparent; }
+table.newstable2 p { padding: 10px; }
+table.newstable2 p:first-child { padding-top: 0px; }
+table.newstable2 table {border-bottom: none;}
+table.newstable2 table td, table.infotable2 table td:first-child { padding: 5px; background-color: transparent; border: none; line-height: 100% }
+table.newstable2 table p, table.infotable2 table p:first-child { padding: 0px; }
+table.newstable2 h2 {margin: 0px;}
+
+
+
+
+/* DEFINITION TABLE ---------------------------------------*/
+.deftable { border-spacing: 5px; text-align: left; color: #ffffff; line-height: 150%; }
+.deftable .term { border: none; vertical-align: top; padding: 5px; background-color: #aaaaaa; color: #ffffff; font-weight: bold; }
+.deftable .def { border: none; vertical-align: top; padding: 5px; background-color: #efefef; color: #000000; }
+.deftable .def ul { margin-left: 1em; padding-left: 0px; margin-top: 0px; margin-bottom: 0px;}
+.deftable .def ol { margin-top: 0px; margin-bottom: 0px; }
+
+
+/* QUICKSTART BOX -----------------------------------------*/
+.quickstart-box { float: right; text-align: left; padding: 0px 0px 0px 0px; margin: 0px -9px 20px 20px; position: relative; }
+.quickstart-box td { font-family: Helvetica, Arial, sans-serif; }
+.quickstart-box a { color: #ffffff; font-size: 11px; text-decoration: none; }
+.quickstart-box a:active { color: #ffffff; font-size: 11px; text-decoration: none; }
+.quickstart-box a:visited { color: #ffffff; font-size: 11px; text-decoration: none; }
+.quickstart-head { font-weight: bold; font-size: 12px; margin-bottom: 4px; }
+.quickstart-red { color: #ffffff; font-weight: bold; border-bottom: 1px solid #ffffff; padding: 3px; padding-left: 15px; background: #EB1A24 url(../img/crn_left_bot_red.gif) 0 100% no-repeat; }
+.quickstart-blue { color: #ffffff; font-weight: bold; border-bottom: 1px solid #ffffff; padding: 3px; padding-left: 15px; background: #008FD6 url(../img/crn_left_bot_blue.gif) 0 100% no-repeat; }
+.quickstart-green { color: #ffffff; font-weight: bold; border-bottom: 1px solid #ffffff; padding: 3px; padding-left: 15px; background: #9BCD4B url(../img/crn_left_bot_green.gif) 0 100% no-repeat; }
+.quickstart-yellow { color: #ffffff; font-weight: bold; border-bottom: 1px solid #ffffff; padding: 3px; padding-left: 15px; background: #E5B335 url(../img/crn_left_bot_yellow.gif) 0 100% no-repeat; }
+
+
+/* Customizations */
+
+img.topaccent { margin-left: 10px; margin-bottom: 10px;}
+
+table.customermatrix {}
+table.customermatrix td { padding: 10px 10px 0px 10px; background-color: whitesmoke; border-top: solid 1px #666666; border-top: solid 1px #777777; }
+table.customermatrix td:first-child { padding-top: 25px; padding-right: 20px; background-color: transparent; }
+table.customermatrix p { padding: 10px; }
+table.customermatrix p:first-child { padding-top: 0px; }
+
+dl.faq { }
+dl.faq dt { font-weight: bold; font-size: 12px; color: #333333; border-bottom: 1px solid #9BCD4B; padding-bottom: 2px; padding-top: 20px;}
+dl.faq dd { margin: 10px 10px 10px 10px;}
+dl.faq dt:first-child { border-top: none; padding-top: 0px;}
+
+#points{
+background-image: url(/images/points.gif);
+background-repeat:no-repeat;
+color: #000000; 
+font:10px Verdana, Arial, Helvetica, sans-serif; 
+height: 118px;
+width: 200px;
+text-align: left; 
+padding: 5px 0px 5px 5px; 
+}
+
+#points .text{
+color: #000000; 
+font:10px Verdana, Arial, Helvetica, sans-serif; 
+}
+
+
+/* NUTCH --------------------------------------------------*/
+.menuTd {background-color: #F9F7F4; height: 25px; } /*#ECE5DC*/
+.menuTdhover {background-color: #ECE5DC; height: 25px; }
+.menuEntry { font: 12px Arial, Helvetica, sans-serif; color: #000000; text-decoration: none; }
+.body {background-color: #F9F7F4; }
+.bodytext { font: 12px Arial, Helvetica, sans-serif; color: #000000; text-decoration: none; }
+.title { font: 26px Arial, Helvetica, sans-serif; color: #FF9900; text-decoration: none; }
+.intro { font: 12px Arial, Helvetica, sans-serif; color: #FF9900; text-decoration: none; }
+.orangeTd { background-color: #FF9900; }
+ul { list-style-image: url(../img/reiter/ul.gif); }
+h4 { font: 14px Verdana, Arial, Helvetica, sans-serif; color: #000000; }
+.url { color: #996600; }
+
+
+
+/* these need to go away */
+.quote { line-height: 150%; margin-left: 25px; }
+.code { font-size: 90%; line-height: 110%; white-space: pre; padding: 5px; margin: 5px; background-color: #efefef; width: 550px; overflow: visible; font-family: Andale Mono, Courier New, Courier, monospace; }
+.pre { font-family: Andale Mono, Courier New, Courier, monospace; }
+.bold { font-weight: bold; }
+.italic { font-style: italic; }
+.fixed { font-size: 95%; font-family: Andale Mono, Courier New, Courier, monospace; }
+.ulist { font-family: Helvetica, Arial, sans-serif; }
+.ulist li { margin-left: -1em; list-style: none; line-height: 150%; }
+.olist { font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 150%; }
+.olist li { line-height: 150%; }

Added: labs/jbossesb/trunk/product/console/view/css/custom.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/custom.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/custom.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,1761 @@
+/************************************************************** HOME PAGE */
+
+#contentWrapHome {
+	margin: 15px 0 10px 0;
+	padding: 0;
+	}
+	
+#contentWrapHome:after {
+    content: "."; 
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #contentWrapHome {height: 1%;}
+    /* End Holly Hack */
+    
+#contentHome {
+	width: 100%;
+	margin-top: 7px;
+	}
+	
+#contentHome:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #promoHome {height: 1%;}
+    /* End Holly Hack */
+ 	
+#promoHome {
+	margin-bottom: 8px;
+	}
+	
+#promoHome .img2a {
+	float: left;
+	}
+	
+#promoHome .img2b {
+	float: right;
+	}
+
+#promoHome .img3a {
+	float: left;
+	margin-right: 15px;
+	}
+	
+#promoHome .img3b {
+	float: left;
+	}
+	
+#promoHome .img3c {
+	float: right;
+	}
+	
+#promoHome:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #promoHome {height: 1%;}
+    /* End Holly Hack */
+    
+#homeNews {
+	text-align: center;
+	font-size: x-small;
+	padding: 7px 0 12px 0;
+	}
+	
+#homeNews a {
+	text-decoration: none;
+	}
+    
+#contentHomeMain {
+	width: 360px;
+	float: left;
+	}
+	
+#contentHomeMain a {
+	text-decoration: none;
+	}
+    
+.contentHomeMainBox {
+ 	background: url(/images/rh/corner_homelinebox_top.png) top right no-repeat;
+ 	width: 100%;
+ 	padding-top: 7px;
+ 	margin-bottom: 15px;
+	}
+	
+.contentHomeMainBoxInner {
+ 	background: url(/images/rh/corner_homelinebox_bottom.png) bottom left no-repeat;
+ 	padding-bottom: 7px;
+ 	}
+ 	
+.contentHomeMainBoxBody {
+ 	padding: 7px 14px;
+ 	border-left: 1px solid #b4b4b4;
+ 	border-right: 1px solid #b4b4b4;
+ 	}
+ 	
+ .contentHomeMainBoxBody p,
+ .contentHomeMainBoxBody ul {
+ 	margin: 0;
+ 	padding: 0;
+ 	}
+	
+ul#homeServicesList {
+	width: 150px;
+	float: left;
+	padding: 7px 0;
+	margin: 0;
+	list-style-type: none;
+	}
+	
+ul#homeServicesList li {
+	margin: 3px 0 13px 0;
+	}
+	
+ul#homeServicesList li a {
+	display: block;
+	}
+	
+ul#homeServicesList li#rhel a {
+	background: url(/images/rh/listitem_rhelhomepage.png) 0 0 no-repeat;
+	width: 141px;
+	height: 25px;
+	}
+	
+ul#homeServicesList li#rhel a span {
+	display: none;
+	}
+	
+ul#homeServicesList li#rhn a {
+	background: url(/images/rh/listitem_rhnhomepage.png) 0 0 no-repeat;
+	width: 90px;
+	height: 25px;
+	}
+	
+ul#homeServicesList li#rhn a span {
+	display: none;
+	}
+	
+ul#homeServicesList li#rhas a {
+	background: url(/images/rh/listitem_rhashomepage.png) 0 0 no-repeat;
+	width: 155px;
+	height: 25px;
+	}
+	
+ul#homeServicesList li#rhas a span {
+	display: none;
+	}
+	
+ul#homeServicesList li#rhgfs a {
+	background: url(/images/rh/listitem_rhgfshomepage.png) 0 0 no-repeat;
+	width: 155px;
+	height: 25px;
+	}
+	
+ul#homeServicesList li#rhgfs a span {
+	display: none;
+	}
+	
+ul#homeServicesList li#rhgcs a {
+	background: url(/images/rh/listitem_rhgcs.png) 0 0 no-repeat;
+	width: 132px;
+	height: 25px;
+	}
+	
+ul#homeServicesList li#rhgcs a span {
+	display: none;
+	}
+	
+#contentHomeSolutions {
+	margin-left: 168px;
+	}
+	
+ul.bigArrowList {
+	list-style: none;
+	padding-left: 0;
+	margin-left: 0;
+	}
+	
+ul.bigArrowList li {
+	background-image: url(/images/rh/bullet_bluearrow_dot.png);
+	background-repeat: no-repeat;
+	background-position: 0px 3px;
+	padding: 0px 0px 2px 18px;
+	}
+	
+.contentHomeNewsCol ul.bigArrowList {
+	margin-top: 1.5em;
+	}
+	
+.contentHomeNewsCol ul.bigArrowList li {
+	background-image: url(/images/rh/bullet_bluearrow_dot.png);
+	background-repeat: no-repeat;
+	background-position: 0 0;
+	padding: 1px 0 1px 18px;
+	}
+	
+ul.bigArrowList li a {
+	text-decoration: none;
+	font-weight: bold;
+	}
+	
+#headosaHomepg {
+	background-image: url(/images/rh/head_osahomepage.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 0;
+	height: 12px;
+	}
+	
+#headrated1Homepg {
+	background-image: url(/images/rh/head_rated1homepage.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 0;
+	height: 13px;
+	}
+	
+#headsubsHomepg {
+	background-image: url(/images/rh/head_subshomepage.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 0;
+	height: 15px;
+	}
+	
+h1#headosaHomepg span {
+	display: none;
+	}
+	
+h1#headrated1Homepg span {
+	display: none;
+	}
+	
+h2#headsubsHomepg span {
+	display: none;
+	}
+	
+#contentHomeMain h2 {
+	font-size: 1em;
+	padding-top: .3em;
+	}
+	
+#contentHomeNews {
+	float: left;
+	width: 360px;
+	}
+	
+.contentHomeNewsCol {
+	width: 165px;
+	padding: 0;
+	margin-left: 15px;
+	float: left;
+	font-size: smaller;
+	}
+	
+.contentHomeNews2Col {
+	clear: left;
+	}
+	
+    /* Holly Hack Targets IE Win only \*/
+    * html .contentHomeNews2Col {margin-left: -15px;}
+    /* End Holly Hack */
+	
+#contentHomeNews h2 {
+	font-size: 10px;
+	padding-bottom: 0;
+	margin-bottom: 0;
+	}
+	
+.contentHomeNewsCol p {
+	margin-bottom: 1.5em;
+	line-height: 1.6em;
+	}
+	
+.contentHomeNewsCol a {
+	text-decoration: none;
+	}
+	
+/************************************************************** RH ENTERPRISE LINUX PAGES */
+
+.successByline{
+	font-size: small;
+	color: #999;
+	}
+
+.successQuote {
+	color: #999;
+	font-size: small;
+    font-weight: bold;
+	}
+
+/* 2 col even lists  */
+ul.doubleList {
+	padding-left: 75px;
+	}
+ul.doubleListTwo {
+	padding-right: 50px;	
+	}
+
+/* img align and padding for success stories /solutions/info/casestudies/ */
+
+.ssCol1 {
+	float: left;
+	margin: 0 15px 0 0;
+	}
+.ssCol2 {
+	float: left;
+	margin: 0 30px 0 0;
+	}
+.ssCol3 {
+	}
+.ssCol3:after {
+    content: "."; 
+    display: block; 
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .ssCol3 {height: 1%;}
+    /* End Holly Hack */
+
+
+img.storyPic {
+	float: left;
+	text-align: left;
+	padding-right: 15px;
+	padding-bottom: 30px;
+	}
+
+.storyTitleBlock {
+	margin-bottom: 10px;
+	overflow: auto;
+	}
+
+	
+
+/************************************************************** STORE PAGES */
+
+
+/*-- Store Index Page --*/
+
+#productMain {
+	margin-left: 15px;
+	}
+
+.productCatagory {
+	border-bottom: 1px solid #ccc;
+	text-align: right;
+	margin-bottom: 7px;
+	padding-top: 2px;
+	}
+	
+.productCatagory:after {
+    content: "."; 
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+	}
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .productCatagory {height: 1%;}
+    /* End Holly Hack */
+	
+.productCatagory h2 {
+	float:left;
+	}
+	  
+.productRow {
+	text-align: right;
+	padding-bottom: 10px;
+	padding-right: 15px;
+	}
+	
+.productRow strong, .productRow h3 { 
+	float: left;  
+	}
+	
+#steps {
+	margin:0 0 5px 0; padding: 0;
+	}
+	
+#steps ol {
+	font-size: x-small;
+	color: #999;
+	text-align:right;
+	margin:0; padding:0;
+	}
+	
+#steps li {
+	display: inline;
+	padding-left: 6px;
+	}
+	
+#steps ol li a:link, #steps ol li a:visited, #steps ol li a:active {
+	color: #999;
+	font-size: inherit; 
+	text-decoration: none;
+	}
+	
+#steps ol li a:hover {
+	font-size: inherit;
+	color: #666;
+	}
+	
+#steps span {
+	color: #C00;
+	font-weight: bold;
+	}
+	
+/* Store heading */
+	
+h1#storeTitle {
+	background-image: url(/images/rh/title_store_home.png);
+	background-repeat: no-repeat;
+	height: 30px;
+	margin: 0;
+	padding: 0;
+	width: 200px;
+	float: left;
+	}
+	
+h1#storeTitle span {
+	display: none;
+	}
+	
+#storeFront {
+	margin: 0 15px 15px 15px; 
+	}
+
+#storeContent {
+	margin-bottom: 10px;
+	}
+
+#storeHead {
+	margin: 0;
+	padding-bottom: 3px;
+	border-bottom: 1px solid #ccc;
+	margin-bottom: 5px;
+	}
+	
+#storeCart {
+	text-align: right;
+	}
+	
+#storeCart img {
+	padding-top: 5px;
+	}
+
+.editStore {
+	font-size: 12px;
+	font-weight: normal;
+	}
+
+.cccLine { 
+	border-bottom: 1px solid #ccc;
+	width: 690px;
+	margin: 1px 0; padding:0;
+	}
+	
+.storeBlock {
+	padding: 12px 0 3px 33px; font-size: 11px;
+	border-bottom: 1px solid #CCC;
+	}
+	
+/**** New Window ****/
+	
+#open_window {
+	background-image: none;
+	margin: 15px 0 0 15px;
+	text-align: left;
+	width: 550px;  }
+	
+#open_window_header {
+	background: url(/images/rh/logo_rh_home.png) left top no-repeat;
+	text-align: right;
+	padding-top: 10px;
+	height: 30px;
+	font: 10px Verdana, Arial, Helvetica, sans-serif;
+	color: #999999; }
+
+input.buyRed {
+	border: 1px solid #000;
+	background: #b70000;
+	padding: 0 12px; 
+	color: #FFF; 
+	}
+	
+a.inputButton, a.inputButton:hover, a.inputButton:visited, a.inputButton:active {
+	color:#333;
+	font-size:small;
+	padding: 1px 8px;
+	border: 1px solid #999;
+	text-decoration:none;
+	background-color:#f7f2d0;
+	}
+	
+.buyBlue a {
+	color:#00A7E4;
+	font-weight:bold;
+	font-size:small;
+	padding: 1px 3px;
+	border: 1px solid #00A7E4;
+	text-decoration:none;
+	background-color:#fff;
+	}
+	
+.buyBlue a:hover {
+	color:#fff;
+	background-color:#00A7E4;
+	}
+	
+.buyGreen a {
+	color:#a2bd1c;
+	font-weight:bold;
+	font-size:small;
+	padding: 0 2px;
+	border: 1px solid #a2bd1c;
+	text-decoration:none;
+	background-color:#fff;
+	}
+	
+.buyGreen a:hover {
+	color:#fff;
+	background-color:#a2bd1c;
+	}
+	
+.buyOrange a {
+	color:#faa614;
+	font-weight:bold;
+	font-size:small;
+	padding: 0 2px;
+	border: 1px solid #faa614;
+	text-decoration:none;
+	background-color:#fff;
+	}	
+	
+.buyOrange a:hover {
+	color:#fff;
+	background-color:#faa614;
+	}
+	
+.buyRed a {
+	color:#b70000;
+	font-weight:bold;
+	font-size:small;
+	padding: 0 2px;
+	border: 1px solid #b70000;
+	text-decoration:none;
+	background-color:#fff;
+	}
+	
+.buyRed a:hover {
+	color:#fff;
+	background-color:#b70000;
+	}
+
+.popUp	{
+	text-align: center;
+	margin: 5px 15px;
+	background-color:#fff;
+	padding: 10px;
+	width:350px;
+	}
+	
+.popUp2	{
+	text-align: center;
+	margin: 5px 15px;
+	background-color:#fff;
+	padding: 10px;
+	width:400px;
+	}
+	
+/************************************************************** SERVICE PAGES */
+
+/* AIM box styles for /services/aim.html and subpages */
+
+table.aim {
+	margin: 15px 0;
+	}
+	
+table.aim th {
+	text-align:center;
+	font-size: small;
+	}
+	
+/************************************************************** SOLUTIONS PAGES */	
+	
+div#imgOSA {
+	width: 550px;
+ 	}
+ 	
+.wrapOSA {
+	text-align: center;
+	vertical-align: top;
+	margin: 0 15px 15px 15px;
+	}
+	
+.wrapOSA img {
+	vertical-align: top;
+	}
+	
+.wrapOSA img.osaCenter {
+	margin: 0 30px;
+	}
+	
+
+/* SOLUTIONS PARTNER SPOTLIGHTS */
+
+#menuList li
+{
+display: inline;
+list-style-type: none;
+}
+
+#menuContainer
+{
+margin-bottom: 15px;
+width: 565px;
+}
+
+#menuContainer ul
+{
+list-style-type: none;
+text-align: right;
+padding: 0;
+position: relative;
+}
+
+#menuContainer li
+{
+display: inline;
+text-align: center;
+margin: 0 0 0 2px;
+}
+
+#menuContainer li a
+{
+padding: 0 2px;
+color: #666;
+background-color: #fff;
+border: 1px solid #ccc;
+text-decoration: none;
+text-transform: uppercase;
+font-size: x-small;
+}
+
+#menuContainer li a:hover
+{
+color: #000;
+border: 1px solid #666;
+border-top: 2px solid #666;
+border-bottom: 2px solid #666;
+}
+
+#menuContainer li a#current
+{
+color: #000;
+border: 1px solid #666;
+border-top: 2px solid #666;
+border-bottom: 2px solid #666;
+}
+
+.logoWrap {
+	margin-bottom: 30px;
+	width: 565px;
+	}
+	
+div.visit {
+	text-align: right;
+	margin-bottom: 0;
+	margin-top: -15px;
+	font-size: x-small;
+	text-decoration: none;
+ 	}
+ 	
+/* FOR NA SKU LIST */
+
+#sku td {
+	color:#000;
+	font-weight:normal;
+	font-size:small;
+	}
+	
+#sku td.main {
+	color:#666;
+	font-size:x-small;
+	font-weight: bold;
+	white-space:nowrap;
+	}
+	
+#sku th.cat {
+	font-size: large;
+	font-weight: bold;
+	color: #fff;
+	background-color:#900;
+	height:30px;
+	}
+	
+#sku td.sub1 {
+	color:#fff;
+	background-color:#999;
+	font-weight:bold;
+	font-size:medium;
+	height:25px;
+	}
+	
+
+#sku td.subcat1 {
+	color:#fff;
+	background-color:#999;
+	font-weight:bold;
+	font-size:small;
+	}
+	
+#sku td.sub2 {
+	color:#fff;
+	background-color:#333;
+	font-weight:bold;
+	font-size:medium;
+	height:25px;
+	}
+	
+#sku td.subcat2 {
+	color:#fff;
+	background-color:#333;
+	font-weight:bold;
+	font-size:small;
+	}
+	
+/* Choice landing page */
+
+h1#headchoice {
+	background-image: url(/g/choice_logo.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	height: 55px;
+	}
+
+	
+h1#headchoice span {
+	display: none;
+	}
+
+
+div#choice {
+	width: 720px;
+	margin: 25px 0;
+	background: #fff url(/images/rh/choice_back.gif) top center repeat-y;
+	border-bottom: 1px solid white;
+	}
+	
+div#choice:after {
+    content: "."; 
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #choice {height: 1%;}
+    /* End Holly Hack */
+	
+div#choice h2 {
+	text-align: right;
+	font-size: x-small;
+	color: #999;
+	margin: 0 0 1.5em 0;
+	}
+	
+div#choice p {
+	margin-top: 0;
+	line-height: 1.3em;
+	}
+	
+div#choice h3 {
+	margin-bottom: .25em;
+	font-size: x-small;
+	}
+	
+div#choice ul.plain {
+	margin: 0 0 1em 0;
+	padding-left: 10px;
+	list-style: none;
+	}
+	
+div#choice ul.plain li {
+	padding: 0.30em 0;
+	}
+
+div.choiceCol {
+	width: 160px;
+	float: left;
+	padding: 0 10px;
+	font-size: x-small;
+	}
+	
+/* Truth Happens page */
+
+.thenumbers {
+	margin-bottom: 1.5em;
+	margin-left: 15px;
+	font-family: verdana, sans-serif; 
+	font-size: 11px;
+	}
+	
+.thenumbers p {
+	margin: 0;
+	padding: 0;
+	}
+	
+.thefirst, .thesecond, .thethird, .thefourth, .thefifth, .thesixth {
+	vertical-align: bottom;
+	font-size: 9px; 
+	color: #b4b19a; 
+	font-weight: bold;
+	}
+	
+.thefirst {
+	width: 110px; 
+	}
+	
+.thesecond {
+	width: 95px; 
+	padding-left: 20px;
+	}
+	
+.thethird {
+	width: 80px; 
+	padding-left: 10px;
+	}
+	
+.thefourth {
+	width: 70px; 
+	padding-left: 20px;
+	}
+	
+.thefifth {
+	width: 80px; 
+	padding-left: 10px;
+	}
+	
+.thesixth {
+	width: 63px; 
+	padding-left: 10px;
+	}
+	
+.thenumbers p strong {
+	font-size: 2.3em; 
+	line-height: 1.2em;
+	}
+
+/* styles for direct renewals / contract tables */
+
+h2.contractsTab {
+        margin-top: 15px;
+        font-size: smaller;
+        background: #b4b19a url(../img/rh/table_corner_tr.gif) top right no-repeat;
+        padding-bottom: 0px;
+        padding-top: 3px;
+	margin-bottom: 0px;
+        }
+                                                                                                                                                                                        
+h2.contractsTab span    {
+        background: #b4b19a url(../img/rh/table_corner_tl.gif) top left no-repeat;
+        font-size: small;
+        color: #fff;
+        padding-left: 7px;
+        padding-top: 3px;
+	margin: 0px;
+	padding-bottom: 0px;
+	padding-right: 0px;
+        }
+                                                                                                                                                                                        
+p.contractsTabText       {
+        background-color: #b4b19a;
+        font-size: xx-small;
+        margin: 0px;
+        padding: 3px 0px 9px 9px;
+	border: 0px;
+        }
+
+.hedSummary {
+	color: #666;
+	font-weight: bolder;
+	padding-left: 15px;
+	line-height: 24px;
+	}
+
+/* styles for things in /promo/ */
+
+#greyCurveWrap {
+        background: #DEDEDE;
+        margin: 30px 0 0 0;
+        width: 720px;
+        height: auto;
+        }
+
+#greyCurveTop {
+        background: url(/g/landing/ibm_roadshow_top.gif) top left no-repeat;
+        height: 20px
+        width: 720px;
+        }
+
+#greyCurveBottom  {
+        background: url(/g/landing/ibm_roadshow_bottom.gif) bottom left no-repeat;
+	width: 720px;
+	height: 20px;
+        }
+
+#whiteLogoBox  {
+	margin: 30px 0px 0px 0px;
+	padding: 25px 0px 25px 0px;
+	background: #fff;
+	width: 100%;
+	text-align: center;
+	}
+
+#greyCurveWrap h1	{
+	color: #c00;
+	font-size: xx-large;
+	text-align: center;
+	margin: 10px 5px 0px 5px;
+	padding: 0px;
+	}
+
+#greyCurveWrap h2	{
+	color: #c00;
+	font-size: large;
+	margin: 0px 50px 5px 75px;
+	padding: 0px;
+	}
+
+#greyCurveWrap h3	{
+	color: #c00;
+	font-size: large;
+	margin: 15px 50px 5px 75px;
+	padding: 0px;
+	text-transform: uppercase;
+	}
+
+#greyCurveWrap p.text	{
+	margin: 0px 50px 5px 75px;
+	}
+
+#greyCurveWrap ul	{
+	margin: 10px 65px 10px 75px;
+	padding: 0;
+	}
+
+#greyCurveWrap ul li {
+	font-size: smaller;	
+	margin: 0px 0px 5px 45px;
+	padding: 0;
+	}
+
+#greyCurveWrap p.floatLeft  {
+	font-weight: bold;
+	float: left;
+	margin: 0px 50px 5px 75px;
+	}
+
+#greyCurveWrap p.floatRight {
+	margin: 5px 50px 5px 350px;
+	font-weight: bold;
+	}
+
+.agendaLeft	{
+	padding-right: 50px;
+	margin: 5px 0px 5px 75px;
+	}
+
+.agendaRight  {
+	font-size: smaller;
+	vertical-align: middle;
+	}
+
+#greyCurveWrap:after {
+    content: ".";
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+    visibility: hidden;
+    }
+                                                                                                                                                                                         
+    /* Holly Hack Targets IE Win only \*/
+    * html greyCurve#Wrap {height: 1%;}
+    /* End Holly Hack */
+	
+	
+/* Videos */
+
+#videoWrap a {
+	color: #cc0000;
+	text-decoration: none;
+	}
+
+.videoHeadInner {
+	padding: 60px 15px 15px 15px; 
+	color: #ffffff;
+	}
+	
+.videoHeadInner img {
+	float: left; 
+	padding: 0 15px 0 0;
+	}
+
+img.videoImg	{
+	float: left;
+	display: block;
+	margin: 0 15px 0 0;
+	}
+
+ul.videoMore {
+	list-style: none;
+	padding-left: 0;
+	margin: 0 0 30px 0;
+	}
+	
+ul.videoMore li{
+	background-image: url(/images/rh/bullet_arrow_red.png);
+	background-repeat: no-repeat;
+	background-position: 0 .4em;
+	padding-left: 10px;
+	margin: .8em 0;
+	}
+
+ul.videoMore li a {
+	font-weight: bold;
+	}
+	
+ul.videoMore li a.view {
+	font-weight: normal;
+	font-size: smaller;
+	}
+    
+ /* newsletter styles */
+ 
+ .NLcontentIndent15 h2 {
+ 	font-size: large; 
+ 	color: #c00;
+ 	}
+ 	
+ .NLcontentIndent15 h3 {
+ 	font-size: large;
+ 	}
+ 	
+ .NLcontentIndent15 h4 {
+ 	font-size: medium; 
+ 	color: #666;
+ 	}
+ 
+ .NLcontentIndent15 h4.NLDate {
+ 	font-size: small;
+ 	color: #c00;
+ 	}
+ 
+ #NLGrey {
+ 	width: 720px; 
+ 	margin: 20px auto 20px auto; 
+ 	background: #dedede url(/g/landing/ibm_roadshow_top.gif) top left no-repeat;
+ 	}
+ 	
+ #NLGreyLCol {
+ 	float: left; 
+ 	width: 515px; 
+ 	margin: 15px; 
+ 	background: white url(/images/rh/corner_subnews_bottom.gif) bottom right no-repeat; 
+ 	padding-bottom: 20px;
+ 	}
+ 	
+ #NLGreyRCol {
+ 	margin-left: 545px; 
+ 	padding: 85px 15px 0 0;
+ 	}
+ 	
+ #NLGreyBottom {
+ 	width: 720px; height: 20px; 
+ 	background: url(/g/landing/ibm_roadshow_bottom.gif) bottom right no-repeat; 
+ 	clear: both;
+ 	}
+ 	
+ .NLcontentIndent15 {
+ 	margin: 0 15px;
+ 	}
+ 	
+ /* newsletter titles */
+ 
+ h1#SubNews {
+ 	width: 515px; 
+ 	height: 59px; 
+ 	background: url(/g/subnew_header.png) 0 0 no-repeat;
+ 	}
+ 	
+ h1#SubNews span {
+ 	display: none;
+ 	}
+ 	
+/* Summit05 promo */
+
+#homeSummit {
+ 	font-size: 11px;
+ 	color: #666;
+	}
+	
+#homeSummit p, #homeSummit h2, #homeSummit h3 {
+	margin: 0;
+	padding: 0;
+	margin-bottom: 3px;
+	}
+	
+#homeSummit a {
+	text-decoration: none;
+	}
+
+#homeSummitHeader h2 {
+	background: url(/g/promos/summit05/head_homeSummit.png) top left no-repeat;
+	width: 157px;
+	height: 10px;
+	text-indent: -10000px;
+	}
+	
+#homeSummitHeader img {
+	float: right; 
+	margin-left: 30px;
+	}
+	
+#homeSummitPhotos {
+	position: relative;
+	width: 317px;
+	height: 120px;
+	margin: 30px 0 35px -14px;
+	z-index: 1;
+	}
+	
+.homeSummitSpeak1, .homeSummitSpeak2, .homeSummitSpeak3, .homeSummitSpeak4, .homeSummitSpeak5, .homeSummitSpeak6, .homeSummitSpeak7, .homeSummitSpeak8 {
+	display: block;
+	float: left;
+	margin-right: 5px;
+	margin-bottom: 5px;
+	text-indent: -10000px;
+	text-decoration: none;
+	width: 48px;
+	height: 48px;
+	}
+	
+.homeSummitSpeak1 {
+	background: url(/g/promos/summit05/szulik_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak2 {
+	background: url(/g/promos/summit05/tiemann_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak3 {
+	background: url(/g/promos/summit05/buckman_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak4 {
+	background: url(/g/promos/summit05/wheaton_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak5 {
+	background: url(/g/promos/summit05/mau_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak6 {
+	background: url(/g/promos/summit05/fink_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak7 {
+	background: url(/g/promos/summit05/wirt_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak8 {
+	background: url(/g/promos/summit05/berger_off.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak {
+	position: absolute;
+	top: 53px;
+	left: 159px;
+	width: 180px;
+	height: 70px;
+	z-index: 100;
+	}
+	
+.homeSummitSpeak p {
+	line-height: 1.2em;
+	}
+	
+#homeSummitPhotos a span {
+	display: none;
+	}
+	
+#homeSummitPhotos a:hover span {
+	display: block;
+	position: absolute;
+	top: 53px;
+	left: 159px;
+	height: 75px;
+	width: 180px;
+	text-indent: 0;
+	z-index: 200;
+	background: white;
+	color: black;
+	}
+	
+.homeSummitSpeak1:hover {
+	background: url(/g/promos/summit05/szulik_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak2:hover {
+	background: url(/g/promos/summit05/tiemann_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak3:hover {
+	background: url(/g/promos/summit05/buckman_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak4:hover {
+	background: url(/g/promos/summit05/wheaton_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak5:hover {
+	background: url(/g/promos/summit05/mau_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak6:hover {
+	background: url(/g/promos/summit05/fink_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak7:hover {
+	background: url(/g/promos/summit05/wirt_on.jpg) top left no-repeat;
+	}
+	
+.homeSummitSpeak8:hover {
+	background: url(/g/promos/summit05/berger_on.jpg) top left no-repeat;
+	}
+	
+#homeSummitFooter p {
+	text-align: right;
+	font-size: 10px;
+	}
+	
+#homeSummitFooter a {
+	color: #900;
+	font-weight: bold;
+	}
+	
+#summitLive {
+	width: 360px;
+	float: left;
+ 	margin-bottom: 15px;
+	height: 262px;
+	}
+	
+#summitLive h2,#summitLive p {
+	text-indent: -10000px;
+		}
+		
+		
+/* EASY PROMO /promo/easy/ */
+
+#easyWrap {
+	background: url(/g/landing/easy_bg_circles.png) top center no-repeat;
+	width: 695px;
+	min-height: 665px;
+	}
+	
+#easyWrap2 {
+	background: url(/g/landing/easy_bg_circles2.png) top center no-repeat;
+	width: 695px;
+	min-height: 665px;
+	}
+	
+#easyLogo {
+	width: 680px;
+	margin-left: 15px;
+	}
+	
+#easyLogo img {
+	margin-right: 30px;
+	}
+	
+#easyLeft {
+	float: left;
+	width: 335px;
+	margin-left: 15px;
+	}
+	
+#easyRight {
+	float: right;
+	width: 315px;
+	margin-left: 30px;
+	}
+	
+.easyStory {
+	padding-top: 15px;
+	}
+		
+		
+ /* HP ADVOCATE PROMO */
+ 
+ #hpAgenda {
+	margin: 5px 0px 5px 75px;
+	}
+ 
+ #hpAgenda p {
+ 	font-size:smaller;
+ 	margin: 5px 0px 5px 15px;
+	}
+	
+#hpRegister {
+	float: right;
+	width: 350px;
+	}
+
+ 
+/* New Truth Happens pages */
+
+#truthBottom {
+        clear:both;
+        background: url(/g/landing/truthhappens_bottom.png) bottom left no-repeat;
+        height: 27px;
+        padding: 0px;
+        margin: 0px 0px 0px -25px;
+        width: 716px;
+        }
+
+#truthWrap {
+        background: black url('/g/landing/truthhappens_background.png') top left no-repeat;
+    width: 716px;
+        margin: 0px;
+        padding: 0px;
+        }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #truthWrap {width: 716px;}
+    * html #truthWrap {overflow-x: hidden;}
+    * html #truthWrap {overflow-y: auto;}
+    * html #truthWrap {height: 1%;}
+    /* End Holly Hack */
+
+#truthContent {
+        padding-top: 120px;
+        padding-left: 25px;
+        padding-right: 25px;
+        height: auto;
+        }
+
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #truthContent {height: 1%;}
+    /* End Holly Hack */
+
+#truthContent:after {
+  content: "."; 
+   display: block; 
+   height: 0; 
+   overflow: hidden;
+    clear: both;
+    visibility: hidden;
+}
+
+#truthContent p {
+        color: white;
+        font-size: 10pt;
+        font-family: "Lucida Grande", "Luxi Sans", "Bitstream Vera Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+
+        }
+
+#truthContent a {
+        color: white;
+        text-decoration: underline;
+        }
+
+#truthContent h1 {
+        text-transform: uppercase;
+        color: #FFFFFF;
+        }
+
+#truthContent h2 {
+        text-transform: uppercase;
+        color: #ffffff;
+        }
+
+
+#truthContent h3 {
+        text-transform: uppercase;
+        color: #ffffff;
+        }
+
+#introWrapper {
+        width: 560px;
+        }
+
+   /* Holly Hack Targets IE Win only \*/
+    * html #introWrapper {height: 1%;}
+    /* End Holly Hack */
+
+#videoWrapper { 
+        clear: both;
+        height: 150px;
+        margin: 0px;
+        padding-top: 10px;
+        }
+   /* Holly Hack Targets IE Win only \*/
+    * html #videoWrapper {width: 630px;}
+    /* End Holly Hack */
+
+#videoFloat {
+        margin-left: 0px;
+        margin-right: 0px;
+        padding: 0px;
+        width: 210px;
+        float: left;
+        }
+        
+   /* Holly Hack Targets IE Win only \*/
+    * html #videoFloat {height: 1%;}
+    /* End Holly Hack */
+        
+        
+#videoFloat a {
+        color: #ff0000;
+        text-decoration: none;
+        font-size: 8pt; 
+        font-weight: 700;
+        }
+
+#halfWrapper {
+        clear: both;
+        height: auto;
+        margin: 0px;
+        padding-top: 10px;
+        }
+   /* Holly Hack Targets IE Win only \*/
+    * html #halfWrapper {height: 1%;}
+    * html #halfWrapper {width: 660px;}
+    /* End Holly Hack */
+
+
+#truthHalf {
+        padding-right: 10px;
+        width: 320px;
+        float: left;
+        height: auto;
+        margin:0px;
+        }
+
+   /* Holly Hack Targets IE Win only \*/
+    * html #truthHalf {height: 1%;}
+    /* End Holly Hack */
+
+
+#truthHalf:after {
+  content: ".";
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+    visibility: hidden;
+}
+
+#truthHalf p {
+        color: white;
+        font-size: 10pt;
+        font-family: helvetica, sans-serif;
+        }
+
+#truthHalf ul {
+        color: white;
+        font-size: 9pt;
+        font-family: helvetica, sans-serif;
+        }
+
+#truthHalf a {
+        color: white;
+        text-decoration: underline;
+        }
+        
+/* end Truth Happens */ 
+
+/* Virtualization */
+
+#virtIntro p {
+    color: black;
+	font-size: 13px;
+	font-weight: 700;
+	}
+
+#virtWrap {
+    background: url('/images/rh/virt_bg.png') repeat-y left;
+	width: 730px;
+	margin-left: -15px;
+}
+
+#virtWrap:after {
+    content: ".";
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+    visibility: hidden;
+    }
+    
+    /* Holly Hack Targets IE Win only \*/
+    * html virtWrap {height: 1%;}
+    /* End Holly Hack */
+
+
+#virtWrap p {
+    color: black;
+	font-size: 12px;
+	}
+
+
+#virtWrap ul {
+     font-size: 11px;
+     padding-left: 3px;
+     margin-top: -8px;
+}
+
+#virtWrap li {
+     padding-left: 7px;
+     margin-left: -9px;
+}
+	
+#virtWrap a {
+    text-decoration: none;
+	}	
+
+#coltops {
+	background: url('/images/rh/virt_tops.png') no-repeat top;
+	margin: 0;
+	margin-left: 0px;
+	padding: 0;
+	height: 62px;
+	}
+
+#colbots {
+    background: url('/images/rh/virt_bottom.png') no-repeat top;
+    margin-left: 0px;
+    margin: 0px;
+    padding: 0;
+    height: 26px;
+	}
+
+#colvirtgrey1 {
+	float: left;
+	padding-left: 30px;
+	padding-right: 15px;
+	width: 149px;
+	}
+
+#colvirtwhite1 {
+	float: left;
+	padding-left: 15px;
+	padding-right: 15px;
+	width: 167px;
+	}
+	
+#colvirtgrey2 {
+	float: left;
+	padding-left: 15px;
+	padding-right: 15px;
+	width: 158px;
+	}
+
+#colvirtwhite2 {
+	float: left;
+	width: 125px;
+	padding-left: 15px;
+	padding-right: 0px;
+	}
+
+/* End Virtualization */
+
+/* begin styles for Support Definition Tooltips */
+a.toolLink {
+	color: #0066cc;
+	text-decoration:underline;
+	}
+
+.tooltip {
+	position: absolute;
+	width: 240px;
+	background-color: rgb(255, 255, 234);
+	border: 1px solid black;
+	padding: 2px;
+	font-size: 12px;
+	margin: 1em;
+}
+
+.tooltip h3 {
+	height: auto;
+	padding: 2px;
+	margin-top: 0px;
+	margin-left: 0px;
+	background-color: #c00;
+	color: white;
+	font-size: 14px;
+	font-weight: bold;
+	margin: 0;
+}
+
+.tooltip p {
+	float: right;
+	margin-top: 2px;
+	}
+
+.tooltip p a {
+	/* Here for example only. Styles the Close link */
+	color: #fff;
+	font-weight: bold;
+}
+/* end styles for Support Definition Tooltips */
+
+/* hiding silly analytic Javascript */
+
+#oTags {
+display: none;
+visibility: hidden;
+height: 0;
+width: 0;
+}
+
+/* end hiding */
+
+/* RHMagazine widget */
+
+#magWidgetBottom {
+        background: url(/g/magazine/RHMWidgetBottom.png) bottom left no-repeat;
+        height: 38px;
+        width: 132px;
+        }
+
+#magWidget {
+        background: #cc2127 url('/g/magazine/RHMWidgetTop.png') top left no-repeat;
+    width: 132px;
+        margin: 0px;
+        padding: 0px 0px -1px 0px;
+        }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #magWidget {width: 132px;}
+    * html #magWidget {overflow-x: hidden;}
+    * html #magWidget {overflow-y: auto;}
+    * html #magWidget {height: 1%;}
+    /* End Holly Hack */
+
+#magWidgetContent {
+        padding-top: 35px;
+        padding-left: 5px;
+        padding-right: 5px;
+        height: auto;
+        }
+
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #magWidgetContent {height: 1%;}
+    /* End Holly Hack */
+
+#magWidgetContent:after {
+   display: block;
+   height: 0;
+   overflow: hidden;
+    clear: both;
+    visibility: hidden;
+}
+
+
+#magWidgetContent a {
+        color: white;
+        text-decoration: none;
+        font-size: x-small;
+        }
+
+#magWidgetContent ul {
+        list-style: none;
+        padding-left: 0px;
+        margin-left: 2px;
+        }
+
+
+#magWidgetContent ul li{
+        padding-left: 0px;
+        margin: .4em 0;
+        line-height: .9em;
+        }
+
+/* promo jump pages */
+
+h1#jump_head1 {
+	margin: 15px 0;
+	width: 720px;
+	height: 90px;
+	text-indent: -5000px;
+	}
+h1#jump_head1 a {
+	display: block;
+	width: 720px;
+	height: 90px;
+	}
+h2.jump_head2 {
+	color:#666; 
+	text-align:center; 
+	margin-bottom:1em; 
+	font-size:130%;
+	}
+.jump_jboss h1#jump_head1 {
+	background: url(/g/r_header-x.jpg);
+	}
+ul.jump_action {
+	margin-top: 2em;
+	padding: 0;
+	list-style-type: none;
+	text-align: center;
+	}
+ul.jump_action a {
+	font-size: 85%;
+	margin: 0 auto;
+	width: 15em;
+	display: block;
+	padding: .35em 1em;
+	background: #0066cc;
+	color: #fff;
+	text-decoration: none;
+	}
+	
+ul.jump_action a:hover {
+	color: #06c;
+	background: none;
+	}

Added: labs/jbossesb/trunk/product/console/view/css/global.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/global.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/global.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,12 @@
+
+<html>
+
+<head>
+	<title>404 Not Found</title>
+    <!-- meta refresh that loads the following page from the CMS /errors/404 -->
+    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=/errors/404">
+</head>
+
+<body></body>
+
+</html>

Added: labs/jbossesb/trunk/product/console/view/css/headings.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/headings.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/headings.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,689 @@
+
+/************************************************************** HEADING STYLES */
+
+h1, h2, h3, h4 {
+	margin-top: 0;
+	
+	padding-bottom: 0;
+	}
+	
+h1 {
+	padding-top: 0;
+	font-size: x-large;
+	}
+	
+h1.loud {
+	color: #666;
+	text-transform: uppercase;
+	font-family: Verdana, sans-serif;
+	font-weight: 900;
+	}
+	
+h2 {
+	font-size: medium;
+	margin: 0;
+	}
+	
+h3, h4 {
+	font-size: small;
+	margin-bottom: 0;
+	}
+	
+h4 {
+	font-size: x-small;
+	}
+	
+/* Red Hat Enterprise Linux headline */
+	
+h1#headrhel {
+	background-image: url(/images/rh/head_rhel.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headrhel {
+	height: 51px;
+	}
+	
+h1#headrhel span {
+	display: none;
+	}
+	
+/* Red Hat Network headline */
+	
+h1#headrhn {
+	background: url(/images/rh/head_rhn.png) 0 0 no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headrhn {
+	height: 51px;
+	}
+	
+h1#headrhn span {
+	display: none;
+	}
+	
+/* Training (GLS) headline */
+	
+h1#headgls {
+	background: url(/images/rh/head_gls.png) 0 0 no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headgls {
+	height: 51px;
+	}
+	
+h1#headgls span {
+	display: none;
+	}
+	
+/* Server Solutions headline */
+	
+h1#headserver {
+	background-image: url(/images/rh/head_serversolutions.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headserver {
+	height: 51px;
+	}
+	
+h1#headserver span {
+	display: none;
+	}
+	
+	
+/* Client Solutions headline */
+	
+h1#headclient {
+	background-image: url(/images/rh/head_clientsolutions.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headclient {
+	height: 51px;
+	}
+	
+h1#headclient span {
+	display: none;
+	}
+	
+	
+/* Open Source Now headline */
+	
+h1#headosn {
+	background-image: url(/images/rh/head_osn.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headosn {
+	height: 51px;
+	}
+	
+h1#headosn span {
+	display: none;
+	}
+	
+/* Fedora headline */
+	
+h1#headfedora {
+	background-image: url(/images/rh/head_fedora.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	border-bottom: 2px solid #e6e6e6;
+	padding-bottom: 10px;
+	height: 63px;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	height: 51px;
+	}
+
+/* for Opera */
+html>body h1#headfedora {
+	height: 51px;
+	}
+	
+h1#headfedora span {
+	display: none;
+	}
+	
+/* Services headline */
+	
+h1#headservices {
+	background-image: url(/images/rh/head_services.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 5px;
+	height: 16px;
+	}
+	
+h1#headservices span {
+	display: none;
+	}
+	
+/* Solutions headline */
+	
+h1#headsolutions {
+	background-image: url(/images/rh/head_solutions.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 5px;
+	height: 16px;
+	}
+	
+h1#headsolutions span {
+	display: none;
+	}
+
+/* Choice headline */
+
+#headchoice	{
+	padding-bottom: 5px;
+	}
+
+#headchoiceLeft	{
+	float: left;
+	padding-left: 7px;
+	}
+
+#headchoiceRight	{
+	float: right;
+	padding-right: 25px;
+	}
+
+/* Company headline */
+	
+h1#headcompany {
+	background-image: url(/images/rh/head_company.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 5px;
+	height: 16px;
+	}
+	
+h1#headcompany span {
+	display: none;
+	}
+	
+/* Support headline */
+	
+h1#headsupport {
+	background-image: url(/images/rh/head_support.png);
+	background-position: 0 0;
+	background-repeat: no-repeat;
+	padding-bottom: 5px;
+	height: 16px;
+	}
+	
+h1#headsupport span {
+	display: none;
+	}
+	
+/* Store headline */
+	
+h1#storeTitle {
+	background-image: url(/images/rh/title_store_home.png);
+	background-repeat: no-repeat;
+	height: 30px;
+	margin: 0;
+	padding: 0;
+	border-bottom: 1px solid #ccc;
+	}
+	
+h1#storeTitle span {
+	display: none;
+	}
+	
+/* Video headlines */
+
+h1#videoTitle span {
+	display: none;
+	}
+
+div#videoHead {
+	background-image: url(/images/rh/head_videos_pri.png);
+	background-repeat: no-repeat;
+	width: 570px;
+	height: 233px;
+	margin: 0 0 15px 0;
+	padding: 0;
+	}
+	
+h1#videoHead2 {
+	background-image: url(/images/rh/head_videos_sec.png);
+	background-repeat: no-repeat;
+	width: 570px;
+	height: 83px;
+	margin: 0 0 15px 0;
+	padding: 0;
+	}
+	
+h1#videoHead2 span {
+	display: none;
+	}
+
+	
+/* series of colored-background, roundy-colored headlines:
+	[Small(165px), no-size(279px), Wide(573px), Med(426px), Full(690px) 720(720)] */
+	
+h2.accentDarkSmall {
+	width: 165px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #b4b19a;
+	background-image: url(/images/rh/corner_headbrownsmall_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	text-transform: uppercase;
+	}
+	
+h2.accentDarkSmall span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headbrownsmall_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+
+h2.accentDark {
+	width: 279px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #b4b19a;
+	background-image: url(/images/rh/corner_headbrown_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+		}
+	
+h2.accentDark span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headbrown_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+		
+h2.accentDarkWide {
+	width: 573px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #C8C5AC;
+	background-image: url(/images/rh/corner_headbrownwide_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	text-transform: uppercase;
+	}
+	
+h2.accentDarkWide span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headbrownwide_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentDarkMed {
+	width: 426px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #b4b19a;
+	background-image: url(/images/rh/corner_headbrownmedium_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	text-transform: uppercase;
+	}
+	
+h2.accentDarkMed span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headbrownmedium_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentDarkFull {
+	width: 690px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #C8C5AC;
+	background-image: url(/images/rh/corner_headbrownfull_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	text-transform: uppercase;
+	}
+	
+h2.accentDarkFull span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headbrownfull_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+
+h2.accentDarkHalfFull {
+        width: 345px;
+        padding: 0;
+        margin: 0;
+        margin-bottom: 15px;
+        background-color: #b4b19a;
+        background-image: url(/images/rh/corner_headbrownhalffull_top.gif);
+        background-position: top left;
+        background-repeat: no-repeat;
+        font-size: small;
+        color: white;
+	text-transform: uppercase;
+        }
+                                                                                                                                                                                      
+                                                                                                                                                                                      
+h2.accentDarkHalfFull span {
+        display: block;
+        padding: 1px 15px 2px 15px;
+        background-image: url(/images/rh/corner_headbrownhalffull_bottom.gif);
+        background-position: bottom right;
+        background-repeat: no-repeat;
+        }
+
+	
+h2.accentLightSmall {
+	width: 165px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #e3dcc0;
+	background-image: url(/images/rh/corner_headhome.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: #000;
+	}
+	
+h2.accentLightSmall span {
+	display: block;
+	padding: 3px 15px 4px 15px;
+	background-image: url(/images/rh/corner_headhome_b.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightSmall345 {
+	width: 345px;
+	padding: 0;
+	margin: 0 0 0 15px;
+	margin-bottom: 15px;
+	background-color: #e3dcc0;
+	background-image: url(/images/rh/corner_headhome_345.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: #000;
+	}
+	
+    /* Holly Hack Targets IE Win only \*/
+    * html h2.accentLightSmall345 {margin-left: 30px;}
+    /* End Holly Hack */
+	
+h2.accentLightSmall345 span {
+	display: block;
+	padding: 3px 15px 4px 15px;
+	background-image: url(/images/rh/corner_headhome_345_b.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLight {
+	width: 279px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #ccc6ac;
+	background-image: url(/images/rh/corner_headcream_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: #fff;
+	}
+	
+h2.accentLight span {
+	display: block;
+	padding: 2px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headcream_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightDrkTxt {
+	width: 279px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #ccc6ac;
+	background-image: url(/images/rh/corner_headcream_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: x-small;
+	color: #000;
+	}
+	
+h2.accentLightDrkTxt span {
+	display: block;
+	padding: 3px 15px 3px 15px;
+	background-image: url(/images/rh/corner_headcream_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightWide {
+	width: 573px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #DFD8BC;
+	background-image: url(/images/rh/corner_headcreamwide_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	}
+		      
+h2.accentLightWide span {
+	display: block;
+	padding: 1px 10px 2px 15px;
+	background-image: url(/images/rh/corner_headcreamwide_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightWideDrkTxt {
+	width: 573px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #DFD8BC;
+	background-image: url(/images/rh/corner_headcreamwide_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: x-small;
+	color: black;
+	}
+		      
+h2.accentLightWideDrkTxt span {
+	display: block;
+	padding: 3px 10px 3px 15px;
+	background-image: url(/images/rh/corner_headcreamwide_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightMed {
+	width: 426px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #ccc6ac;
+	background-image: url(/images/rh/corner_headcreammedium_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	}
+	
+h2.accentLightMed span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headcreammedium_bottom.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLightFull {
+	width: 690px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #DFD8BC;
+	background-image: url(/images/rh/corner_headcreamfull_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	}
+	
+h2.accentLightFull span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headcreamfull_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+h2.accentLight720 {
+	width: 720px;
+	padding: 0;
+	margin: 0;
+	margin-bottom: 15px;
+	background-color: #DFD8BC;
+	background-image: url(/images/rh/corner_headcream720_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	font-size: small;
+	color: white;
+	}
+	
+h2.accentLight720 span {
+	display: block;
+	padding: 1px 15px 2px 15px;
+	background-image: url(/images/rh/corner_headcream720_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+
+h2.accentLightFullDkTxt {
+        width: 690px;
+        padding: 0;
+        margin: 0;
+        margin-bottom: 15px;
+        background-color: #DFD8BC;
+        background-image: url(/images/rh/corner_headcreamfull_top.png);
+        background-position: top left;
+        background-repeat: no-repeat;
+        font-size: small;
+        color: #000;
+        }
+                                                                                                                                                                                      
+h2.accentLightFullDkTxt span {
+        display: block;
+        padding: 1px 15px 2px 15px;
+        background-image: url(/images/rh/corner_headcreamfull_bottom.png);
+        background-position: bottom right;
+        background-repeat: no-repeat;
+        }
+
+
+h2.accentLightHalfFull {
+        width: 345px;
+        padding: 0;
+        margin: 0;
+        margin-bottom: 15px;
+        background-color: #DFD8BC;
+        background-image: url(/images/rh/corner_headcreamhalffull_top.gif);
+        background-position: top left;
+        background-repeat: no-repeat;
+        font-size: small;
+        color: white;
+        }
+                                                                                                                                                                                       
+h2.accentLightHalfFull span {
+        display: block;
+        padding: 1px 15px 2px 15px;
+        background-image: url(/images/rh/corner_headcreamhalffull_bottom.gif);
+        background-position: bottom right;
+        background-repeat: no-repeat;
+        }
+

Added: labs/jbossesb/trunk/product/console/view/css/layout.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/layout.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/layout.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,12 @@
+
+<html>
+
+<head>
+	<title>404 Not Found</title>
+    <!-- meta refresh that loads the following page from the CMS /errors/404 -->
+    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=/errors/404">
+</head>
+
+<body></body>
+
+</html>

Added: labs/jbossesb/trunk/product/console/view/css/navigation.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/navigation.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/navigation.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,505 @@
+/************************************************************** UTILITY LINKS */
+	
+#utilityLinks {
+	float: left;
+	width: 243px;
+	margin-left: 135px;
+	}
+	
+#utilityLinks ul {
+	padding: 0;
+	margin: 0;
+	border: 0;
+	text-align: center;
+	list-style-type: none;
+	}
+	
+#utilityLinks ul li {
+	display: block;
+	float: left;
+	text-align: center;
+	padding: 0;
+	margin: 0;
+	}
+	
+#utilityLinks ul li a {
+	display: block;
+	}
+	
+#utilityLinks ul li a span {
+	display: none;
+	}
+	
+#utilityLinks ul li a#sixth {
+	width: 82px;
+	height: 30px;
+	background-image: url(/images/rh/link_utility_support.gif);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+body#mainsix #utilityLinks a#sixth {
+	background-image: url(/images/rh/link_utility_support-on.png);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+	
+#utilityLinks ul li a#seventh {
+	width: 70px;
+	height: 30px;
+	background-image: url(/images/rh/link_utility_store.gif);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+body#mainseven #utilityLinks a#seventh {
+	background-image: url(/images/rh/link_utility_store-on.gif);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+		
+#utilityLinks ul li a#eighth {
+	width: 91px;
+	height: 30px;
+	background-image: url(/images/rh/link_utility_download.gif);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+body#maineight #utilityLinks a#eighth {
+	background-image: url(/images/rh/link_utility_download-on.png);
+	background-repeat: no-repeat;
+	background-position: 0 5px;
+	}
+	
+img#banner {
+	margin-bottom: 7px;
+	}
+	
+/************************************************************** MAIN NAVIGATION */
+	
+#mainNavOuter {
+	width: 100%;
+	background-image: url(/images/rh/corner_mainnav_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	background-color: #c00;
+	}
+	
+#mainNav {
+	width: 100%;
+	font-weight: bold;
+	font-family: "Luxi Sans", verdana, helvetica, arial, sans-serif;
+	}
+    
+    
+#mainNavInner {
+	width: 100%;
+	height: 22px;
+	background-image: url(/images/rh/corner_mainnav_top.png);
+	background-position: top right;
+	background-repeat: no-repeat;
+	}
+	
+#mainNav ul {
+	padding: 0;
+	margin: 0;
+	list-style-type: none;
+	background-image: url(/images/rh/corner_mainnav_tl.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	}
+	
+#mainNav ul li {
+	background: #b70000;
+	display: block;
+	float: left;
+	padding: 0;
+	margin: 0;
+	}
+	
+body#mainone #mainNav li#mainFirst,
+body#maintwo #mainNav li#mainSecond,
+body#mainthree #mainNav li#mainThird,
+body#mainfour #mainNav li#mainFourth,
+body#mainfive #mainNav li#mainFifth,
+body#mainend #mainNav li#mainLast {
+	background-color: #800000;
+	}
+	
+#mainNav ul li a#mainFirstLink {
+	background-image: url(/images/rh/corner_mainnav_tl.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	}
+	
+body#mainone #mainNav li a#mainFirstLink {
+	background-image: url(/images/rh/corner_mainnav_tl_hi.png);
+	}
+	
+#mainNav ul li#mainFirst {
+	background-image: url(/images/rh/corner_mainnav_bl.png);
+	background-position: bottom left;
+	background-repeat: no-repeat;
+	}
+	
+body#mainone #mainNav li#mainFirst {
+	background-image: url(/images/rh/corner_mainnav_bl_hi.png);
+	}
+	
+#mainNav ul li a#mainLastLink {
+	background-image: url(/images/rh/corner_mainnav_tr.png);
+	background-position: top right;
+	background-repeat: no-repeat;
+	}
+	
+body#mainend #mainNav li a#mainLastLink {
+	background-image: url(/images/rh/corner_mainnav_tr_hi.png);
+	}
+	
+#mainNav ul li#mainLast {
+	background-image: url(/images/rh/corner_mainnav_br.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+body#mainend #mainNav li#mainLast {
+	background-image: url(/images/rh/corner_mainnav_br_hi.png);
+	}
+	
+#mainNav ul li a {
+	display: block;
+	float: left;
+	text-decoration: none;
+	color: #fff;
+	padding: 4px 15px 3px 15px;
+	font-size: x-small;
+	height: 15px;
+	}
+	
+#worldwide {
+	float: right;
+	margin: 0 15px 0 0;
+	padding: 0;
+	}
+	
+    /* Holly Hack Targets IE Win only \*/
+    * html #worldwide {margin: 0 7px 0 0;} /* have no clue WHY this works */
+    /* End Holly Hack */
+	
+#worldwide ul {
+	margin: 0; 
+	padding: 0;
+	}
+	
+#worldwide ul>a {
+	width: auto;
+	}
+	
+#worldwide ul li {
+	position: relative; 
+	list-style: none; 
+	margin: 0; 
+	background-color: #c00;
+	z-index: 1000;
+	}
+	
+#worldwide ul li a {
+	display: block; 
+  	text-decoration: none;
+  	padding: 5px 0;
+  	}
+  	
+#worldwide ul li a.wwLevelOne {
+	width: 76px;
+	height: 22px;
+	background: url(/images/rh/link_worldwide.png) 50% 50% no-repeat;
+	padding: 0;
+  	}
+  	
+#worldwide ul li a.wwLevelOne span {
+	display: none;
+  	}
+	
+#worldwide ul li:hover ul {
+	display: block;
+	}
+	
+#worldwide ul ul {
+	position: absolute; 
+	top: 22px;
+	left: -19px;
+	display: none;
+	width: 110px;
+	background: url(/images/rh/corner_wwDrop_top.gif) top left no-repeat;
+	padding-top: 10px;
+	}
+	
+#worldwide ul ul li a {
+	width: 90px;
+	padding: 5px 15px 5px 5px;
+	font-weight: normal;
+	text-align: right;
+	height: auto; /* recovers from height of "ul li a" above */
+	background-color: #999;
+	}
+	
+#worldwide ul ul li.wwLast {
+	background: url(/images/rh/corner_wwDrop_bottom.gif) bottom right no-repeat;
+	padding-bottom: 10px;
+	}
+	
+/*
+#worldwide a {
+	display: block;
+	width: 76px;
+	height: 15px;
+	background-image: url(/images/rh/link_worldwide.png);
+	background-repeat: no-repeat;
+	}
+	
+#worldwide a span {
+	display: none;
+	}
+*/
+	
+/************************************************************** SECONDARY NAVIGATION */
+	
+#secNavOuter {
+	width: 100%;
+	background-image: url(/images/rh/corner_secnav_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	background-color: #e6e6e6;
+	}
+	
+#secNav {
+	width: 100%;
+	font-weight: normal;
+	font-family: "Luxi Sans", verdana, helvetica, arial, sans-serif;	
+	font-size: x-small;
+	}
+	
+#secNavOuter:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .secNavOuter {height: 1%;}
+    /* End Holly Hack */
+    
+#secNavInner {
+	width: 100%;
+	height: 7px;
+	background-image: url(/images/rh/corner_secnav_top.png);
+	background-position: top right;
+	background-repeat: no-repeat;
+	}
+	
+#secNav ul {
+	padding: 0;
+	margin: 0;
+	list-style-type: none;
+	background-image: url(/images/rh/corner_secnav_tl.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	}
+	
+#secNav ul li {
+	background: #999;
+	display: block;
+	float: left;
+	padding: 0;
+	margin: 0;
+	}
+	
+ul#secone li#secFirst,
+ul#sectwo li#secSecond,
+ul#secthree li#secThird,
+ul#secfour li#secFourth,
+ul#secfive li#secFifth,
+ul#secsix li#secSixth,
+ul#secseven li#secSeventh,
+ul#seceight li#secEighth,
+ul#secend li#secLast {
+	background-color: #565656;
+	}
+	
+#secNav ul li a#secFirstLink {
+	background-image: url(/images/rh/corner_secnav_tl.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	padding-left: 15px;
+	}
+	
+#secNav ul#secone li a#secFirstLink {
+	background-image: url(/images/rh/corner_secnav_tl_hi.png);
+	}
+	
+#secNav ul li#secFirst {
+	background-image: url(/images/rh/corner_secnav_bl.gif);
+	background-position: bottom left;
+	background-repeat: no-repeat;
+	}
+	
+#secNav ul#secone li#secFirst {
+	background-image: url(/images/rh/corner_secnav_bl_hi.png);
+	}
+	
+#secNav ul li a#secLastLink {
+	background-image: url(/images/rh/corner_secnav_tr.gif);
+	background-position: top right;
+	background-repeat: no-repeat;
+	padding-right: 15px;
+	}
+	
+
+#secNav ul#secend li a#secLastLink {
+	background-image: url(/images/rh/corner_secnav_tr_hi.png);
+	}
+	
+#secNav ul li#secLast {
+	background-image: url(/images/rh/corner_secnav_br.gif);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+
+#secNav ul#secend li#secLast {
+	background-image: url(/images/rh/corner_secnav_br_hi.png);
+	}
+	
+#secNav ul li a {
+	display: block;
+	float: left;
+	text-decoration: none;
+	color: #fff;
+	padding: 5px 10px;
+	font-size: 10px;
+	}
+/* hide rule from ie5 mac \*/
+#secNav ul li a {
+	float: none;
+	}
+	
+#mainNav ul li a:hover, #worldwide ul ul li a:hover, #secNav ul li a:hover {
+	color: #000;
+	}
+    
+/************************************************************** SIDE NAVIGATION */
+	
+#sidenav {
+	width: 132px;
+	background-color: #999;
+	background-image: url(/images/rh/corner_sidenav_top.gif);
+	background-position: top right;
+	background-repeat: no-repeat;
+	font-family: "Luxi Sans", verdana, arial, sans-serif;	
+	font-size: x-small;
+	font-weight: bold;
+	}
+	
+#sidenav ul {
+	background-image: url(/images/rh/corner_sidenav_bottom.gif);
+	background-position: bottom left;
+	background-repeat: no-repeat;
+	list-style: none;
+	padding: 10px 0 10px 0;
+	margin: 0;
+	}
+	
+#sidenav ul ul {
+	background: none;
+	background-color: #c1c1c1;
+	margin: 0;
+	padding: 0;
+	}
+	
+#sidenav ul li {
+	border-bottom: 1px solid #a7a7a7;
+	margin: 0;
+	}
+	
+#sidenav ul li:last-child {
+	border-bottom: 1px solid #999;
+	}
+	
+#sidenav ul li.navon {
+	background: #6c6c6c;
+	}
+	
+#sidenav ul li.navon span {
+	display: none;
+	}
+	
+#sidenav ul li a {
+	display: block;
+	color: white;
+	text-decoration: none;
+	padding: 3px 5px 3px 15px;
+	margin: 0;
+	}
+	
+#sidenav ul ul li a.navon {
+	background: #8a8a8a;
+	}
+	
+#sidenav ul ul li:last-child {
+	border-bottom: none;
+	}
+	
+#sidenav ul ul li a {
+	padding-left: 30px;
+	}
+	
+ #sidenav ul li a:hover {
+	color: #333;
+	}
+	
+/************************************************************** RELATED LINKS */
+
+#moreinfo {
+	width: 132px;
+	background: #f5f5f5;
+	background-image: url(/images/rh/corner_moreinfo_top.png);
+	background-repeat: no-repeat;
+	background-position: top right;
+	margin-top: 10px;
+	}
+	
+#moreinfo ul {
+	padding: 5px 5px 10px 10px;
+	list-style: none;
+	margin: 0;
+	background-image: url(/images/rh/corner_moreinfo_bottom.png);
+	background-repeat: no-repeat;
+	background-position: bottom left;
+	}
+	
+#moreinfo ul li {	
+	font-size: x-small;
+	background-image: url(/images/rh/bullet_grayarrow.png);
+	background-repeat: no-repeat;
+	background-position: 0 3px;
+	padding-left: 6px;
+	margin: .33em 0;
+	}
+	
+#moreinfo ul li a {
+	color: #666;
+	text-decoration: none;
+	}
+	
+#moreinfo ul li a:hover {
+	color: #333;
+	}
+	
+#moreinfo h4 {
+	font-size: x-small;
+	color: #666;
+	margin: 0;
+	padding: 10px 0 0 15px;
+	}

Added: labs/jbossesb/trunk/product/console/view/css/pagelayout.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/pagelayout.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/pagelayout.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,798 @@
+/************************************************************** LOGO HEADER */
+	
+#header {
+	width: 100%;
+	height: 42px;
+	clear: left;
+	}
+	
+#header form {
+	width: 201px;
+	margin-top: 5px;
+	float: right;
+	text-align: right;
+	}
+	
+#header input {
+	background: #eee;
+	}
+	
+#rhLogo {
+	float: left;
+	margin-left: 15px;
+	}
+	
+/************************************************************** WIDGETS */
+
+#widget {
+	width: 132px;
+	padding-bottom: 9px;
+	margin-bottom: 1em;
+	font-size: 10px;
+	background-image: url(/images/rh/corner_widget_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+#widgetRed {
+	width: 132px;
+	padding-bottom: 9px;
+	margin-bottom: 1em;
+	font-size: 10px;
+	background-image: url(/images/rh/corner_widget_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+#widget img {
+	display: block;
+	padding: 0;
+	margin: 0;
+	}
+	
+#widget h3 {
+	font-size: 10px;
+	color: white;
+	background: #b4b4b4;
+	padding: 4px 10px;
+	margin: 0;
+	}
+	
+#widgetRed h3 {
+	font-size: 10px;
+	color: white;
+	background: #900;
+	padding: 4px 10px;
+	margin: 0;
+	}
+	
+#widget h3.noPromo {
+	background-image: url(/images/rh/corner_widget_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	padding-top: 5px;
+	padding-bottom: 5px;	
+	}
+	
+#widgetRed h3.noPromoRed {
+	background-image: url(/images/rh/corner_widgetRed_top.gif);
+	background-position: top left;
+	background-repeat: no-repeat;
+	padding-top: 5px;
+	padding-bottom: 5px;	
+	}
+
+#widget .noPromoLtGrey {
+	background-image: url(/images/rh/corner_widget_top_ltgrey.png);
+	background-position: top left;
+        background-repeat: no-repeat;
+	padding-top: 0;
+        padding-bottom: 0;
+	border-bottom: 1px solid #b4b4b4;
+        background-color: #f2f2f2;
+        }
+        
+#widgetCMSTop {
+	 background: url(http://www.redhat.com//images/rh/corner_widget_top_ltgrey.png) 50% 50% no-repeat; 
+	 padding-top: 14px;
+	 }
+
+.widgetBody {
+	width: 132px;
+	padding: 9px;
+	border-left: 1px solid #b4b4b4;
+	border-right: 1px solid #b4b4b4;
+	background-color: #f2f2f2;
+/* tantek box hack for ie5 win */
+	voice-family: "\"}\"";
+	voice-family: inherit;
+	width: 112px;
+	}
+
+/* for Opera */
+html>body .widgetBody {
+	width: 112px;
+	}
+	
+.widgetBody input {
+	font-size: 10px;
+	}
+	
+.widgetBody ul.linkage {
+	list-style: none;
+	padding-left: 0;
+	margin-left: 0;
+	}
+	
+/************************************************************** FOOTER */
+
+p#footer {
+	padding-top: 40px;
+	margin-left: 15px;
+	line-height: 1.5em;
+	color: #999;
+	font-size: xx-small;
+	clear: both;
+	}
+	
+p#footer a {
+	text-decoration: none;
+	}
+	
+/************************************************************** MAIN CONTENT */
+	
+#contentWrap {
+	margin: 25px 0 10px 0;
+	padding: 0;
+	}
+	
+#contentWrap:after {
+    content: "."; 
+    display: block;
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #contentWrap {height: 1%;}
+    /* End Holly Hack */
+    
+#contentWrap1Col {
+	margin: 25px 15px 10px 15px;
+	padding: 0;
+	}
+	
+#contentWrap1Col:after {
+    content: "."; 
+    display: block; 
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #contentWrap1Col {height: 1%;}
+    /* End Holly Hack */
+    
+/**** wrap this around any area with 2 columns except for "compare" */
+    
+.content2Col:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .content2Col {height: 1%;}
+    /* End Holly Hack */
+    
+/**** wrap this around any area with 2 columns that are followed by an HR */
+    
+.content2ColHR {
+	padding-bottom: 15px;
+	border-bottom: 1px solid #C8C5AC;
+	margin-bottom: 15px;
+	}
+    
+.content2ColHR:after {
+    content: "."; 
+    display: block; 
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .content2ColHR {height: 1%;}
+    /* End Holly Hack */
+    
+
+    
+/**** following two styles define LEFT SIDENAV and RIGHT-HAND CONTENT */
+	
+#navCol {
+	float: left;
+	width: 132px;
+	}
+	
+	/* Holly Hack Targets IE Win only \*/
+    * html #navCol {position: static;}
+    /* End Holly Hack */
+	
+#content3ColRight {
+float: left;
+width: 421px;
+margin-right: 15px;
+}
+	
+    
+#contentColRight {
+        margin-left: 147px;
+}    
+
+        /* Holly Hack Targets IE Win only \*/
+    * html #contentColRight {margin-left: 144px;}
+    /* End Holly Hack */
+
+
+/**** following two styles define LEFT-HAND CONTENT and RIGHT-HAND WIDGETS */
+	
+#contentColLeft {
+	float: left;
+	width: 573px;
+	}
+
+#widgetCol {
+	margin-left: 588px;
+	}
+	
+	/* Holly Hack Targets IE Win only \*/
+    * html #widgetCol {margin-left: 583px;}
+    /* End Holly Hack */
+
+#widget3Col {
+float:left;	
+width: 132px;
+	}
+
+
+    
+#widgetFloat {
+	float: right;
+	margin-left: 15px;
+	margin-bottom: 15px;
+	}
+    
+#widgetWrap:after {
+    content: "."; 
+    display: block; 
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html #widgetWrap {height: 1%;}
+    /* End Holly Hack */
+    
+    
+    
+#logoutFloat {
+	float: right;
+	margin: 15px;
+	margin-right: 10px;
+	margin-top: 0px
+	}
+#logoutFloat a {
+	text-decoration: none;
+	color: rgb(153, 0, 0);
+	}
+	
+/**** END basic template styles */
+	
+/**** following styles define HALF-WIDTH CONTENT COLUMNS */
+	
+.halfColLeft {
+	float: left;
+	}
+	
+	/* Holly Hack Targets IE Win only \*/
+    * html .halfColLeft {position: static;}
+    /* End Holly Hack */
+
+
+
+	
+.halfColRight,
+.twothirdColRight{
+	margin-left: 294px;
+	}
+	
+	/* Holly Hack Targets IE Win only \*/
+    * html .halfColRight,
+    * html .twothirdColRight{margin-left: 291px;}
+    /* End Holly Hack */
+    
+.halfColRight,
+.halfColLeft {
+	width: 279px;
+	padding-top: 0;
+	}
+	
+.twothirdColRight {
+	width: 411px;
+	}
+	
+.onethirdColRight {
+	width: 279px;
+	margin-left: 441px;
+	}
+	
+	/* Holly Hack Targets IE Win only \*/
+    * html .onethirdColRight {margin-left: 438px;}
+    /* End Holly Hack */
+	
+.twothirdColLeft {
+	width: 426px;
+	float: left;
+	}
+	
+.halfColRight ul,
+.halfColLeft ul {
+	padding: 0 10px 0 20px;
+	margin: 5px 0 11px 0;
+	}
+	
+.contentIndent {
+	margin-left: 15px;
+	margin-bottom: 15px;
+	}
+	
+.noIndent p	{
+	margin: 0;
+	}
+
+/* HalfFullCols -- right and left 50% cols on a full 720px page, like /choice/ */
+
+.halfFullColLeft {
+        float: left;
+        }
+                                                                                                                                                                                       
+        /* Holly Hack Targets IE Win only \*/
+    * html .halfFullColLeft {position: static;}
+    /* End Holly Hack */
+                                                                                                                                                                                       
+.halfFullColRight {
+        margin-left: 375px;
+        }
+                                                                                                                                                                                       
+        /* Holly Hack Targets IE Win only \*/
+    * html .halfFullColRight {margin-left: 357px;}
+    /* End Holly Hack */
+                                                                                                                                                                                       
+.halfFullColRight,
+.halfFullColLeft {
+        width: 345px;
+        padding-top: 0;
+        }
+
+	
+/**** following styles define INTRO PARAGRAPHS ON MAIN AND SUB SECTION PAGES */
+	
+#intro {
+	color: #b4b19a;
+	margin-bottom: 15px;
+	}
+	
+#intro h1 {
+	color: #333;
+	text-transform: uppercase;
+	}
+	
+#intro h2 {
+	margin-bottom: 0;
+	padding-bottom: 0;
+	font-size: large;
+	}
+	
+#intro p {
+	font-size: medium;
+	line-height: 1.33em;
+	margin: 0;
+	}
+	
+#intro a {
+	text-decoration: none;
+	}
+	
+#introMain {
+	margin-left: 15px;
+	}
+	
+#introSub {
+	padding-bottom: 15px;
+	border-bottom: 2px solid #e6e6e6;
+	}
+	
+/**** following styles define the BUY BUTTONS and surroundings */
+	
+.buyBox {
+	color: #999;
+	margin-bottom: 10px;
+	border-bottom: 2px solid #e6e6e6;
+	}
+	
+.buyWrap {
+	height: 29px;
+	}
+
+.buyWrap:after {
+    content: "."; 
+    display: block; 
+    height: 0;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .buyWrap {height: 1%;}
+    /* End Holly Hack */
+    
+.buyBox p {
+	margin-top: 5px;
+	padding: 0;
+	}
+    
+button.buyButton {
+	float: left;
+	position: relative;
+	background: url(/images/rh/link_rhelblue.png) no-repeat;
+	text-align: center;
+	color: #fff;
+	font-size: 10px;
+	font-weight: bold;
+	width: 75px;
+	height: 29px;
+	border: 0;
+	padding: 0;
+	margin: 0;
+}
+
+p.buyText {
+	color: #000;
+	width: 200px;
+	margin: 0 0 0 85px;
+}
+
+p.buyTextToo	{
+	color: #000;
+	margin: 0 0 0 85px;
+	}
+	
+/**** following styles define COLUMNS THAT MUST BE ALIGNED AND COMPARE TWO CONCEPTS */
+
+.compare {
+	margin: 0 0 15px 0;
+	padding: 0;
+	}
+	
+.compare:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .compare {height: 1%;}
+    /* End Holly Hack */
+	
+.compareColLeft,
+.compareColRight {
+	width: 279px;
+	background-image: url(/images/rh/corner_listbox_cream_bottom.png);
+	background-position: bottom right;
+    	background-repeat: no-repeat;
+	}
+
+.compareColLeftNoBG,
+.compareColRightNoBG  {
+	width: 279px;
+	}
+
+.compareColLeft h2,
+.compareColRight h2,
+.compareColLeftNoBG h2,
+.compareColRightNoBG h2 {
+	margin-bottom: 5px;
+	}
+
+.compareColLeft,
+.compareColLeftNoBG {
+	float: left;
+	}
+	
+.compareColRight,
+.compareColRightNoBG {
+	float: right;
+	}
+
+.compareColLeftClear,
+.compareColRightClear {
+        width: 279px;
+        }
+                                                                                                                             
+.compareColLeftClear h2,
+.compareColRightClear h2 {
+        margin-bottom: 5px;
+        }
+                                                                                                                             
+.compareColLeftClear {
+        float: left
+        }
+                                                                                                                             
+.compareColRightClear {
+        float: right
+        }
+	
+/**** following styles define ROUNDED CORNER LIGHT BACKGROUND LISTS */
+	
+ul.listBoxLeft,
+ul.listBoxRight {
+	width: 249px;
+	background-color: #f7f2d0;
+    	background-image: url(/images/rh/corner_listbox_cream_top.png);
+	background-position: top right;
+	background-repeat: no-repeat;
+	padding: 7px 10px 0 20px;
+	margin: 5px 0 11px 0;
+	}
+	
+ul.listBoxLeft li,
+ul.listBoxRight li {
+	padding: .5em 0 .5em 0;
+	}
+
+	
+.boxCream	{
+	width: 279px;
+	background-color: #f7f2d0;
+        background-image: url(/images/rh/corner_listbox_cream_bottom.png);
+        background-position: bottom right;
+        background-repeat: no-repeat;
+	padding-bottom: 10px;
+	margin-bottom: 15px;
+        }
+
+ul.listBoxCream	{
+	width: 249px;
+	background-color: #f7f2d0;
+        background-image: url(/images/rh/corner_listbox_cream_top.png);
+        background-position: top right;
+        background-repeat: no-repeat;
+        padding: 7px 10px 0 20px;
+        margin: 5px 0 0 0;
+	list-style: none;
+        }
+
+ul.listBoxCream li {
+	font-size: smaller;
+	font-weight: bold;
+	line-height: 1.5em;
+	background-image: url(/images/rh/bullet_bluearrowoncream_dot.png);
+        background-repeat: no-repeat;
+        background-position: 0 3px;
+        padding: 1px 0 1px 18px;
+	}
+	
+/**** following styles define PRODUCT DESCRIPTIONS ON MAIN SECTION PAGES */
+	
+.prod {
+	width: 279px;
+	margin-bottom: 15px;
+	}
+	
+.prod:after {
+    content: "."; 
+    display: block; 
+    height: 1px;
+    margin-top: -1px;
+    overflow: hidden;
+    clear: both; 
+    visibility: hidden;
+    }
+
+    /* Holly Hack Targets IE Win only \*/
+    * html .prod {height: 1%;}
+    /* End Holly Hack */
+	
+.prod h3 {
+	margin: 0 0 0 81px;
+	font-size: x-small;
+	text-transform: uppercase;
+	}
+	
+.prod p {
+	width: 198px;
+	margin: 3px 0 0 81px;
+	}
+	
+.prod img {
+	float: left;
+	margin: 0 0 0 15px;
+	}
+	
+/**** following styles define CAPTIONS FOR /images/rh */
+
+div.imgBox {
+  	background: url(/images/rh/corner_boxcream_br.png) bottom right no-repeat;
+  	background-color: #F7F2D0;
+  	margin-bottom: 15px;
+  	border-bottom: 1px solid white;
+  	}
+  
+div.imgBox img {
+	padding: 0;
+	margin-bottom: -3px;
+  	background-color: #fff;
+	}
+	
+div.caption {
+  	background: url(/images/rh/corner_boxcream_tr.png) top right no-repeat;
+  	font-style: italic;
+  	font-size: x-small;
+ 	}
+  
+div.caption h3 {
+  	background: url(/images/rh/corner_boxcream_tl.png) top left no-repeat;
+  	padding: 8px 0 0 8px;
+  	font-size: x-small;
+  	margin: 0;
+ 	}
+  
+div.caption p {
+  	background: url(/images/rh/corner_boxcream_bl.png) bottom left no-repeat;
+  	margin: 0;
+  	padding: 0 8px 10px 8px;
+  	}
+  
+div#imgClusterSuiteDiag {
+	width: 427px;
+ 	}
+ 	
+ /**** following styles define the CLEAR BOX W/ROUNDED CORNERS */
+ 
+ .clearBox {
+ 	width: 279px;
+ 	background: url(/images/rh/corner_halflinebox_top.png) top right no-repeat;
+ 	}
+ 	
+ .clearBoxWide {
+ 	width: 573px;
+ 	background: url(/images/rh/corner_mediumlinebox_top.png) top right no-repeat;
+ 	}
+ 	
+ .clearBoxFull {
+ 	width: 690px;
+ 	background: url(/images/rh/corner_lineboxfull_top.png) top right no-repeat;
+ 	}
+ 
+ .clearBoxHalfFull	{
+	width: 345px;
+	background: url(/images/rh/corner_lineboxhalffull_top.gif) top right no-repeat;
+        }
+	
+ .clearBoxTop3column	{
+	width: 420px;
+	padding-top: 7px;
+	background: url(/images/rh/corner_linebox420_top.png) top right no-repeat;
+        }
+	
+ .clearBox,
+ .clearBoxWide,
+ .clearBoxFull,
+ .clearBoxHalfFull {
+ 	padding-top: 7px;
+ 	margin-bottom: 15px;
+ 	}
+ 	
+ .clearBoxInner {
+ 	background: url(/images/rh/corner_halflinebox_bottom.png) bottom left no-repeat;
+ 	}
+ 	
+ .clearBoxInnerWide {
+	background: url(/images/rh/corner_mediumlinebox_bottom.png) bottom left no-repeat;
+	}
+ 	
+ .clearBoxInnerFull {
+ 	background: url(/images/rh/corner_lineboxfull_bottom.png) bottom left no-repeat;
+ 	}
+ 	
+ .clearBoxInnerHalfFull {
+        background: url(/images/rh/corner_lineboxhalffull_bottom.gif) bottom left no-repeat;
+        }
+        
+ .clearBoxBottom3column {
+ 	 	padding-bottom: 7px;
+        background: url(/images/rh/corner_linebox420_bottom.png) bottom left no-repeat;
+        }
+
+
+ .clearBoxInner,
+ .clearBoxInnerWide,
+ .clearBoxInnerFull,
+ .clearBoxInnerHalfFull {
+ 	width: 100%;
+ 	padding-bottom: 7px;
+ 	}
+ 	
+ .clearBoxBody {
+ 	padding: 5px 14px;
+ 	border-left: 1px solid #b4b4b4;
+ 	border-right: 1px solid #b4b4b4;
+ 	}
+ 	
+ .clearBoxBody h2 {
+ 	font-size: small;
+ 	}
+	
+.clearBoxWide div.formrow span.formfield {
+	width: 430px;
+	}
+                                                                                                                                                         
+.clearBoxFullQuote {
+	width: 690px;
+	padding-top: 7px;
+	background: url(/images/rh/corner_lineboxfull_top.png) top right no-repeat;
+	margin-bottom: 15px;
+	}
+                                                                                                                                                         
+.clearBoxQuote {
+	width: 573px;
+	padding-top: 7px;
+	background: url(/images/rh/corner_lineboxwide_top.png) top right no-repeat;
+	margin-bottom: 15px;
+	margin-left: 50px;
+	}
+ 	
+ .clearBoxBody3column {
+ 	border-left: 1px solid #b4b4b4;
+ 	border-right: 1px solid #b4b4b4;
+ 	}
+ /**** following styles if you need a HORIZONTAL RULE */
+ 	
+ .HRBox {
+	padding-bottom: 15px;
+	border-bottom: 1px solid #C8C5AC;
+	margin-bottom: 15px;
+	}
+ 	
+ /**** following styles define the an IMAGE ON THE LEFT W/TEXT ON THE RIGHT */
+ 	
+ div.imgLeft {
+ 	margin-bottom: 15px;
+ 	overflow: auto;
+ 	}
+	
+div.imgLeft img {
+ 	float: left;
+ 	margin: 0 30px 15px 0;
+ 	}
+ 
+div.imgLeft img.margin15	{
+	margin-right: 15px;
+	}
+

Added: labs/jbossesb/trunk/product/console/view/css/print.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/print.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/print.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,49 @@
+body { font: 11px Verdana, Helvetica, Arial, sans-serif; }
+
+a:link { text-decoration: underline; }
+a:visited { text-decoration: underline; }
+
+h1 { }
+h2 { }
+h3 { }
+h4 { }
+h5 { }
+
+strong { }
+em { }
+
+p { }
+pre { }
+code { }
+
+hr { }
+
+
+.hide { display: none;}
+
+
+/* hide screen navigation */
+#TopMenu, #ControlMenu, #LeftMenu, #LeftAds, #MemberMenu, #WhosOnline  { display: none; }
+.pn-normal, .quickstart-box { display: none; }
+
+
+/* reformat breadcrumb for reference */
+#Breadcrumb { display: none; /* for now */}
+#Breadcrumb { border-top: 1px solid #6e6e6e; margin-bottom: 30px; padding-top: 10px;}
+#Breadcrumb ul { padding-left: 0px; margin: 0px; display: inline; }
+#Breadcrumb li { list-style: none; color: #333333; font: 11px Verdana, Helvetica, Arial, sans-serif; display: inline; }
+#Breadcrumb li.root { color: #666666; font-weight: bold; }
+#Breadcrumb a { color: #005EB6; text-decoration: none; }
+#Breadcrumb a:hover { text-decoration: underline; }
+#Breadcrumb li:before { content: "\00BB \0020"; }
+#Breadcrumb li.root:before { content: " "; }
+
+
+/* format general text */
+#BodyTable td.topheader { height: 0px; }
+#BodyTable td.leftside { height: 0px; }
+#BodyTable td.bodycell { font: 11px verdana, arial, helvetica; }
+
+
+/* reformat copyright */
+#PageFooter #Copyright { font: 11px Verdana, Helvetica, Arial, sans-serif; margin-top: 30px; opacity: .5}

Added: labs/jbossesb/trunk/product/console/view/css/screen.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/screen.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/screen.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,241 @@
+/* Setup defaults since variable in browsers
+----------------------------------------------- */
+body, div, dd, dt, dl, img, ul, ol, li, p, h1, h2, h3, h4, h5, form, hr, fieldset {
+	margin: 0;
+	padding: 0;
+}
+/* Element Defaults
+----------------------------------------------- */
+html {
+	height: 100%;
+	background-color: #DBD4C6;
+}
+img {
+	border: 0;
+}
+body {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: small;
+	line-height: 1.25em;
+	color: #362F2D;
+	position: relative;
+	height: 100%;
+	margin-left: auto;
+	margin-right: auto;
+}
+label {
+	font-weight: bold;
+	color: #5E5147;
+}
+input {
+	border: 1px solid #C3BBB6;
+	padding: 4px;
+	margin: 5px 0;
+	background: #fff url(../img/input.bg.gif) 0 0 repeat-x;
+}
+ol, ul {
+	margin: 10px 0px 10px 6px;
+}
+li {
+	margin: 10px 12px;
+}
+fieldset {
+	border: 0;
+}
+/* Layout
+----------------------------------------------- */
+#document {
+	padding: 0 1px;
+	float: left;
+}
+#header {
+	float: left;
+	width: 758px;
+	height: 46px;
+}
+#container {
+	float: left;
+	width: 758px;
+}
+#sidebar {
+	float: left;
+	width: 190px;
+	margin-top: 96px;
+	padding: 20px 10px 0 10px;
+}
+#content {
+	float: left;
+	width: 548px;
+	margin-top: 75px;
+	padding-top: 5px;
+}
+#footer {
+	clear: both;
+	margin-top: 40px;
+	float: left;
+	padding: 20px;
+	border-top: 1px solid #C3BBB6;
+	background-color: #fff;
+	width: 718px;
+	text-align: right;
+}
+/* General
+----------------------------------------------- */
+.button {
+	font-weight: bold;
+	color: #fff;
+	border: 1px solid #5D1414;
+	height: 26px;
+	background: #fff url(../img/btn.bg.gif) 0 0 repeat-x;
+	border-style: none;
+}
+.center {
+	text-align: center;
+}
+.entry {
+	clear: both;
+	padding-top: 10px;
+}
+.entry .label {
+	float: left;
+	padding-top: 10px;
+	padding-right: 5px;
+	font-weight: bold;
+	width: 150px;
+	text-align: right;
+}
+.entry .output {
+	float: left;
+	width: 750px;
+	padding-top: 10px;
+	padding-left: 15px;
+	text-align: left;
+}
+.entry .input {
+	float: left;
+	width: 250px;
+	text-align: left;
+}
+/* Sidebar
+----------------------------------------------- */
+.notes {
+	text-align: center;
+	font-size: x-small;
+}
+.errors {
+	font-size: small;
+	font-weight: bold;
+	text-align: center;
+	color: #600;
+}
+.errors ul {
+	list-style: none;
+}
+.buttonBox {
+	text-align: center;
+	padding: 5px 0;
+}
+#sidebar p {
+	font-size: x-small;
+	color: #8B7869;
+	line-height: 150%;
+	padding-bottom: 10px;
+}
+#sidebar li {
+	font-size: x-small;
+	color: #8B7869;
+}
+#sidebar h1 {
+	line-height: normal;
+	font-weight: bold;
+	font-size: x-small;
+}
+#sidebar p:hover {
+	color: #362F2D;
+}
+/* Content
+----------------------------------------------- */
+#content .section {
+	float: left;
+	width: 1200px;
+	padding: 15px 15px 0 15px;
+}
+#content .section h1 {
+	font-family: "Trebuchet MS", Arial, sans-serif;
+	line-height: normal;
+	font-weight: normal;
+	font-size: large;
+}
+#content .section p {
+	line-height: 150%;
+	padding: 10px 0;
+	font-size: small;
+}
+#content table {
+	width: 100%;
+	border: 1px solid #D2C9C4;
+	border-collapse: collapse;
+}
+#content table caption {
+	padding-bottom: 6px;
+	text-align: left;
+	font-weight: bold;
+}
+#content table thead th {
+	border-left: 1px solid #D2C9C4;
+	background: #fff url(../img/th.bg.gif) 0 100% repeat-x;	
+	border-bottom: 1px solid #D2C9C4;
+	padding: 6px;
+	text-align: left;
+	font-size: small;
+}
+#content table tbody td {
+	border-left: 1px solid #E4DBD5;
+	padding: 4px;
+	border-bottom: 1px solid #D2C9C4;
+	font-size: small;
+}
+#content dt {
+	font-weight: bold;
+	float: left;
+	width: 33%;
+}
+#content dd {
+	padding-left: 10px;
+	float: left;
+	width: 66%;
+}
+/* Header
+----------------------------------------------- */
+#title {
+	float: left;
+	padding: 1px 0 6px 15px;
+}
+#status {
+	color: #C7B299;
+	float: right;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	font-size: x-small;
+	text-align: right;
+	padding-top: 14px;
+	padding-right: 15px;
+}
+#status a {
+	color: #C7B299;
+	text-decoration: none;
+}
+/* Homepage Modifications
+----------------------------------------------- */
+#pgHome #container {
+	background: url(../img/hdr.ad.jpg) 0 0 repeat-x;
+}
+#pgHome #sidebar {
+	margin-top: 207px;
+}
+#pgHome #content {
+	margin-top: 183px;
+}
+#pgHome .button {
+	height: 30px;
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/css/screen_001.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/screen_001.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/screen_001.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,245 @@
+body { background-color: white; margin: 0px; padding: 0px; }
+
+a:link { text-decoration: none; }
+a:active { text-decoration: none; }
+a:visited { text-decoration: underline; }
+a:hover { text-decoration: underline; }
+
+h1 { }
+h2 { }
+h3 { }
+h4 { }
+h5 { }
+
+strong { }
+em { }
+
+p { }
+pre { }
+code { }
+
+hr { }
+
+
+/* TOP MENU -------------------------------------------- */
+#TopLogo { position: absolute; left: 0px; top: 0px; z-index: 5; }
+#TopMenu { position: absolute; right: 0px; top: 0px; z-index: 5; }
+#TopMenu td { height:22px; width: 120px; text-align: center; font: bold 9pt Verdana, Helvetica, Arial, sans-serif; }
+#TopMenu a { display: block; width: 120px; height:20px; padding-top: 2px; color: white; text-decoration: none; }
+#TopMenu td.menu_JBnetwork { background: url(../img/bg_topmenu_red_round.gif); }
+#TopMenu td.menu_JBcom { background: #b70000 ; }
+#TopMenu td.menu_JBorg { background: #b70000 ; }
+#TopMenu td.menu_RH { background: #b70000 ; }
+#TopMenu td.menu_JBnetwork a:hover { background: url(../img/bg_topmenu_red_round_over.gif); }
+#TopMenu td.menu_JBcom a:hover { background: #800000 ; }
+#TopMenu td.menu_JBorg a:hover { background: #800000 ; }
+#TopMenu td.menu_RH a:hover { background: #800000 ; }
+
+
+/* CONTROL MENU ----------------------------------------*/
+#ControlMenu { position: absolute; top: 30px; right: 10px; z-index: 5; text-align: right; }
+#ControlMenu ul { padding-left: 0px; margin: 0px; display: inline; }
+#ControlMenu li { list-style: none; color: #d8d8d8; font: 11px Verdana, Helvetica, Arial, sans-serif; display: inline; }
+#ControlMenu a { color: #666666; text-decoration: none; margin-left: 5px; margin-right: 5px; }
+#ControlMenu a:hover { text-decoration: underline; }
+#ControlMenu form { margin: 0px; padding: 0px; }
+#ControlMenu input.searchbutton { height: 21px; width: 24px; border: none; }
+
+
+/* BREADCRUMB ------------------------------------------*/
+#Breadcrumb { display: none; }
+#Breadcrumb { position: absolute; min-width: 600px; top: 60px; right: 10px; left: 275px; border: 1px solid #6e6e6e; z-index: 5; padding-top: 5px;}
+#Breadcrumb ul { padding-left: 0px; margin: 0px; display: inline; }
+#Breadcrumb li { list-style: none; color: #333333; font: 11px Verdana, Helvetica, Arial, sans-serif; display: inline; }
+#Breadcrumb li.root { color: #666666; font-weight: bold; }
+#Breadcrumb a { color: #005EB6; text-decoration: none; }
+#Breadcrumb a:hover { text-decoration: underline; }
+#Breadcrumb li:before { content: "\00BB \0020"; }
+#Breadcrumb li.root:before { content: " "; }
+
+
+/* BODY ------------------------------------------------*/
+#BodyTable { width: 100%; }
+#BodyTable td { vertical-align: top; }
+#BodyTable td.topheader { height: 102px; }
+#BodyTable td.leftside { width: 219px; padding-bottom: 119px; }
+#BodyTable td.bodycell { font: 11px Verdana, Helvetica, Arial, sans-serif; padding: 0px 30px 119px 0px; }
+#ContentContainer { }
+#ContentContainer h1:first-child { margin-top: 5px; }
+
+
+/* LEFT MENU -------------------------------------------*/
+/*1  10/179/0, 20/166/3, +45 = 226 */
+/*2  8/167/0, 18/154/3, +44 = 219 */
+/* deprecated
+#LeftMenu { margin-right: 44px; border-right: solid 1px white; padding-bottom: 13px; }
+#LeftMenu ul { padding: 0px; margin: 0px; }
+#LeftMenu li { list-style: none; }
+#LeftMenu ul li a { width: 167px; font-weight: bold; padding: 4px 0px 4px 8px; border-top: solid 1px white; }
+#LeftMenu ul ul li a { width: 154px; font-weight: normal; padding: 3px 3px 3px 18px; border-top: none;}
+#LeftMenu ul ul { padding-bottom: 8px; }
+#LeftMenu a { display: block; font: 11px Verdana, Helvetica, Arial, sans-serif; text-decoration: none; }
+#LeftMenu a:link, #LeftMenu a:visited { color: #ffffff; }
+#LeftMenu a:hover { background-color: #cccccc; color: #000000; }
+*/
+/* core */
+#LeftMenu { margin-right: 44px; padding-bottom: 13px; }
+#LeftMenu li { list-style: none; font: 11px Verdana, Helvetica, Arial, sans-serif; }
+#LeftMenu a { display: block; text-decoration: none; color: #ffffff;}
+
+
+/* 1st level */
+#LeftMenu ul {
+  padding: 0px;
+  margin: 0px; 
+}
+#LeftMenu ul li {
+  border-top: solid 1px white;
+}
+#LeftMenu ul li a {
+  width: 167px;
+  padding: 4px 0px 4px 8px;
+  /* 0 + 8 + 167 = 175px */
+  font-weight: bold;
+}
+#LeftMenu ul li a:hover {
+  background-color: #cccccc;
+  color: black;
+}
+
+#LeftMenu ul li.jbworld {
+  background-color: #b86905;
+}
+
+#LeftMenu ul li.jbworld a {
+  color: white;
+}
+
+#LeftMenu ul li.jbworld a:hover {
+  background-color: #c29470;
+}
+
+#LeftMenu ul li.current {
+  background-color: #cccccc;
+}
+#LeftMenu ul li.current a {
+  color: black;
+}
+#LeftMenu ul li.current a:hover {
+  background-color: #F0F0F0;
+}
+
+
+/* 2nd level */
+#LeftMenu ul li ul {
+  padding: 0px 0px 8px 0px;
+  margin: 0px; 
+}
+#LeftMenu ul li ul li {
+  border-top: none;
+}
+#LeftMenu ul li ul li a {
+  width: 154px;
+  padding: 3px 3px 3px 18px;
+  /* 3 + 18 + 154 = 175px */
+  color: white;
+  font-weight: normal;
+}
+#LeftMenu ul li ul li a:hover {
+  background-color: #cccccc;
+}
+#LeftMenu ul li.current ul li a:hover {
+  background-color: #F0F0F0;
+}
+#LeftMenu ul li.current ul li.current {
+  margin: 3px 10px 3px 10px;
+  background-color: #F0F0F0;
+}
+#LeftMenu ul li.current ul li.current a {
+ padding: 5px 3px 2px 8px; 
+  width: 144px;
+  /* 3 + 8 + 144 + 10 + 10 = 175px */
+  color: black;
+  font-weight: bold;
+  font-size: 10px;
+}
+#LeftMenu ul li ul li.current a:hover {
+  text-decoration: underline;
+}
+
+/* 3rd level */
+#LeftMenu ul li.current ul li.current ul {
+  padding: 5px;
+  margin-left: 20px;
+}
+#LeftMenu ul li.current ul li.current ul li {
+  border-top: none;
+  list-style: square;
+}
+#LeftMenu ul li.current ul li.current ul li a {
+  padding: 3px 3px 3px 3px;
+  width: 119px;
+  /* 3 + 3 + 5 + 25 + 10 + 10 = 56 - 175px = 119 */
+  color: black;
+  font-weight: normal;
+  font-size: 10px;
+}
+#LeftMenu ul li.current ul li.current ul li a:hover {
+  text-decoration: underline;
+}
+
+
+
+/* ADS ------------------------------------------------*/
+#LeftAds {}
+#LeftAds .item { margin-top: 10px; margin-bottom: 10px; }
+
+/* FOOTER ---------------------------------------------*/
+
+#footer {
+	position:absolute;
+	font-size:10px;
+	font-family:Verdana, Arial, Helvetica, sans-serif;
+        text-align:center;
+        width: 100%;
+}
+	
+
+ 
+#footer .leftcurve {
+	position: absolute;
+	float: left;
+	width: 123px; 
+	background: transparent url(../img/bg_bottom_red.gif) bottom left no-repeat; 
+	top: -1px;
+	height: 104px;
+	left: 0px;
+ }
+
+
+/* -------------------------------------------------------------------------
+		BRANDING
+	------------------------------------------------------------------------- */
+div.brand_NETWORK #BodyTable { background: transparent url(../img/bg_top_red.gif) top left no-repeat; }
+div.brand_NETWORK #LeftMenu { background: #777777 url(../img/bg_side_btm_red.gif) bottom right no-repeat; }
+div.brand_NETWORK #TopSearch input.searchbutton { background: #ffffff url(../img/btn_go_red.gif) right no-repeat; } 
+div.brand_JEMS #BodyTable { background: transparent url(../img/bg_top_red.gif) top left no-repeat; }
+div.brand_JEMS #LeftMenu { background: #777777 url(../img/bg_side_btm_red.gif) bottom right no-repeat; }
+div.brand_JEMS #TopSearch input.searchbutton { background: #ffffff url(../img/btn_go_red.gif) right no-repeat; } 
+div.brand_DOTCOM #BodyTable { background: transparent url(../img/bg_top_red.gif) top left no-repeat; }
+div.brand_DOTCOM #LeftMenu { background: #777777 url(../img/bg_side_btm_red.gif) bottom right no-repeat; }
+div.brand_DOTCOM #TopSearch input.searchbutton { background: #ffffff url(../img/btn_go_red.gif) right no-repeat; } 
+div.brand_FED #BodyTable { background: transparent url(../img/bg_top_red.gif) top left no-repeat; }
+div.brand_FED #LeftMenu { background: #777777 url(../img/bg_side_btm_red.gif) bottom right no-repeat; }
+div.brand_FED #TopSearch input.searchbutton { background: #ffffff url(../img/btn_go_red.gif) right no-repeat; } 
+
+
+
+/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+	 fancy positioning for footer - DO NOT change unless you know what you're doing
+	 */
+html, body { height: 100%; }
+#container { position: relative; min-height: 100%; height: 100%;}
+html>body #container { height: auto; }
+
+

Added: labs/jbossesb/trunk/product/console/view/css/screen_002.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/screen_002.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/screen_002.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,241 @@
+/* Setup defaults since variable in browsers
+----------------------------------------------- */
+body, div, dd, dt, dl, img, ul, ol, li, p, h1, h2, h3, h4, h5, form, hr, fieldset {
+	margin: 0;
+	padding: 0;
+}
+/* Element Defaults
+----------------------------------------------- */
+html {
+	height: 100%;
+	background-color: #DBD4C6;
+}
+img {
+	border: 0;
+}
+body {
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: small;
+	line-height: 1.25em;
+	color: #362F2D;
+	position: relative;
+	height: 100%;
+	margin-left: auto;
+	margin-right: auto;
+}
+label {
+	font-weight: bold;
+	color: #5E5147;
+}
+input {
+	border: 1px solid #C3BBB6;
+	padding: 4px;
+	margin: 5px 0;
+	background: #fff url(../img/input.bg.gif) 0 0 repeat-x;
+}
+ol, ul {
+	margin: 10px 0px 10px 6px;
+}
+li {
+	margin: 10px 12px;
+}
+fieldset {
+	border: 0;
+}
+/* Layout
+----------------------------------------------- */
+#document {
+	padding: 0 1px;
+	float: left;
+	border-bottom: 1px solid #C3BBB6;
+}
+#header {
+	float: left;
+	width: 758px;
+	height: 46px;
+}
+#container {
+	float: left;
+	width: 758px;
+}
+#sidebar {
+	float: left;
+	width: 190px;
+	margin-top: 96px;
+	padding: 20px 10px 0 10px;
+}
+#content {
+	float: left;
+	width: 548px;
+	margin-top: 75px;
+	padding-top: 5px;
+}
+#footer {
+	clear: both;
+	margin-top: 40px;
+	float: left;
+	padding: 20px;
+	border-top: 1px solid #C3BBB6;
+	background-color: #fff;
+	width: 718px;
+	text-align: right;
+}
+/* General
+----------------------------------------------- */
+.button {
+	font-weight: bold;
+	color: #fff;
+	border: 1px solid #5D1414;
+	height: 26px;
+	background: #fff url(../img/btn.bg.gif) 0 0 repeat-x;
+	border-style: none;
+}
+.center {
+	text-align: center;
+}
+.entry {
+	clear: both;
+	padding-top: 10px;
+}
+.entry .label {
+	float: left;
+	padding-top: 10px;
+	padding-right: 5px;
+	font-weight: bold;
+	width: 150px;
+	text-align: right;
+}
+.entry .output {
+	float: left;
+	width: 250px;
+	padding-top: 10px;
+	text-align: left;
+}
+.entry .input {
+	float: left;
+	width: 250px;
+	text-align: left;
+}
+/* Sidebar
+----------------------------------------------- */
+.notes {
+	text-align: center;
+	font-size: x-small;
+}
+.errors {
+	font-size: small;
+	font-weight: bold;
+	text-align: center;
+	color: #600;
+}
+.errors ul {
+	list-style: none;
+}
+.buttonBox {
+	text-align: center;
+	padding: 5px 0;
+}
+#sidebar p {
+	font-size: x-small;
+	color: #8B7869;
+	line-height: 150%;
+	padding-bottom: 10px;
+}
+#sidebar li {
+	font-size: x-small;
+	color: #8B7869;
+}
+#sidebar h1 {
+	line-height: normal;
+	font-weight: bold;
+	font-size: x-small;
+}
+#sidebar p:hover {
+	color: #362F2D;
+}
+/* Content
+----------------------------------------------- */
+#content .section {
+	float: left;
+	width: 518px;
+	padding: 15px 15px 0 15px;
+}
+#content .section h1 {
+	font-family: "Trebuchet MS", Arial, sans-serif;
+	line-height: normal;
+	font-weight: normal;
+	font-size: large;
+}
+#content .section p {
+	line-height: 150%;
+	padding: 10px 0;
+	font-size: small;
+}
+#content table {
+	width: 100%;
+	border: 1px solid #D2C9C4;
+	border-collapse: collapse;
+}
+#content table caption {
+	padding-bottom: 6px;
+	text-align: left;
+	font-weight: bold;
+}
+#content table thead th {
+	border-left: 1px solid #D2C9C4;
+	background: #fff url(../img/th.bg.gif) 0 100% repeat-x;	
+	border-bottom: 1px solid #D2C9C4;
+	padding: 6px;
+	text-align: left;
+	font-size: small;
+}
+#content table tbody td {
+	border-left: 1px solid #E4DBD5;
+	padding: 4px;
+	border-bottom: 1px solid #D2C9C4;
+	font-size: small;
+}
+#content dt {
+	font-weight: bold;
+	float: left;
+	width: 33%;
+}
+#content dd {
+	padding-left: 10px;
+	float: left;
+	width: 66%;
+}
+/* Header
+----------------------------------------------- */
+#title {
+	float: left;
+	padding: 1px 0 6px 15px;
+}
+#status {
+	color: #C7B299;
+	float: right;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	font-size: x-small;
+	text-align: right;
+	padding-top: 14px;
+	padding-right: 15px;
+}
+#status a {
+	color: #C7B299;
+	text-decoration: none;
+}
+/* Homepage Modifications
+----------------------------------------------- */
+#pgHome #container {
+	background: url(../img/hdr.ad.jpg) 0 0 repeat-x;
+}
+#pgHome #sidebar {
+	margin-top: 207px;
+}
+#pgHome #content {
+	margin-top: 183px;
+}
+#pgHome .button {
+	height: 30px;
+}
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/css/tables.css
===================================================================
--- labs/jbossesb/trunk/product/console/view/css/tables.css	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/css/tables.css	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,526 @@
+/************************************************************** TABLE STYLES */
+
+table caption {
+	font-size: 1.5em;
+	text-align: left;
+	font-weight: bold;
+	padding-bottom: .25em;
+	}
+
+table.creamHalf {
+	width: 279px;
+	background-color: #f7f2d0;
+	background-image: url(/images/rh/corner_table_halfcream_top.png);
+	background-position: top left;
+	background-repeat: no-repeat;
+	}
+	
+table.creamHalf th,
+table.creamHalf td {
+	padding: 3px 8px;
+	border-bottom: 1px solid #fdfbf2;
+	font-weight: normal;
+	}
+	
+table.creamHalf td {
+	text-align: center;
+	}
+	
+table.creamHalf tr.first th {
+	text-align: center;
+	font-weight: bold;
+	padding-top: 12px;
+	}
+	
+table.creamHalf tr th.lastLeft, td.lastLeft {
+	background-image: url(/images/rh/corner_table_halfcream_bottom.png);
+	background-position: bottom left;
+	background-repeat: no-repeat;
+	}
+	
+table.creamHalf tr th.lastRight, td.lastRight {
+	background-image: url(/images/rh/corner_table_halfcream_bottom.png);
+	background-position: bottom right;
+	background-repeat: no-repeat;
+	}
+	
+table.creamHalf tr.last td {
+	padding-bottom: 12px;
+	}
+	
+/* BASIC TABLE 											*/
+/* cols  : class  : colstyles							*/
+/* ----    -----    ---------							*/
+/* 4-col : basic4 : 1-2-3-4								*/
+/* 5-col : basic5 : 1-2-3-4-5							*/
+/* 6-col : basic3 : 1-1-2-2-3-3							*/
+/* 7-col : basic4 : 1-2-2-3-3-4-4						*/
+/* 8-col : basic4 : 1-1-2-2-3-3-4-4						*/
+/* 9-col : basic5 : 1-2-2-3-3-4-4-5-5					*/
+
+div.tableBasic h2 {
+	margin: 25px 0 .5em 0;
+	}
+	
+div.tableBasic p.footnote {
+	margin-top: 0;
+	}
+	
+div.tableBasic table {
+	background: #f7f2d0 url(/images/rh/corner_table_basic_tl.png) top left no-repeat;
+	margin-bottom: 15px;
+	}
+	
+    /* Holly Hack Targets IE Win only \*/
+    * html div.tableBasic table td, th {background: none;}
+    /* End Holly Hack */
+	
+div.tableBasic table th {
+	padding-top: 20px;
+	border-bottom: 2px solid #faf7e5;
+	vertical-align: bottom;
+	}
+	
+div.tableBasic table td {
+	border-bottom: 1px solid #faf7e5;
+	}
+	
+div.tableBasic table th,
+div.tableBasic table td {
+	padding: 8px 11px;
+	}
+	
+div.tableBasic table tr.lastrow td {
+	border-bottom: none;
+	padding-bottom: 20px;
+	}
+	
+div.tableBasic table tr.lastrow td.col1 {
+	background: url(/images/rh/corner_table_basic_bl.png) bottom left no-repeat;
+	}
+	
+div.tableBasic table td div.yes {
+	background: url(/images/rh/table_yesmark.png) 50% no-repeat;
+	height: 10px;
+	width: 100%;
+	}
+	
+div.tableBasic table td div.yes span {
+	display: none;
+	}
+	
+div.tableBasic table td div.no span {
+	display: none;
+	}
+	
+/* types of tables based on how many columns and cell alignment */
+
+div.tableBasic table.basic2 th.col2,
+div.tableBasic table.basic2 th.col2c,
+div.tableBasic table.basic2 th.col2r {
+	background: #ede8c8 url(/images/rh/corner_table_basic2_tr.gif) top right no-repeat;
+	}
+	
+div.tableBasic table.basic2 tr.lastrow td.col2,
+div.tableBasic table.basic2 tr.lastrow td.col2c,
+div.tableBasic table.basic2 tr.lastrow td.col2r {
+	background: #ede8c8 url(/images/rh/corner_table_basic2_br.gif) bottom right no-repeat;
+	}
+
+div.tableBasic table.basic3 th.col3,
+div.tableBasic table.basic3 th.col3c,
+div.tableBasic table.basic3 th.col3r {
+	background: #e2ddbd url(/images/rh/corner_table_basic3_tr.gif) top right no-repeat;
+	}
+	
+div.tableBasic table.basic3 tr.lastrow td.col3,
+div.tableBasic table.basic3 tr.lastrow td.col3c,
+div.tableBasic table.basic3 tr.lastrow td.col3r {
+	background: #e2ddbd url(/images/rh/corner_table_basic3_br.gif) bottom right no-repeat;
+	}
+	
+div.tableBasic table.basic4 th.col4,
+div.tableBasic table.basic4 th.col4c,
+div.tableBasic table.basic4 th.col4r {
+	background: #d9d5b5 url(/images/rh/corner_table_basic4_tr.png) top right no-repeat;
+	}
+	
+div.tableBasic table.basic4 tr.lastrow td.col4,
+div.tableBasic table.basic4 tr.lastrow td.col4c,
+div.tableBasic table.basic4 tr.lastrow td.col4r {
+	background: #d9d5b5 url(/images/rh/corner_table_basic4_br.png) bottom right no-repeat;
+	}
+	
+div.tableBasic table.basic5 th.col5,
+div.tableBasic table.basic5 th.col5c,
+div.tableBasic table.basic5 th.col5r {
+	background: #c6c2a6 url(/images/rh/corner_table_basic5_tr.png) top right no-repeat;
+	}
+	
+div.tableBasic table.basic5 tr.lastrow td.col5,
+div.tableBasic table.basic5 tr.lastrow td.col5c,
+div.tableBasic table.basic5 tr.lastrow td.col5r {
+	background: #c6c2a6 url(/images/rh/corner_table_basic5_br.png) bottom right no-repeat;
+	}
+	
+/* left-align and background colors */
+	
+div.tableBasic table th.col2,
+div.tableBasic table td.col2,
+div.tableBasic table th.col2c,
+div.tableBasic table td.col2c,
+div.tableBasic table th.col2r,
+div.tableBasic table td.col2r {
+	background-color: #ede8c8;
+	}
+	
+div.tableBasic table th.col3,
+div.tableBasic table td.col3,
+div.tableBasic table th.col3c,
+div.tableBasic table td.col3c,
+div.tableBasic table th.col3r,
+div.tableBasic table td.col3r {
+	background-color: #e2ddbd;
+	}
+	
+div.tableBasic table th.col4,
+div.tableBasic table td.col4,
+div.tableBasic table th.col4c,
+div.tableBasic table td.col4c,
+div.tableBasic table th.col4r,
+div.tableBasic table td.col4r {
+	background-color: #d9d5b5;
+	}
+	
+div.tableBasic table th.col5,
+div.tableBasic table td.col5,
+div.tableBasic table th.col5c,
+div.tableBasic table td.col5c,
+div.tableBasic table th.col5r,
+div.tableBasic table td.col5r {
+	background-color: #c6c2a6;
+	}
+	
+/* center-align */
+	
+div.tableBasic table th.col2c,
+div.tableBasic table td.col2c,
+div.tableBasic table th.col3c,
+div.tableBasic table td.col3c,
+div.tableBasic table th.col4c,
+div.tableBasic table td.col4c,
+div.tableBasic table th.col5c,
+div.tableBasic table td.col5c {
+	text-align: center;
+	}
+	
+/* right-align */
+	
+div.tableBasic table th.col2r,
+div.tableBasic table td.col2r,
+div.tableBasic table th.col3r,
+div.tableBasic table td.col3r,
+div.tableBasic table th.col4r,
+div.tableBasic table td.col4r,
+div.tableBasic table th.col5r,
+div.tableBasic table td.col5r {
+	text-align: right;
+	}
+
+/* special lastrow for /software/rhel/comparison */
+
+div.tableBasic table tr.lastrowSpecial td.col5f {
+	background: #c6c2a6 url(/images/rh/corner_table_basic5_bl.png) bottom left no-repeat;
+	}
+	
+div.tableBasic table.basic5 td.col5f {
+	background-color: #c6c2a6;
+	}
+	
+table.errata-timeline {
+	width: 550px;
+	border: 1px solid #333;
+	margin-bottom: 20px;
+	border-collapse: collapse;
+	}
+	
+table.errata-timeline td.full,
+table.errata-timeline td.deploy {
+	border-right: 1px solid #333;
+	}
+	
+table.errata-timeline td.full {
+	background-color: #eee;
+	width: 160px;
+	}
+	
+table.errata-timeline td.deploy {
+	background-color: #ccc;
+	width: 35px;
+	}
+	
+table.errata-timeline td.maintain {
+	background-color: #999;
+	border-left: 1px solid #333;
+	width: 350;
+	}
+	
+table.errata-timeline th {
+	border-top: 2px solid #000;
+	border-right: 1px solid #333;
+	text-align: right;
+	}
+
+/* rhn-like tables for direct renewals */
+
+table.contracts {
+	font-size: 10px;
+	background-color: #fff;
+	border-top: 2px solid #c6c2a6;
+	border-bottom: 0px;
+	padding: 0px;
+	margin: 0px 0px 25px 1px;
+	border-collapse: collapse;
+	width: 689px;
+	border-left: 1px solid #b4b19a;
+	border-right: 1px solid #b4b19a;
+}
+
+/* Holly Hack Targets IE Win only \*/
+    * html table.contracts {background-image: none;}
+    /* End Holly Hack */
+
+table.contracts tr.contractRowHeader	{
+	font-style: italic;
+	font-size: smaller;
+	background-color: #b4b19a;
+	border-bottom: 2px solid #c6c2a6;
+	}
+
+table.contracts tr.contractName {
+	background-color: #b4b19a;
+	font-weight: bold;
+	}
+
+table.contracts td.contractNo	{
+	padding-left: 7px;
+	font-size: small;
+	}
+
+table.contracts tr.contractEvenRow	{
+	background-color: #e2ddbd;
+	}
+
+table.contracts td.contractSubFirst	{
+	padding-left: 15px;
+	}
+
+table.contracts td.contractSubLast    {
+        text-align: right;
+	padding-right: 7px;
+        }
+
+table.contracts td.contractSubLast a	{
+	vertical-align: top;
+	}
+
+table.contracts tr.contractRenew	{
+	background-color: #b4b19a;
+	border-top: 2px solid #c6c2a6;
+	}
+
+table.contracts tr.contractRenew td	{
+	text-align: right;
+	padding-right: 7px;
+	}
+
+table.contracts tr.contractRenewNo        {
+        background-color: #b4b19a;
+        border-top: 2px solid #c6c2a6;
+        }
+
+table.contracts-pagination {
+	font-size: smaller;
+}
+
+.contracts-checkbox {
+	text-align: center;
+	border-left: 1px solid #b4b19a;
+}
+
+.contracts-checkbox-header {
+	text-align: center;
+}
+
+.contracts th a {
+	display: inline;
+	}
+
+.contracts a:hover {
+	text-decoration: underline;
+}
+
+/* contracts row classes */
+.contracts-row-even td{
+	background-color: #F1EBDC;
+}
+.contracts-row-odd td {
+        background-color: #ffffff;
+}
+.contracts-row-summary {
+	text-align: right;
+	font-weight: bold;
+	border: 1px solid #ccc;
+	background-color: #eee;
+}
+.contracts-row-even td, .contracts-row-odd td, .contracts-row-summary td {
+	padding: 4px 8px;
+}
+
+.contracts-horiz-separator hr {
+	border: 0;
+	border-bottom: 1px solid #ccc;
+	padding: 0px;
+}
+
+
+/* default class def for row color toggling */
+.contracts-row-even-selected {
+        background-color: #dde5ff;
+}
+.contracts-row-odd-selected {
+        background-color: #dde5ff;
+}
+
+.contracts-row-odd-selected td, .list-row-even-selected td {
+	border-bottom: 1px solid #ccc;
+	padding: 4px 8px;
+}
+
+/* store tables */
+
+
+table.store	{
+	width:100%;
+	margin: 0;
+	padding: 0;
+	border-collapse: collapse;
+	border-top: 1px solid #B5B5B5;
+	}
+	
+tr.storeRowHeader td {
+	background: #DDD;
+	font-weight:bold;
+	padding: 5px 0px 3px 0px;
+	margin: 0;
+	}
+	
+td.cartPrice { text-align: right; }
+	
+table.store td, table.checkout, #storeTotal td, .checkout { font-size: 11px; padding: 4px 0; }
+
+
+table.store tr.storeRowAddTo	{
+	border-bottom: 2px solid #b4b19a;
+	}
+
+table.store td.storeBold	{
+	font-weight: bold;
+	}
+
+tr.storeRowAddTo td	{
+	padding: 10px 0px 10px 5px;
+        margin: 0;
+        }
+
+table.store td.lastRowTotal {
+	text-align: right;
+	padding-right: 5px;
+	}
+	
+table.checkout	{
+	width: 100%;
+	margin: 0;
+	padding: 0;
+	border-collapse: collapse;
+	font-size: 12px;
+	}
+	
+.checkoutInfo {
+	margin-left: 30px;
+	font-size: 12px; 
+	}
+	
+#storeTotal {
+	width: 100%; 
+	}
+	
+#storeTotal td {
+	border-top: 10px solid #EEE;
+	border-bottom: 2px solid #ccc;
+	padding: 10px 0;
+	font-size: 12px; 
+	}
+	
+#storeAgreement {
+	width: 100%;
+	border-top: 1px solid #CCC;
+	border-bottom: 1px solid #CCC;
+	padding: 1px 0;
+	margin-bottom: 10px;
+	margin-top: 15px; 
+	}
+	
+#storeAgreement td {
+	font-size: larger;
+	padding: 5px 25px 7px;
+	background: #EEE;
+	vertical-align: middle; 
+	}
+	
+#storeButtons {
+	width: 100%;
+	margin: 20px 0 0 0;
+	padding: 0;
+	border-collapse: collapse; }
+	
+#storeButtons td, .store td { 
+	margin: 0; 
+	padding: 0; 
+	}
+
+table.checkout .asterisk {
+	font-size: 12px;	
+	color: #c00;
+	font-weight: bold;
+	}
+
+table.checkout tr.checkoutRowHeader td {
+	font-size: 14px;
+	font-weight: bold;
+	padding-bottom: 7px;
+	}
+
+table.checkout tr.checkoutRowHeader td.alignRight {
+	text-align: right;
+	}
+
+td.checkoutError {
+	color: #c00;
+	font-weight: bold;
+	padding-top: 7px;
+	padding-bottom: 5px;
+	}
+
+table.checkout tr.contractRowHeader    {
+        font-style: italic;
+        font-size: smaller;
+        border-bottom: 2px solid #c6c2a6;
+        }
+table.checkout tr.contractLastRow	{
+	border-top: 2px solid #c6c2a6;
+	}
+table.checkout td.alignRight {
+	text-align: right;
+        }
+

Added: labs/jbossesb/trunk/product/console/view/error.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/error.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/error.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,27 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h1>Error</h1>
+	
+	<div class="section">
+		An error occured during the last operation.  Please check the Tomcat Console.
+	</div>
+
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Configuration Wizard</h1>
+	<p>
+	Select the ESB Configuration Wizard appropriate to your current task.	
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/home.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/home.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/home.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,39 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h1>ESB Administration Console</h1>
+	
+	<div class="section">
+		<h2>Message Contract Configurations:</h2>
+		<ul>
+			<li><s:link action="#{newContract.showForm}" value="Configure New Message Contract" /></li>
+			<li><s:link action="#{manageContracts.list}" value="Manage Message Contract Configurations" /></li>
+		</ul>
+	</div>
+	
+	<div class="section">
+		<h2>Transformation Configurations:</h2>
+		<ul>
+			<li><s:link action="#{newResource.captureResourceDetailsConfiguration}" value="Configure New Transformation/Analysis Resource" /></li>
+			<li><s:link action="#{manageResources.list}" value="Manage Transformation/Analysis Configurations" /></li>
+		</ul>
+	</div>
+
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Configuration Wizard</h1>
+	<p>
+	Select the ESB Configuration Wizard appropriate to your current task.	
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/img/bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/bg_bottom_red.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/bg_bottom_red.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/bg_side_btm_red.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/bg_side_btm_red.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/bg_top_red.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/bg_top_red.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/bg_topmenu_red_round.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/bg_topmenu_red_round.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/btn.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/btn.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/cnt.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/cnt.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_blue.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_blue.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_green.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_green.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_red.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_red.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_yellow.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/crn_left_bot_yellow.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/gradient_news_bkgd_650.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/gradient_news_bkgd_650.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/hdr.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/hdr.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/input.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/input.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/logo.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/logo.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/rh/points.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/rh/points.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tl.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tl.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tr.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/rh/table_corner_tr.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/sdb.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/sdb.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/table_corner_tl.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/table_corner_tl.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/table_corner_tr.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/table_corner_tr.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/img/th.bg.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/trunk/product/console/view/img/th.bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossesb/trunk/product/console/view/index.html
===================================================================
--- labs/jbossesb/trunk/product/console/view/index.html	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/index.html	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,5 @@
+<html>
+<head>
+  <meta http-equiv="Refresh" content="0; URL=home.jsf">
+</head>
+</html>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/template.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/template.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/template.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+	  xmlns:s="http://jboss.com/products/seam/taglib"
+      xmlns:f="http://java.sun.com/jsf/core"
+	  xmlns:h="http://java.sun.com/jsf/html">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<title>JBoss ESB: Administration Console</title>
+	<link href="css/screen.css" rel="stylesheet" type="text/css" />
+	<link rel="stylesheet" href="css/custom.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="css/global.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="css/headings.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="css/layout.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="css/navigation.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="css/pagelayout.css" type="text/css" media="all"/>
+	<link rel="stylesheet" href="css/tables.css" type="text/css" media="all" />
+	
+	<link rel="stylesheet" href="css/screen_001.css" type="text/css" media="screen" />
+	<link rel="stylesheet" href="css/print.css" type="text/css" media="print" />
+	<link rel="stylesheet" href="css/common.css" type="text/css" media="all" />
+</head>
+<body>
+
+<div id="document">
+	<div id="header">
+		<div>
+		  <a href="http://www.jboss.com"><img src="http://www.jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+		</div>
+		
+		<div id="TopMenu">
+		  <table cellpadding="0" cellspacing="0">
+		  <tr>
+		    <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+		    <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+		
+		    <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+		    <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+		  </tr>
+		  </table>
+		</div>	
+	</div>
+	<div id="container">
+		<div id="sidebar">
+			<ui:insert name="sidebar"/>
+		</div>
+		<div id="content">
+			<ui:insert name="content"/>
+		</div>
+	</div>
+</div>
+<ui:debug hotkey="D"/>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/console/view/transform/add-resource-parameter.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/add-resource-parameter.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/add-resource-parameter.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,61 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+		xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>			
+		<s:validateAll>
+			<div class="section">
+				<h2>Add Resource Parameter</h2>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Name">Name:</h:outputLabel></div>
+					<div class="input">
+						<h:inputText id="Name" value="#{transResourceParameter.name}" required="true" />
+						<br/><span class="errors"><h:message for="Name" /></span>
+					</div>
+				</div>
+				<div class="entry">
+					<div class="label"><h:outputLabel for="Value">Value:</h:outputLabel></div>
+					<div class="input">
+						<h:inputTextarea id="Value" value="#{transResourceParameter.value}" cols="100" rows="30" required="true" />
+						<br/><span class="errors"><h:message for="Value" /></span>
+					</div>
+				</div>
+				<div class="entry errors"><h:messages globalOnly="true"/></div>
+				
+				<div class="entry">
+					<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+					<div class="input">
+						<h:commandButton value="Add" action="#{newResource.addParameter}" class="button"/>
+					</div>
+				</div>
+			</div>
+		</s:validateAll>
+	</h:form>
+	<h:form>
+		<div class="section">
+			<div class="entry">
+				<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+				<div class="input">
+					<h:commandButton value="Cancel" action="#{newResource.cancelAddParameter}" class="button"/>
+				</div>
+			</div>		
+		</div>
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<b><h:outputLink value="select-message-flow-from-epr.jsf"><f:verbatim>Set Message Flow</f:verbatim></h:outputLink></b>
+	<p/>
+	<h1>Create Transformation/Analysis Configuration</h1>
+	Create a message transformation/analysis configuration for the chosen Message Flow.
+	<p/>
+</ui:define>
+
+</ui:composition>

Added: labs/jbossesb/trunk/product/console/view/transform/list-resources-as-smooks-config.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/list-resources-as-smooks-config.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/list-resources-as-smooks-config.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE smooks-resource-list PUBLIC "-//MILYN//DTD SMOOKS 1.0//EN" "http://www.milyn.org/dtd/smooksres-list-1.0.dtd">
+
+<smooks-resource-list xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
+						
+	<h:outputText value="#{allResourceConfigs}" escape="false">
+		<f:converter converterId="SmooksResourceListConverter"/>
+	</h:outputText>
+
+</smooks-resource-list>

Added: labs/jbossesb/trunk/product/console/view/transform/list-resources.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/list-resources.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/list-resources.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,61 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<div class="section">
+	<fieldset>
+		<h:form>			
+			<h2>Manage Resource Configuration</h2>
+			<div class="section">
+				This wizard lists all message Transformation/Analysis resource configurations targeted at the current message flow.
+			</div>
+			<div class="section">			
+				<div class="entry">
+					<div class="label"><h:outputLabel for="MessageFlow">Selected Message Flow:</h:outputLabel></div>
+					<div class="output">
+						<f:verbatim id="MessageFlow">#{messageFlow.flowAsHtml}</f:verbatim>
+					</div>
+				</div>
+			</div>
+			<div class="section">
+		    <h:outputText value="There are no Resource Configurations targeted at the current Message Flow!" rendered="#{messageFlowConfigs != null and messageFlowConfigs.rowCount==0}"/>
+		    <h:dataTable value="#{messageFlowConfigs}" var="configSelection" rendered="#{messageFlowConfigs.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header">Execution Selector</f:facet>
+				    #{configSelection.selector}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Applied Resource</f:facet>
+				    #{configSelection.path}
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Manage</f:facet>
+				    <h:commandLink action="#{manageResources.viewConfiguration}">View</h:commandLink>
+				    <f:verbatim>|</f:verbatim>
+				    <h:commandLink action="#{manageResources.deleteConfiguration}">Delete</h:commandLink>
+		        </h:column>
+		    </h:dataTable>
+			</div>
+		</h:form>
+		<h:form>			
+			<div class="section">
+				<s:link action="#{manageResources.close}" value="Done" linkStyle="button" buttonClass="button" />
+			</div>	
+		</h:form>
+	</fieldset>
+</div>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<b><h:outputLink value="select-message-flow-from-epr.jsf"><f:verbatim>Set Message Flow</f:verbatim></h:outputLink></b>
+	<p/>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-create.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-create.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-create.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,89 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<div class="section">
+	<h:form>
+	<fieldset>
+		<h:form>			
+			<s:validateAll>
+				<h2>Configure New Resource</h2>
+				<div class="section">
+					Define the resource configuration by specifying the Transformation/Analysis Resource and its execution Parameter Set.  The
+					Resource can be a Java class for performing DOM based transformation/analysis 
+					(see <a href="http://milyn.codehaus.org/javadoc/smooks">ElementVisitor</a>), an XSL Transformation template (XSLT) defined 
+					in a .xsl file, or any other supported transformation technology (see <a href="http://milyn.codehaus.org/javadoc/smooks">ContentDeliveryUnitCreator</a>).
+					All XML based transformation/analysis resources are targeted at message fragments, giving more fine grained control.
+				</div>
+				<div class="section">
+					<div class="entry">
+						<div class="label"><h:outputLabel for="Resource">Resource:</h:outputLabel></div>
+						<div class="input">
+							<h:inputText id="Resource" value="#{transResource.path}" />
+							<br/><span class="errors"><h:message for="Resource" /></span>
+						</div>
+					</div>
+				</div>
+
+				<div class="section">
+				    <h:dataTable value="#{parameterList}" var="parameterSelection" rendered="#{parameterList.rowCount>0}">
+				        <h:column>
+				            <f:facet name="header">Parameter Name</f:facet>
+						    #{parameterSelection.name}
+				        </h:column>
+				        <h:column>
+				            <f:facet name="header">Parameter Value</f:facet>
+						    <pre>#{parameterSelection.value}</pre>
+				        </h:column>
+				    </h:dataTable>
+				</div>
+
+				<div class="section">
+					<div class="entry errors"><h:messages globalOnly="true"/></div>
+					
+					<div class="entry">
+						<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+						<div class="input">
+							<h:commandButton value="Add Resource Parameter..." action="/transform/add-resource-parameter.xhtml" class="button"/>
+						</div>
+					</div>
+					<div class="entry">
+						<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+						<div class="input">
+							<h:commandButton value="Next..." action="/transform/new-trans-resource-target.xhtml" class="button"/>
+						</div>
+					</div>
+				</div>		
+			</s:validateAll>
+		</h:form>
+	</fieldset>
+	</h:form>
+	<h:form>
+		<div class="section">
+			<div class="entry">
+				<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+				<div class="input">
+					<h:commandButton value="Cancel" action="#{newResource.cancel}" class="button"/>
+				</div>
+			</div>		
+		</div>
+	</h:form>
+</div>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<b><h:outputLink value="select-message-flow-from-epr.jsf"><f:verbatim>Set Message Flow</f:verbatim></h:outputLink></b>
+	<p/>
+	<h1>Create Transformation/Analysis Configuration</h1>
+	Create a message transformation/analysis configuration for the chosen Message Flow.
+	<p/>
+</ui:define>
+
+</ui:composition>

Added: labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-target.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-target.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/new-trans-resource-target.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,80 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<div class="section">
+	<fieldset>
+		<h:form>			
+			<s:validateAll>
+				<h2>Target New Resource Configuration</h2>
+				<div class="section">
+					The new Transformation/Analysis configuration needs to be targeted at a specific "Message Useragent" and execution "Selector" combination.  The
+					Message Useragent field defines an expression  that identifies the physical message at which the transformation/analysis configuration is to be targeted.  This has already been
+					defined through setting of the Message Flow (but can be manually modified).  Defining the execution "Selector" depends on the actual transformation/analysis resource.  
+					If the resource is a unit of Java/XSLT/etc logic for performing an XML transformation on an XML Fragment, the "Selector"
+					will be the XML element name (possibly contextual).  See <a href="http://milyn.codehaus.org/javadoc/smooks">SmooksResourceConfiguration</a>.
+				</div>
+				<div class="section">
+					<div class="entry">
+						<div class="label"><h:outputLabel for="MessageUseragent">Message Targeting Useragent Expression:</h:outputLabel></div>
+						<div class="input">
+							<h:inputText id="MessageUseragent" value="#{transResource.useragent}" size="100" required="true" />
+							<br/><span class="errors"><h:message for="MessageUseragent" /></span>
+						</div>
+					</div>
+					<div class="entry">
+						<div class="label"><h:outputLabel for="Selector">Execution Selector:</h:outputLabel></div>
+						<div class="input">
+							<h:inputText id="Selector" value="#{transResource.selector}" required="true" />
+							<br/><span class="errors"><h:message for="Selector" /></span>
+						</div>
+					</div>
+					<div class="entry">
+						<div class="label"><h:outputLabel for="Selector-Namespace">Execution Selector-Namespace:</h:outputLabel></div>
+						<div class="input">
+							<h:inputText id="Selector-Namespace" value="#{transResource.namespace}" required="false" />
+							<br/><span class="errors"><h:message for="Selector-Namespace" /></span>
+						</div>
+					</div>
+	
+					<div class="entry errors"><h:messages globalOnly="true"/></div>
+					
+					<div class="entry">
+						<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+						<div class="input">
+							<h:commandButton value="Save Configuration" action="#{newResource.save}" class="button"/>
+						</div>
+					</div>		
+				</div>
+			</s:validateAll>
+		</h:form>
+	</fieldset>
+	<h:form>
+		<div class="section">
+			<div class="entry">
+				<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+				<div class="input">
+					<h:commandButton value="Cancel" action="#{newResource.cancel}" class="button"/>
+				</div>
+			</div>		
+		</div>
+	</h:form>
+</div>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<b><h:outputLink value="select-message-flow-from-epr.jsf"><f:verbatim>Set Message Flow</f:verbatim></h:outputLink></b>
+	<p/>
+	<h1>Create Transformation/Analysis Configuration</h1>
+	Create a message transformation/analysis configuration for the chosen Message Flow.
+	<p/>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/select-message-flow-finish.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/select-message-flow-finish.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/select-message-flow-finish.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,41 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>
+		<h2>Select Message Flow : <i>Finished...</i></h2>
+		<div class="section">
+			Review selected message flow...
+		</div>
+		
+		<div class="section">			
+			<div class="entry">
+				<div class="label"><h:outputLabel for="MessageFlow">Selected Message Flow:</h:outputLabel></div>
+				<div class="output">
+					<f:verbatim id="MessageFlow">#{messageFlow.flowAsHtml}</f:verbatim>
+				</div>
+			</div>
+		</div>
+
+		<div class="section">
+			<s:link action="#{transConfigRejoin.rejoin}" value="Done" linkStyle="button" buttonClass="button" />
+		</div>
+
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Message Flow</h1>
+	<p>
+		Select the message flow on which you would like to perform message transformation configurations.
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-epr.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-epr.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-epr.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,54 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>
+		<h2>Select Message Flow : <i>From EPR...</i></h2>
+		<div class="section">
+			Select the Message Flow to be associated with all Transformation/Analysis Configurations made on the current browser session.  Note that you don't
+			have to specify a complete message flow.  The selected message flow can, for example, simply be the "From EPR" i.e. you may wish to define/browse
+			message transformation/analysis configurations for all messages produced by a specific Service EPR.  Any combination is supported.
+			<p/>
+			If you wish to cover all message flows (i.e. browse all configurations -OR - create a configuration targeted at all message flows), simply 
+			"reset" the current flow and click through the selection screens without selecting any Message Flow properties.
+		</div>
+
+		<div class="section">
+		    <h:outputText value="No From EPR Definitions Found" rendered="#{fromEPRs != null and fromEPRs.rowCount==0}"/>
+		    <h:dataTable value="#{fromEPRs}" var="eprFromSelection" rendered="#{fromEPRs.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header"><f:verbatim>&#160;</f:verbatim></f:facet>
+		    		<h:outputText value="+" rendered="#{eprFromSelection.id==messageFlow.fromEPR.id}"/>
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">From EPRs</f:facet>
+				    <s:link action="#{messageFlowSelect.selectFromEPR}" value="#{eprFromSelection.uri}" />
+		        </h:column>
+		    </h:dataTable>
+		</div>
+
+		<div class="section">
+			<h:commandButton value="Continue..." action="next" class="button" />
+		</div>
+		<div class="section">
+			<h:commandButton value="Cancel" action="cancel" class="button" />
+		</div>
+
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Message Flow</h1>
+	<p>
+		Select the message flow on which you would like to perform message transformation configurations.
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-type.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-type.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/select-message-flow-from-type.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,51 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>
+		<h2>Select Message Flow : <i>Message Contract (<b>From</b>)...</i></h2>
+		
+		<div class="section">
+		    <f:verbatim rendered="#{fromMessageTypes != null and fromMessageTypes.rowCount==0}">
+		    	Sorry, there are no <u>PRODUCES</u> Message Contracts defined for the selected "From" EPR "<b>#{messageFlow.fromEPR}</b>".
+		    	<p/>
+		    	Message Contract definitions can be created from the main menu.
+		    </f:verbatim>	
+
+		    <h:dataTable value="#{fromMessageTypes}" var="messageTypeSelection" rendered="#{fromMessageTypes.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header"><f:verbatim>&#160;</f:verbatim></f:facet>
+		    		<h:outputText value="+" rendered="#{messageTypeSelection.id==messageFlow.fromMessageType.id}"/>
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Messages <u>Produced</u> by EPR "<i>#{messageFlow.fromEPR}</i>"</f:facet>
+				    <s:link action="#{messageFlowSelect.selectFromMessageType}" value="#{messageTypeSelection}" />
+		        </h:column>
+		    </h:dataTable>
+		</div>
+
+		<div class="section">
+			<h:commandButton value="Continue..." action="next" class="button" />
+		</div>
+		<div class="section">
+			<h:commandButton value="Cancel" action="cancel" class="button" />
+		</div>
+
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Message Flow</h1>
+	<p>
+		Select the message flow on which you would like to perform message transformation configurations.
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-epr.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-epr.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-epr.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,45 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>
+		<h2>Select Message Flow : <i>To EPR...</i></h2>
+
+		<div class="section">
+		    <h:outputText value="No EPR Definitions Found" rendered="#{toEPRs != null and toEPRs.rowCount==0}"/>
+		    <h:dataTable value="#{toEPRs}" var="eprToSelection" rendered="#{toEPRs.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header"><f:verbatim>&#160;</f:verbatim></f:facet>
+		    		<h:outputText value="+" rendered="#{eprToSelection.id==messageFlow.toEPR.id}"/>
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">To EPRs</f:facet>
+				    <s:link action="#{messageFlowSelect.selectToEPR}" value="#{eprToSelection.uri}" />
+		        </h:column>
+		    </h:dataTable>
+		</div>
+
+		<div class="section">
+			<h:commandButton value="Continue..." action="next" class="button" />
+		</div>
+		<div class="section">
+			<h:commandButton value="Cancel" action="cancel" class="button" />
+		</div>
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Message Flow</h1>
+	<p>
+		Select the message flow on which you would like to perform message transformation configurations.
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-type.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-type.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/select-message-flow-to-type.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,51 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<h:form>
+		<h2>Select Message Flow : <i>Message Contract (<b>To</b>)...</i></h2>
+		
+		<div class="section">
+		    <f:verbatim rendered="#{toMessageTypes != null and toMessageTypes.rowCount==0}">
+		    	Sorry, there are no <u>CONSUMES</u> Message Contracts defined for the selected "To" EPR "<b>#{messageFlow.toEPR}</b>".
+		    	<p/>
+		    	Message Contract definitions can be created from the main menu.
+		    </f:verbatim>	
+		    
+		    <h:dataTable value="#{toMessageTypes}" var="messageTypeSelection" rendered="#{toMessageTypes.rowCount>0}">
+		        <h:column>
+		            <f:facet name="header"><f:verbatim>&#160;</f:verbatim></f:facet>
+		    		<h:outputText value="+" rendered="#{messageTypeSelection.id==messageFlow.toMessageType.id}"/>
+		        </h:column>
+		        <h:column>
+		            <f:facet name="header">Messages <u>Consumed</u> by EPR "<i>#{messageFlow.toEPR}</i></f:facet>
+				    <s:link action="#{messageFlowSelect.selectToMessageType}" value="#{messageTypeSelection}" />
+		        </h:column>
+		    </h:dataTable>
+		</div>
+
+		<div class="section">
+			<h:commandButton value="Continue..." action="next" class="button" />
+		</div>
+		<div class="section">
+			<h:commandButton value="Cancel" action="cancel" class="button" />
+		</div>
+
+	</h:form>
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+	<h1>Select Message Flow</h1>
+	<p>
+		Select the message flow on which you would like to perform message transformation configurations.
+	</p>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file

Added: labs/jbossesb/trunk/product/console/view/transform/smooks.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/smooks.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/smooks.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,18 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+	<s:link action="#{listAllResources.list}" value="List Smooks Resources" />
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+</ui:define>
+
+</ui:composition>

Added: labs/jbossesb/trunk/product/console/view/transform/template.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/template.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/template.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+	  xmlns:s="http://jboss.com/products/seam/taglib"
+      xmlns:f="http://java.sun.com/jsf/core"
+	  xmlns:h="http://java.sun.com/jsf/html">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+	<title>JBoss ESB: Administration Console</title>
+	<link href="../css/screen.css" rel="stylesheet" type="text/css" />
+	<link rel="stylesheet" href="../css/custom.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/global.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/headings.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/layout.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/navigation.css" type="text/css" media="all" />
+	<link rel="stylesheet" href="../css/pagelayout.css" type="text/css" media="all"/>
+	<link rel="stylesheet" href="../css/tables.css" type="text/css" media="all" />
+	
+	<link rel="stylesheet" href="../css/screen_001.css" type="text/css" media="screen" />
+	<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+	<link rel="stylesheet" href="../css/common.css" type="text/css" media="all" />
+</head>
+<body>
+
+<div id="document">
+	<div id="header">
+		<div>
+		  <a href="http://www.jboss.com"><img src="http://www.jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+		</div>
+		
+		<div id="TopMenu">
+		  <table cellpadding="0" cellspacing="0">
+		  <tr>
+		    <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+		    <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+		
+		    <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+		    <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+		  </tr>
+		  </table>
+		</div>	
+	</div>
+	<div id="container">
+		<div id="sidebar">
+			<b><h:outputLink value="../home.jsf"><f:verbatim>Home</f:verbatim></h:outputLink></b>
+			<p/>
+			<ui:insert name="sidebar"/>
+		</div>
+		<div id="content">
+			<ui:insert name="content"/>
+		</div>
+	</div>
+</div>
+<ui:debug hotkey="D"/>
+</body>
+</html>

Added: labs/jbossesb/trunk/product/console/view/transform/view-resource.xhtml
===================================================================
--- labs/jbossesb/trunk/product/console/view/transform/view-resource.xhtml	2006-11-10 17:05:12 UTC (rev 7534)
+++ labs/jbossesb/trunk/product/console/view/transform/view-resource.xhtml	2006-11-10 18:42:09 UTC (rev 7535)
@@ -0,0 +1,70 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:f="http://java.sun.com/jsf/core"
+				xmlns:s="http://jboss.com/products/seam/taglib"
+                template="template.xhtml">
+
+<!-- content -->
+<ui:define name="content">
+
+	<h2>Resource Configuration View</h2>
+	<div class="section">
+		<div class="entry">
+			<div class="label"><h:outputLabel for="Resource">Applied Resource:</h:outputLabel></div>
+			<div class="output">
+				<f:verbatim id="Resource">#{selectedConfig.path}</f:verbatim>
+			</div>
+		</div>
+		<div class="entry">
+			<div class="label"><h:outputLabel for="Selector">Execution Selector:</h:outputLabel></div>
+			<div class="output">
+				<f:verbatim id="Selector">#{selectedConfig.selector}</f:verbatim>
+			</div>
+		</div>
+		<div class="entry">
+			<div class="label"><h:outputLabel for="SelectorNamespace">Execution Selector Namespace:</h:outputLabel></div>
+			<div class="output">
+				<f:verbatim id="SelectorNamespace">#{selectedConfig.namespace}</f:verbatim>
+			</div>
+		</div>
+		<div class="entry">
+			<div class="label"><h:outputLabel for="MessageUseragent">Target Message Useragent Expression:</h:outputLabel></div>
+			<div class="output">
+				<f:verbatim id="MessageUseragent">#{selectedConfig.useragent}</f:verbatim>
+			</div>
+		</div>
+	</div>
+
+	<div class="section">
+	    <h:dataTable value="#{selectedConfigParams}" var="parameterSelection" rendered="#{selectedConfigParams.rowCount>0}">
+	        <h:column>
+	            <f:facet name="header">Parameter Name</f:facet>
+			    #{parameterSelection.name}
+	        </h:column>
+	        <h:column>
+	            <f:facet name="header">Parameter Value</f:facet>
+			    <pre>#{parameterSelection.value}</pre>
+	        </h:column>
+	    </h:dataTable>
+	</div>
+
+	<div class="section">
+		<div class="entry">
+			<div class="label"><f:verbatim>&#160;</f:verbatim></div>
+			<div class="input">
+				<s:link action="#{manageResources.list}" value="Back" linkStyle="button" buttonClass="button" />
+			</div>
+		</div>		
+	</div>
+	
+</ui:define>
+
+<!-- sidebar -->
+<ui:define name="sidebar">
+			<b><h:outputLink value="select-message-flow-from-epr.jsf"><f:verbatim>Set Message Flow</f:verbatim></h:outputLink></b>
+			<p/>
+</ui:define>
+
+</ui:composition>
\ No newline at end of file




More information about the jboss-svn-commits mailing list