You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2008/04/22 14:40:38 UTC
svn commit: r650484 - in /servicemix/sandbox/gertv/smx-sling: ./
servicemix-audit-jcr/ servicemix-audit-jcr/src/
servicemix-audit-jcr/src/main/ servicemix-audit-jcr/src/main/java/
servicemix-audit-jcr/src/main/java/org/ servicemix-audit-jcr/src/main/ja...
Author: gertv
Date: Tue Apr 22 05:40:26 2008
New Revision: 650484
URL: http://svn.apache.org/viewvc?rev=650484&view=rev
Log:
Initial commit of sample Sling console
Added:
servicemix/sandbox/gertv/smx-sling/README.TXT
servicemix/sandbox/gertv/smx-sling/pom.xml
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/ (with props)
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingAuditor.java
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/test/
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/test/java/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/ (with props)
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/pom.xml
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/html.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/html.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/tr.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/html.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/div.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/servicemix.json
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/master.css
Added: servicemix/sandbox/gertv/smx-sling/README.TXT
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/README.TXT?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/README.TXT (added)
+++ servicemix/sandbox/gertv/smx-sling/README.TXT Tue Apr 22 05:40:26 2008
@@ -0,0 +1,34 @@
+Just my personal try-out for building a Sling-based message archiving and management solution for ServiceMix.
+
+Step-by-step
+------------
+
+1. Build the project using "mvn install" as usual
+
+2. Get and build Apache Sling
+
+3. Start Apache Sling in an empty directory with
+ java -jar ~/.m2/repository/org/apache/sling/org.apache.sling.launchpad.app/2.0.0-incubator-SNAPSHOT/org.apache.sling.launchpad.app-2.0.0-incubator-SNAPSHOT.jar
+
+4. Connect to the Sling Management console at http://localhost:8080/system/console and upload/start the servicemix-sling-console bundle.
+ When the bundle is installed, connect to http://localhost:8080/servicemix.html to see the ServiceMix dashboard page (don't mind the layout, I'm not a web designer ;) ).
+
+5. Add the Sling auditor to the ServiceMix classpath by copying these jars to lib/optional
+ - jackrabbit-jcr-commons-1.5-SNAPSHOT.jar
+ - jackrabbit-jcr-rmi-1.5-SNAPSHOT.jar
+ - jcr-1.0.jar
+ - servicemix-audit-jcr-1.0-SNAPSHOT.jar
+
+6. Reconfigure ServiceMix
+ - add <bean class="org.apache.servicemix.audit.jcr.SlingAuditor"/> to the <services/> section in conf/servicemix.xml
+ - change the rmi.port in conf/servicemix.properties to avoid the conflict with the Sling RMI registry
+
+
+TODO
+----
+A lot, but these come to mind...
+- asynchronous archival in JCR instead of blocking message delivery
+-
+
+
+
Added: servicemix/sandbox/gertv/smx-sling/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/pom.xml?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/pom.xml (added)
+++ servicemix/sandbox/gertv/smx-sling/pom.xml Tue Apr 22 05:40:26 2008
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.servicemix.smx-sling</groupId>
+ <artifactId>parent</artifactId>
+ <packaging>pom</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>SMX-Sling</name>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <properties>
+ <servicemix-version>3.3-SNAPSHOT</servicemix-version>
+ <sling-version>2.0.0-incubator-SNAPSHOT</sling-version>
+ </properties>
+ <modules>
+ <module>servicemix-audit-jcr</module>
+ <module>servicemix-sling-console</module>
+ </modules>
+</project>
Propchange: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Apr 22 05:40:26 2008
@@ -0,0 +1,4 @@
+.project
+.settings
+.classpath
+target
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml Tue Apr 22 05:40:26 2008
@@ -0,0 +1,36 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>parent</artifactId>
+ <groupId>org.apache.servicemix.smx-sling</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.servicemix.smx-sling</groupId>
+ <artifactId>servicemix-audit-jcr</artifactId>
+ <name>SMX-Sling :: ServiceMix JCR Auditor</name>
+ <version>1.0-SNAPSHOT</version>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.servicemix</groupId>
+ <artifactId>servicemix-audit</artifactId>
+ <version>${servicemix-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.jackrabbit.client</artifactId>
+ <version>${sling-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java Tue Apr 22 05:40:26 2008
@@ -0,0 +1,53 @@
+package org.apache.servicemix.audit.jcr;
+
+import java.net.MalformedURLException;
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+
+import javax.jbi.JBIException;
+import javax.jcr.LoginException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+
+import org.apache.jackrabbit.rmi.client.ClientRepositoryFactory;
+import org.apache.servicemix.jbi.audit.AbstractAuditor;
+
+public abstract class JcrAuditor extends AbstractAuditor {
+
+ private Repository repository;
+ private ThreadLocal<Session> session = new ThreadLocal<Session>();
+
+ @Override
+ protected void doStart() throws JBIException {
+ super.doStart();
+ ClientRepositoryFactory factory = new ClientRepositoryFactory();
+ try {
+ repository = factory.getRepository("rmi://localhost:1099/jackrabbit");
+ } catch (MalformedURLException e) {
+ throw new JBIException("Unable to connect to JCR repository", e);
+ } catch (ClassCastException e) {
+ throw new JBIException("Unable to connect to JCR repository", e);
+ } catch (RemoteException e) {
+ throw new JBIException("Unable to connect to JCR repository", e);
+ } catch (NotBoundException e) {
+ throw new JBIException("Unable to connect to JCR repository", e);
+ }
+ }
+
+ protected Session getSession() throws LoginException, RepositoryException {
+ if (session .get() == null) {
+ Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
+ this.session.set(session);
+ }
+ return session.get();
+ }
+
+ public String getDescription() {
+ return "ServiceMix JCR Auditor";
+ }
+
+
+
+}
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingAuditor.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingAuditor.java?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingAuditor.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingAuditor.java Tue Apr 22 05:40:26 2008
@@ -0,0 +1,183 @@
+package org.apache.servicemix.audit.jcr;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.MessagingException;
+import javax.jbi.messaging.NormalizedMessage;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Node;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.ValueFormatException;
+import javax.jcr.lock.LockException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.version.VersionException;
+import javax.xml.transform.TransformerException;
+
+import org.apache.jackrabbit.value.DateValue;
+import org.apache.servicemix.jbi.audit.AuditorException;
+import org.apache.servicemix.jbi.event.ExchangeEvent;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.jbi.util.MessageUtil;
+
+public class SlingAuditor extends JcrAuditor {
+
+ //let's time slice our message exchange archive on an hourly basis
+ private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd hha");
+
+ private static final String RESOURCE_TYPE = "sling:resourceType";
+ private static final String EXCHANGES_RESOURCE_TYPE = "servicemix/exchanges";
+
+ private static final SourceTransformer TRANSFORMER = new SourceTransformer();
+
+ public void exchangeSent(ExchangeEvent event) {
+ try {
+ Node node = getNodeForExchange(event.getExchange());
+ node.setProperty("ExchangeStatus", event.getExchange().getStatus().toString());
+ node.setProperty("Pattern", event.getExchange().getPattern().toString());
+ if (event.getExchange().getEndpoint() != null) {
+ node.setProperty("Endpoint", event.getExchange().getEndpoint().getEndpointName());
+ }
+ if (event.getExchange().getService() != null) {
+ node.setProperty("Service", event.getExchange().getService().toString());
+ }
+ for (Object key: event.getExchange().getPropertyNames()) {
+ String name = (String) key;
+ node.setProperty(name, event.getExchange().getProperty(name).toString());
+ }
+ addNormalizedMessages(node, event.getExchange());
+ node.setProperty("Updated", new DateValue(new GregorianCalendar()));
+ getSession().save();
+ System.out.println("Event archived in JCR");
+ } catch (ItemExistsException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (PathNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (VersionException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ConstraintViolationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (LockException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (RepositoryException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (MessagingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (TransformerException e) {
+ // TODO Auto-generated catch block-
+ e.printStackTrace();
+ }
+ }
+
+ private void addNormalizedMessages(Node node, MessageExchange exchange) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, MessagingException, RepositoryException, TransformerException {
+ if (exchange.getMessage("in") != null) {
+ addNormalizedMessages(node, "In", exchange.getMessage("in"));
+ }
+ if (exchange.getMessage("out") != null) {
+ addNormalizedMessages(node, "Out", exchange.getMessage("out"));
+ }
+ if (exchange.getMessage("fault") != null) {
+ addNormalizedMessages(node, "Fault", exchange.getMessage("fault"));
+ }
+ }
+
+ private void addNormalizedMessages(Node parent, String type,
+ NormalizedMessage message) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, RepositoryException, MessagingException, TransformerException {
+ if (message != null) {
+ Node node;
+ try {
+ node = parent.getNode(type);
+ } catch (PathNotFoundException e) {
+ node = parent.addNode(type);
+ }
+ node.setProperty("Content", getNormalizedMessageContent(message));
+ for (Object key: message.getPropertyNames()) {
+ String name = (String) key;
+ node.setProperty(name, message.getProperty(name).toString());
+ }
+ node.setProperty("sling:resourceType", "servicemix/normalizedmessage");
+ }
+ }
+
+ private String getNormalizedMessageContent(NormalizedMessage message) throws MessagingException, TransformerException {
+ MessageUtil.enableContentRereadability(message);
+ return TRANSFORMER.toString(message.getContent());
+ }
+
+ private Node getNodeForExchange(MessageExchange exchange)
+ throws ItemExistsException, PathNotFoundException,
+ VersionException, ConstraintViolationException, LockException,
+ RepositoryException {
+ Session session = getSession();
+ String id = exchange.getExchangeId().replaceAll(":", "_");
+ Node parent = getBaseNode(session);
+ try {
+ return parent.getNode(id);
+ } catch (PathNotFoundException e) {
+ Node node = parent.addNode(id);
+ node.setProperty("sling:resourceType", "servicemix/exchange");
+ node.setProperty("Created", new DateValue(new GregorianCalendar()));
+ node.addMixin("mix:versionable");
+ return node;
+ }
+ }
+
+ private Node getBaseNode(Session session) throws RepositoryException {
+ Node exchanges = session.getRootNode().getNode("content/servicemix/exchanges");
+ return createOrGet(exchanges, FORMAT.format(new Date()));
+ }
+
+ private synchronized Node createOrGet(Node exchanges, String path) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException {
+ try {
+ return exchanges.getNode(path);
+ } catch (PathNotFoundException e) {
+ Node node = exchanges.addNode(path);
+ node.setProperty(RESOURCE_TYPE, EXCHANGES_RESOURCE_TYPE);
+ node.setProperty("Created", new DateValue(new GregorianCalendar()));
+ return node;
+ }
+ }
+
+ public String getDescription() {
+ return "ServiceMix Sling Auditor";
+ }
+
+ @Override
+ public int deleteExchangesByIds(String[] arg0) throws AuditorException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getExchangeCount() throws AuditorException {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public String[] getExchangeIdsByRange(int arg0, int arg1)
+ throws AuditorException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public MessageExchange[] getExchangesByIds(String[] arg0)
+ throws AuditorException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Propchange: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Apr 22 05:40:26 2008
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/pom.xml?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/pom.xml (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/pom.xml Tue Apr 22 05:40:26 2008
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.servicemix.smx-sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.servicemix.smx-sling</groupId>
+ <artifactId>servicemix-sling-console</artifactId>
+ <packaging>bundle</packaging>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>SMX-Sling :: ServiceMix Sling Console</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Sling-Initial-Content>
+ initial-content
+ </Sling-Initial-Content>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/html.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/html.esp?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/html.esp (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/dashboard/html.esp Tue Apr 22 05:40:26 2008
@@ -0,0 +1,35 @@
+<html>
+<head>
+<title>ServiceMix :: Dashboard</title>
+<link rel="stylesheet" type="text/css" href="theme/master.css"/>
+</head>
+<body>
+<div id="page">
+<h1>Servicemix :: Dashboard</h1>
+
+<div id="content">
+ <div id="portlet">
+ <h2>Last 15 Message Exchanges</h2>
+ <table>
+ <%
+ var iter = request.resourceResolver.findResources("content/smx/exchanges/* order by @Created descending",
+ Packages.javax.jcr.query.Query.XPATH);
+ var i = 0;
+ while (iter.hasNext() && ++i <= 15) {
+ var resource = iter.next();
+ %>
+ <a href="<%= resource.getPath() + ".html" %>"><%sling.include(resource.getPath() + ".tr");%></a>
+<%
+ }
+ %>
+ </table>
+ </div>
+</div>
+
+<div id="sidebar">
+Tasks
+</div>
+
+</div>
+</body>
+</html>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/html.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/html.esp?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/html.esp (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/html.esp Tue Apr 22 05:40:26 2008
@@ -0,0 +1,57 @@
+<html>
+<head>
+<title><%= currentNode.getName() %></title>
+<link rel="stylesheet" type="text/css" href="/theme/master.css"/>
+</head>
+<body>
+<div id="page">
+<h1>ServiceMix :: Message Exchange details</h1>
+<div id="content">
+<table>
+<tr>
+<td>Status</td>
+<td><%= currentNode['ExchangeStatus'] %></td>
+</tr>
+<tr>
+<td>MEP</td>
+<td><%= currentNode['Pattern'] %></td>
+</tr>
+<% for (property in currentNode.getProperties()) {
+ if (property.match("org.apache.servicemix") || property.match("javax.jbi")) { %>
+<tr>
+<td><%= property %></td>
+<td><%= currentNode[property] %></td>
+</tr>
+<% } } %>
+</table>
+
+<% if (currentNode.In) { %>
+<h2>In message</h2>
+<% sling.include(currentNode.In + ".div"); %>
+<%}%>
+<% if (currentNode.Out) { %>
+<h2>Out message</h2>
+<% sling.include(currentNode.Out + ".div"); %>
+<%}%>
+<% if (currentNode.Fault) { %>
+<h2>Fault message</h2>
+<% sling.include(currentNode.Fault + ".div"); %>
+<%}%>
+
+<ul>
+<% history = currentNode.getVersionHistory();
+ out.println(history);
+ versions = history.getAllVersions();
+ out.println(versions);
+ var version = versions.nextVersion();
+ out.println("<li>" + version);
+ while (version) {
+ out.println("<li>" + version);
+ version = versions.nextVersion();
+ }
+ %>
+</div>
+</div>
+</body>
+</html>
+
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/tr.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/tr.esp?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/tr.esp (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchange/tr.esp Tue Apr 22 05:40:26 2008
@@ -0,0 +1,7 @@
+<tr>
+ <td><a href="<%=currentNode%>.html">+</a></td>
+ <td><%=currentNode['org.apache.servicemix.datestamp'] %></td>
+ <td><%=currentNode.Service == undefined ? "n/a" : currentNode.Service%></td>
+ <td><%=currentNode.Endpoint == undefined ? "n/a" : currentNode.Endpoint%></td>
+ <td><%=currentNode.ExchangeStatus%></td>
+</tr>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/html.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/html.esp?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/html.esp (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/exchanges/html.esp Tue Apr 22 05:40:26 2008
@@ -0,0 +1,19 @@
+<html>
+<h1>Welcome</h1>
+<% for (var exchange in currentNode.getChildren()) { %>
+<a href="<%= currentNode[exchange].getPath() %>"><%=exchange%></a>
+<% } %>
+
+<hr/>
+<%
+ var iter = request.resourceResolver.findResources("content/exchanges/* order by @Created descending",
+ Packages.javax.jcr.query.Query.XPATH);
+ var i = 0;
+ while (iter.hasNext() && ++i <= 15) {
+ var resource = iter.next();
+ %>
+ <a href="<%= resource.getPath() + ".html" %>"><%=request.resourceResolver.getResource(resource)%></a>
+<%
+ }
+ %>
+</html>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/div.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/div.esp?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/div.esp (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/normalizedmessage/div.esp Tue Apr 22 05:40:26 2008
@@ -0,0 +1,5 @@
+<div>
+<pre>
+<%= currentNode.Content.replace(/</g, "<").replace(/>/g, ">") %>
+<pre>
+</div>
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/servicemix.json
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/servicemix.json?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/servicemix.json (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/servicemix.json Tue Apr 22 05:40:26 2008
@@ -0,0 +1,14 @@
+{
+ "jcr:primaryType":"nt:unstructured",
+ "sling:resourceType":"servicemix/dashboard",
+
+ "exchanges":{
+ "jcr:primaryType":"nt:unstructured",
+ "sling:resourceType":"servicemix/exchanges"
+ },
+
+ "navigation":{
+ "jcr:primaryType":"nt:unstructured",
+ "sling:resourceType":"servicemix/navigation"
+ }
+}
\ No newline at end of file
Added: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/master.css
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/master.css?rev=650484&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/master.css (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/content/theme/master.css Tue Apr 22 05:40:26 2008
@@ -0,0 +1,41 @@
+body {
+ font-family: sans-serif;
+}
+
+div#page {
+ margin: 0px auto;
+ width: 1024px;
+ border-left: solid thin blue;
+}
+
+div#content {
+ padding-left: 30px;
+ font-size: 10pt;
+}
+
+div#sidebar {
+ background-color: lightgrey;
+ width: 15%;
+ float: right;
+}
+
+div#portlet {
+ border: solid thin grey;
+ width: 75%;
+ float: left;
+}
+
+h1 {
+ border-bottom: solid thin blue;
+ width: 100%;
+ padding-left: 20px;
+ font-size: 14pt;
+}
+
+h2 {
+ border-bottom: solid thin grey;
+ width: 90%;
+ padding-left: 10px;
+ font-size: 12pt;
+}
+