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/09/10 11:32:49 UTC
svn commit: r693755 - in /servicemix/sandbox/gertv/smx-sling: ./
servicemix-audit-jcr/
servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/
servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/
servicemix-sl...
Author: gertv
Date: Wed Sep 10 02:32:47 2008
New Revision: 693755
URL: http://svn.apache.org/viewvc?rev=693755&view=rev
Log:
Applying patches -- with thanks to Vladislav
Added:
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AuditorMarshaler.java
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/EntireMarshaler.java
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/HeaderMetadataMarshaler.java
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/OwnMessageExchangeImpl.java
Modified:
servicemix/sandbox/gertv/smx-sling/pom.xml
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml
servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AsynchronousAbstractAuditor.java
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/SlingJcrAuditorStrategy.java
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/html.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/tr.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flow/tr.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/html.esp
servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/tr.esp
Modified: servicemix/sandbox/gertv/smx-sling/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/pom.xml?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/pom.xml (original)
+++ servicemix/sandbox/gertv/smx-sling/pom.xml Wed Sep 10 02:32:47 2008
@@ -21,6 +21,7 @@
<servicemix-version>3.3-SNAPSHOT</servicemix-version>
<sling-version>2.0.2-incubator</sling-version>
<spring-version>2.5.5</spring-version>
+ <slf4j-version>1.5.0</slf4j-version>
</properties>
<repositories>
<repository>
Modified: 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=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/pom.xml Wed Sep 10 02:32:47 2008
@@ -26,6 +26,21 @@
<artifactId>spring-jms</artifactId>
<version>${spring-version}</version>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>${slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jms</artifactId>
+ <version>${spring-version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.jackrabbit.client</artifactId>
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AsynchronousAbstractAuditor.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AsynchronousAbstractAuditor.java?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AsynchronousAbstractAuditor.java (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AsynchronousAbstractAuditor.java Wed Sep 10 02:32:47 2008
@@ -1,250 +1,252 @@
-package org.apache.servicemix.audit.jcr;
-
-import java.net.URISyntaxException;
-
-import javax.jbi.JBIException;
-import javax.jbi.messaging.MessageExchange;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.ObjectMessage;
-import javax.jms.Session;
-
-import org.apache.activemq.ActiveMQConnection;
-import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.jbi.audit.AbstractAuditor;
-import org.apache.servicemix.jbi.event.ExchangeEvent;
-import org.apache.servicemix.jbi.messaging.MessageExchangeImpl;
-import org.springframework.jms.core.JmsTemplate;
-import org.springframework.jms.listener.DefaultMessageListenerContainer;
-
-
-/**
- *
- * Abstract class for take care of all the serialization and multi-threading
- * stuff
- *
- * @author vkrejcirik
- *
- *
- */
-public abstract class AsynchronousAbstractAuditor extends AbstractAuditor {
-
- private static final Log LOG = LogFactory
- .getLog(AsynchronousAbstractAuditor.class);
-
- private Session acceptedSession;
- private Session sentSession;
-
- private ActiveMQConnection connection;
-
- private Destination acceptedDestination;
- private Destination sentDestination;
-
- private ExchangeAcceptedProducer acceptedProducer;
- private ExchangeSentProducer sentProducer;
-
- private AcceptedListener acceptedListener;
- private SentListener sentListener;
- private ExceptionListener exceptionListener;
-
- private JmsTemplate acceptedJmsTemplate;
- private JmsTemplate sentJmsTemplate;
-
- private DefaultMessageListenerContainer sentListenerContainer;
- private DefaultMessageListenerContainer acceptedListenerContainer;
-
- public void doStart() throws JBIException {
-
- try {
- connection = ActiveMQConnection
- .makeConnection("tcp://localhost:61616");
- //connection.start();
-
- acceptedSession = connection.createSession(false,
- Session.AUTO_ACKNOWLEDGE);
-
- sentSession = connection.createSession(false,
- Session.AUTO_ACKNOWLEDGE);
-
- acceptedDestination = acceptedSession
- .createQueue("messages.accepted");
-
- sentDestination = sentSession.createQueue("messages.sent");
-
- } catch (URISyntaxException e) {
- throw new JBIException("URI syntax is wrong", e);
- } catch (JMSException e1) {
- throw new JBIException(
- "Error while creating queue for exchange", e1);
- }
-
- sentListenerContainer = new DefaultMessageListenerContainer();
- acceptedListenerContainer = new DefaultMessageListenerContainer();
-
- ActiveMQConnectionFactory sentConnectionFactory = new ActiveMQConnectionFactory();
- sentConnectionFactory.setBrokerURL("tcp://localhost:61616");
-
- ActiveMQConnectionFactory acceptedConnectionFactory = new ActiveMQConnectionFactory();
- acceptedConnectionFactory.setBrokerURL("tcp://localhost:61616");
-
- sentListenerContainer.setConnectionFactory(sentConnectionFactory);
- acceptedListenerContainer.setConnectionFactory(acceptedConnectionFactory);
-
- sentListenerContainer.setConcurrentConsumers(5);
- acceptedListenerContainer.setConcurrentConsumers(5);
-
- sentListenerContainer.setDestination(sentDestination);
- acceptedListenerContainer.setDestination(acceptedDestination);
-
- sentListener = new SentListener();
- acceptedListener = new AcceptedListener();
-
- acceptedJmsTemplate = new JmsTemplate();
- sentJmsTemplate = new JmsTemplate();
-
- acceptedJmsTemplate.setConnectionFactory(acceptedConnectionFactory);
- acceptedJmsTemplate.setDefaultDestination(acceptedDestination);
-
- sentJmsTemplate.setConnectionFactory(sentConnectionFactory);
- sentJmsTemplate.setDefaultDestination(sentDestination);
-
- sentProducer = new ExchangeSentProducer(sentJmsTemplate);
- acceptedProducer = new ExchangeAcceptedProducer(acceptedJmsTemplate);
-
- sentListenerContainer.setMessageListener(sentListener);
- acceptedListenerContainer.setMessageListener(acceptedListener);
-
- //exceptionListener = new ExceptionListener();
-
- sentListenerContainer.setExceptionListener(exceptionListener);
-
- sentListenerContainer.setAutoStartup(true);
- sentListenerContainer.afterPropertiesSet();
-
- acceptedListenerContainer.setAutoStartup(true);
- acceptedListenerContainer.afterPropertiesSet();
-
- try {
- connection.start();
- } catch (JMSException e) {
- e.printStackTrace();
- }
-
- super.doStart();
- }
-
- @Override
- protected void doStop() throws JBIException {
-
- try {
-
- sentListenerContainer.stop();
- sentListenerContainer.shutdown();
- acceptedListenerContainer.stop();
- acceptedListenerContainer.shutdown();
-
- acceptedSession.close();
- sentSession.close();
- connection.close();
-
- } catch (JMSException e) {
- throw new JBIException("Close session or connection failed", e);
- }
-
-
- super.doStop();
- }
-
- public void exchangeSent(ExchangeEvent event) {
-
- MessageExchange messageExchange = event.getExchange();
- ObjectMessage objectExchange = null;
-
- try {
- objectExchange = sentSession
- .createObjectMessage((MessageExchangeImpl) messageExchange);
- sentProducer.sendMessage(objectExchange);
-
- } catch (JMSException e) {
- LOG.error("Error while serializing sent message exchange.");
- }
-
- }
-
- public void exchangeAccepted(ExchangeEvent event) {
-
- MessageExchange messageExchange = event.getExchange();
- ObjectMessage objectExchange = null;
-
- try {
- objectExchange = acceptedSession
- .createObjectMessage((MessageExchangeImpl) messageExchange);
- acceptedProducer.sendMessage(objectExchange);
-
- } catch (JMSException e) {
- LOG.error("Error while serializing accepted message exchange.");
- }
-
- super.exchangeAccepted(event);
- }
-
- public abstract void onExchangeSent(MessageExchange exchange);
-
- public abstract void onExchangeAccepted(MessageExchange exchange);
-
- public class SentListener implements MessageListener {
-
- public void onMessage(Message message) {
-
- if (message instanceof ObjectMessage) {
-
- try {
- LOG.debug("receive message");
- ObjectMessage m = (ObjectMessage) message;
- MessageExchange exchange = (MessageExchange) m.getObject();
-
- //System.out.println(exchange);
-
- onExchangeSent(exchange);
-
- } catch (JMSException e) {
- LOG.error("Error while receiving message.");
- }
- } else {
- throw new IllegalArgumentException(
- "Message must be of type ObjectMessage");
- }
- }
- }
-
- public class AcceptedListener implements MessageListener {
-
- public void onMessage(Message message) {
-
- if (message instanceof ObjectMessage) {
-
- try {
- LOG.debug("receive message");
- ObjectMessage m = (ObjectMessage) message;
- MessageExchange exchange = (MessageExchange) m.getObject();
-
- //System.out.println(exchange);
-
- onExchangeAccepted(exchange);
-
- } catch (JMSException e) {
- LOG.error("Error while receiving message.");
- }
- } else {
- throw new IllegalArgumentException(
- "Message must be of type ObjectMessage");
- }
- }
- }
-
-}
+package org.apache.servicemix.audit.jcr;
+
+import java.net.URISyntaxException;
+
+import javax.jbi.JBIException;
+import javax.jbi.messaging.MessageExchange;
+import javax.jcr.LoginException;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+import javax.jcr.observation.EventIterator;
+import javax.jcr.observation.EventListener;
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+
+import org.apache.activemq.ActiveMQConnection;
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.audit.AbstractAuditor;
+import org.apache.servicemix.jbi.event.ExchangeEvent;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.jms.listener.DefaultMessageListenerContainer;
+
+/**
+ *
+ * Abstract class for take care of all the serialization and multi-threading
+ * stuff
+ *
+ * @author vkrejcirik
+ *
+ *
+ */
+public abstract class AsynchronousAbstractAuditor extends AbstractAuditor {
+
+ private static final Log LOG = LogFactory
+ .getLog(AsynchronousAbstractAuditor.class);
+
+ private Session acceptedSession;
+ private Session sentSession;
+
+ private ActiveMQConnection connection;
+
+ private Destination acceptedDestination;
+ private Destination sentDestination;
+
+ private ExchangeAcceptedProducer acceptedProducer;
+ private ExchangeSentProducer sentProducer;
+
+ private AcceptedListener acceptedListener;
+ private SentListener sentListener;
+ private ExceptionListener exceptionListener;
+
+ private JmsTemplate acceptedJmsTemplate;
+ private JmsTemplate sentJmsTemplate;
+
+ private DefaultMessageListenerContainer sentListenerContainer;
+ private DefaultMessageListenerContainer acceptedListenerContainer;
+
+ protected AuditorMarshaler marshaler;
+
+ public void doStart() throws JBIException {
+
+ try {
+ connection = ActiveMQConnection
+ .makeConnection("tcp://localhost:61616");
+
+ acceptedSession = connection.createSession(false,
+ Session.AUTO_ACKNOWLEDGE);
+
+ sentSession = connection.createSession(false,
+ Session.AUTO_ACKNOWLEDGE);
+
+ acceptedDestination = acceptedSession
+ .createQueue("messages.accepted");
+
+ sentDestination = sentSession.createQueue("messages.sent");
+
+ } catch (URISyntaxException e) {
+ throw new JBIException("URI syntax is wrong", e);
+ } catch (JMSException e1) {
+ throw new JBIException("Error while creating queue for exchange",
+ e1);
+ }
+
+ sentListenerContainer = new DefaultMessageListenerContainer();
+ acceptedListenerContainer = new DefaultMessageListenerContainer();
+
+ ActiveMQConnectionFactory sentConnectionFactory = new ActiveMQConnectionFactory();
+ sentConnectionFactory.setBrokerURL("tcp://localhost:61616");
+
+ ActiveMQConnectionFactory acceptedConnectionFactory = new ActiveMQConnectionFactory();
+ acceptedConnectionFactory.setBrokerURL("tcp://localhost:61616");
+
+ sentListenerContainer.setConnectionFactory(sentConnectionFactory);
+ acceptedListenerContainer
+ .setConnectionFactory(acceptedConnectionFactory);
+
+ sentListenerContainer.setConcurrentConsumers(1);
+ acceptedListenerContainer.setConcurrentConsumers(1);
+
+ sentListenerContainer.setDestination(sentDestination);
+ acceptedListenerContainer.setDestination(acceptedDestination);
+
+ sentListener = new SentListener();
+ acceptedListener = new AcceptedListener();
+
+ acceptedJmsTemplate = new JmsTemplate();
+ sentJmsTemplate = new JmsTemplate();
+
+ acceptedJmsTemplate.setConnectionFactory(acceptedConnectionFactory);
+ acceptedJmsTemplate.setDefaultDestination(acceptedDestination);
+
+ sentJmsTemplate.setConnectionFactory(sentConnectionFactory);
+ sentJmsTemplate.setDefaultDestination(sentDestination);
+
+ sentProducer = new ExchangeSentProducer(sentJmsTemplate);
+ acceptedProducer = new ExchangeAcceptedProducer(acceptedJmsTemplate);
+
+ sentListenerContainer.setMessageListener(sentListener);
+ acceptedListenerContainer.setMessageListener(acceptedListener);
+
+ sentListenerContainer.setExceptionListener(exceptionListener);
+
+ sentListenerContainer.setAutoStartup(true);
+ sentListenerContainer.afterPropertiesSet();
+
+ acceptedListenerContainer.setAutoStartup(true);
+ acceptedListenerContainer.afterPropertiesSet();
+
+ try {
+ connection.start();
+ } catch (JMSException e) {
+ e.printStackTrace();
+ }
+
+ super.doStart();
+ }
+
+ @Override
+ protected void doStop() throws JBIException {
+
+ try {
+
+ sentListenerContainer.stop();
+ sentListenerContainer.shutdown();
+ acceptedListenerContainer.stop();
+ acceptedListenerContainer.shutdown();
+
+ acceptedSession.close();
+ sentSession.close();
+ connection.close();
+
+ } catch (JMSException e) {
+ throw new JBIException("Close session or connection failed", e);
+ }
+
+ super.doStop();
+ }
+
+ public void exchangeSent(ExchangeEvent event) {
+
+ MessageExchange messageExchange = event.getExchange();
+ ObjectMessage objectExchange = null;
+
+ objectExchange = marshaler.marschal(messageExchange, sentSession);
+ sentProducer.sendMessage(objectExchange);
+
+ }
+
+ public void exchangeAccepted(ExchangeEvent event) {
+
+ MessageExchange messageExchange = event.getExchange();
+ ObjectMessage objectExchange = null;
+
+ objectExchange = marshaler.marschal(messageExchange, acceptedSession);
+ acceptedProducer.sendMessage(objectExchange);
+
+ super.exchangeAccepted(event);
+ }
+
+ public abstract void onExchangeSent(MessageExchange exchange);
+
+ public abstract void onExchangeAccepted(MessageExchange exchange);
+
+ protected AuditorMarshaler getMarshaler() throws PathNotFoundException,
+ LoginException, RepositoryException {
+ return null;
+
+ }
+
+ public class SentListener implements MessageListener {
+
+ public void onMessage(Message message) {
+
+ if (message instanceof ObjectMessage) {
+
+ LOG.debug("receive message");
+ ObjectMessage m = (ObjectMessage) message;
+
+ MessageExchange exchange = marshaler.unmarshal(m);
+ onExchangeSent(exchange);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Message must be of type ObjectMessage");
+ }
+ }
+ }
+
+ public class AcceptedListener implements MessageListener {
+
+ public void onMessage(Message message) {
+
+ if (message instanceof ObjectMessage) {
+
+ LOG.debug("receive message");
+ ObjectMessage m = (ObjectMessage) message;
+
+ MessageExchange exchange = marshaler.unmarshal(m);
+ onExchangeAccepted(exchange);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Message must be of type ObjectMessage");
+ }
+ }
+ }
+
+ public class ConfigEventListener implements EventListener {
+
+ public void onEvent(EventIterator event) {
+
+ LOG.debug("event!");
+
+ try {
+ marshaler = getMarshaler();
+
+ } catch (PathNotFoundException e) {
+ e.printStackTrace();
+ } catch (LoginException e) {
+ e.printStackTrace();
+ } catch (RepositoryException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AuditorMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AuditorMarshaler.java?rev=693755&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AuditorMarshaler.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/AuditorMarshaler.java Wed Sep 10 02:32:47 2008
@@ -0,0 +1,19 @@
+package org.apache.servicemix.audit.jcr;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+
+/**
+ *
+ *
+ *
+ * @author vkrejcirik
+ *
+ */
+public interface AuditorMarshaler {
+
+ public ObjectMessage marschal(MessageExchange exchange, Session session);
+ public MessageExchange unmarshal(ObjectMessage message);
+
+}
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/EntireMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/EntireMarshaler.java?rev=693755&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/EntireMarshaler.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/EntireMarshaler.java Wed Sep 10 02:32:47 2008
@@ -0,0 +1,51 @@
+package org.apache.servicemix.audit.jcr;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.messaging.MessageExchangeImpl;
+
+/**
+ *
+ * Marshaler for whole message exchange
+ *
+ * @author vkrejcirik
+ *
+ */
+public class EntireMarshaler implements AuditorMarshaler {
+
+ private static final Log LOG = LogFactory.getLog(EntireMarshaler.class);
+
+ public ObjectMessage marschal(MessageExchange exchange, Session session) {
+
+ ObjectMessage message = null;
+
+ try {
+ message = session
+ .createObjectMessage((MessageExchangeImpl) exchange);
+
+ } catch (JMSException e) {
+ LOG.error("Error while serializing message exchange.");
+ }
+
+ return message;
+ }
+
+ public MessageExchange unmarshal(ObjectMessage message) {
+
+ MessageExchange exchange = null;
+
+ try {
+ exchange = (MessageExchange) message.getObject();
+ } catch (JMSException e) {
+ LOG.error("Error while deserializing object message.");
+ }
+
+ return exchange;
+ }
+
+}
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/HeaderMetadataMarshaler.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/HeaderMetadataMarshaler.java?rev=693755&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/HeaderMetadataMarshaler.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/HeaderMetadataMarshaler.java Wed Sep 10 02:32:47 2008
@@ -0,0 +1,69 @@
+package org.apache.servicemix.audit.jcr;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.messaging.MessageExchangeImpl;
+
+/**
+ *
+ * Marshaler for header and metadata from message exchange
+ *
+ * @author vkrejcirik
+ *
+ */
+public class HeaderMetadataMarshaler implements AuditorMarshaler {
+
+ private static final Log LOG = LogFactory
+ .getLog(HeaderMetadataMarshaler.class);
+
+ public ObjectMessage marschal(MessageExchange exchange, Session session) {
+
+ ObjectMessage message = null;
+ OwnMessageExchangeImpl exchangeImpl = new OwnMessageExchangeImpl();
+
+ // TODO: naplnit exchangeImpl
+
+ try {
+ message = session.createObjectMessage(exchangeImpl);
+
+ } catch (JMSException e) {
+ LOG.error("Error while serializing message exchange.");
+ }
+
+ return message;
+ }
+
+ public MessageExchange unmarshal(ObjectMessage message) {
+
+ MessageExchange exchange = new MessageExchangeImpl(){
+
+ @Override
+ public void readExternal(ObjectInput arg0) throws IOException,
+ ClassNotFoundException {
+
+ }
+ };
+
+
+ OwnMessageExchangeImpl exchangeImpl = null;
+
+ try {
+ exchangeImpl = (OwnMessageExchangeImpl) message.getObject();
+ } catch (JMSException e) {
+ LOG.error("Error while deserializing object message.");
+ }
+
+ // TODO: naplnit exchange
+
+ return exchange;
+ }
+
+}
Modified: 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=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/JcrAuditor.java Wed Sep 10 02:32:47 2008
@@ -3,10 +3,14 @@
import javax.jbi.JBIException;
import javax.jbi.messaging.MessageExchange;
import javax.jcr.LoginException;
+import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.observation.Event;
+import javax.jcr.observation.ObservationManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -26,6 +30,9 @@
private Repository repository;
private ThreadLocal<Session> session = new ThreadLocal<Session>();
private JcrAuditorStrategy strategy;
+ private ConfigEventListener eventListener = new ConfigEventListener();
+
+ public static final String CONFIG_TYPE = "content/servicemix/config";
@Override
public void doStart() throws JBIException {
@@ -37,10 +44,35 @@
throw new JBIException(
"No JcrAuditorStrategy configure, unable to start JCR auditor");
}
+
+ try {
+ marshaler = getMarshaler();
+ } catch (LoginException e) {
+ throw new JBIException(
+ "Login exception, unable to get Auditor Marshaler", e);
+ } catch (RepositoryException e1) {
+ throw new JBIException(
+ "Repository exception, unable to get Auditor Marshaler", e1);
+ }
+
+ try {
+ ObservationManager observationManager = getSession().getWorkspace().getObservationManager();
+
+ observationManager.addEventListener(
+ eventListener, Event.PROPERTY_CHANGED,
+ CONFIG_TYPE, false, null, null, false);
+
+ } catch (UnsupportedRepositoryOperationException e) {
+ throw new JBIException(
+ "Unsupported repository operation exception, unable to add Event Listener", e);
+ } catch (RepositoryException e1) {
+ throw new JBIException(
+ "Repository exception, unable to add Event Listener", e1);
+ }
+
super.doStart();
}
-
protected Session getSession() throws LoginException, RepositoryException {
if (session.get() == null) {
Session session = repository.login(new SimpleCredentials("admin",
@@ -57,8 +89,7 @@
getSession().save();
LOG.info("Successfully stored information about message exchange "
- + exchange.getExchangeId()
- + " in the JCR repository");
+ + exchange.getExchangeId() + " in the JCR repository");
} catch (Exception e) {
LOG.error("Unable to store information about message exchange "
+ exchange.getExchangeId(), e);
@@ -70,6 +101,31 @@
}
+ @Override
+ protected AuditorMarshaler getMarshaler() throws LoginException,
+ RepositoryException {
+
+ AuditorMarshaler marshaler = null;
+ Node config = getSession().getRootNode().getNode(CONFIG_TYPE);
+ String mar = null;
+
+ try {
+
+ mar = config.getProperty("marshaler").getValue().getString();
+ } catch (RepositoryException e) {
+
+ config.setProperty("marshaler", "EntireMarshaler");
+ mar = "EntireMarshaler";
+ }
+
+ if (mar.equals("EntireMarshaler"))
+ marshaler = new EntireMarshaler();
+ else if (mar.equals("HeaderMetadataMarshaler"))
+ marshaler = new HeaderMetadataMarshaler();
+
+ return marshaler;
+ }
+
public String getDescription() {
return "ServiceMix JCR Auditor";
}
Added: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/OwnMessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/OwnMessageExchangeImpl.java?rev=693755&view=auto
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/OwnMessageExchangeImpl.java (added)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/OwnMessageExchangeImpl.java Wed Sep 10 02:32:47 2008
@@ -0,0 +1,22 @@
+package org.apache.servicemix.audit.jcr;
+
+import java.io.Serializable;
+
+
+/**
+ *
+ * Simple MessageExchange implementation for holding values for audit
+ *
+ * @author vkrejcirik
+ *
+ */
+public class OwnMessageExchangeImpl implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ public OwnMessageExchangeImpl() {
+
+ }
+
+
+}
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingJcrAuditorStrategy.java
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingJcrAuditorStrategy.java?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingJcrAuditorStrategy.java (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-audit-jcr/src/main/java/org/apache/servicemix/audit/jcr/SlingJcrAuditorStrategy.java Wed Sep 10 02:32:47 2008
@@ -3,7 +3,7 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import java.util.GregorianCalendar;
+import java.util.GregorianCalendar;
import java.util.Locale;
import javax.jbi.messaging.MessageExchange;
@@ -24,6 +24,7 @@
import org.apache.servicemix.jbi.jaxp.SourceTransformer;
import org.apache.servicemix.jbi.util.MessageUtil;
+
/**
*
* Class for processing message exchange based on correlation id
@@ -31,272 +32,276 @@
* @author vkrejcirik
*
*/
-public class SlingJcrAuditorStrategy implements JcrAuditorStrategy {
-
- public static final String RESOURCE_TYPE = "sling:resourceType";
-
- // esp files for rendering
- public static final String EXCHANGES_RESOURCE_TYPE = "servicemix/exchanges";
- public static final String EXCHANGE_RESOURCE_TYPE = "servicemix/exchange";
- public static final String MESSAGE_FLOW_RESOURCE_TYPE = "servicemix/message_flow";
- public static final String NORMALIZED_MESSAGE_RESOURCE_TYPE = "servicemix/normalizedmessage";
-
- // content
- public static final String CONTENT_MESSAGE_FLOWS_TYPE = "content/servicemix/message_flows";
- public static final String CONTENT_EXCHANGES_TYPE = "content/servicemix/exchanges";
-
- private static final SourceTransformer TRANSFORMER = new SourceTransformer();
-
- // let's time slice our message exchange archive on an hourly basis
- private static final DateFormat FORMAT = new SimpleDateFormat("yyyyMMddhha", Locale.ENGLISH);
-
- public void processExchange(MessageExchange messageExchange, Session session)
- throws ItemExistsException, PathNotFoundException,
- VersionException, ConstraintViolationException, LockException,
- RepositoryException, MessagingException, TransformerException {
-
- Node node = getNodeForExchange(messageExchange, session);
-
- node.setProperty("ExchangeStatus", messageExchange.getStatus().toString());
- node.setProperty("Pattern", messageExchange.getPattern().toString());
-
- if (messageExchange.getEndpoint() != null) {
- node.setProperty("Endpoint", messageExchange.getEndpoint().getEndpointName());
- }
-
- if (messageExchange.getService() != null) {
- node.setProperty("Service", messageExchange.getService().toString());
- }
-
- for (Object key : messageExchange.getPropertyNames()) {
- String name = (String) key;
- node.setProperty(name, messageExchange.getProperty(name).toString());
- }
-
- addNormalizedMessages(node, messageExchange);
- node.setProperty("Updated", new DateValue(new GregorianCalendar()));
-
- }
-
- /**
- *
- *
- *
- * @param exchange
- * @param session
- * @return Node
- * @throws ItemExistsException
- * @throws PathNotFoundException
- * @throws VersionException
- * @throws ConstraintViolationException
- * @throws LockException
- * @throws RepositoryException
- */
- private Node getNodeForExchange(MessageExchange exchange, Session session)
- throws ItemExistsException, PathNotFoundException,
- VersionException, ConstraintViolationException, LockException,
- RepositoryException {
-
- String id = exchange.getExchangeId().replaceAll(":", "_");
- String corr_id = exchange.getProperty(
- "org.apache.servicemix.correlationId").toString().replaceAll(
- ":", "_");
-
- // node with date
- // Node parent = getExchangeBaseNode(session);
- Node parent = getMessageFlowBaseNode(session);
-
- // node with correlation id
- Node parent_corr = getCorrelationIdNode(parent, corr_id, id);
-
- try {
- return parent_corr.getNode(id);
-
- } catch (PathNotFoundException e) {
- Node node = parent_corr.addNode(id);
- node.setProperty(RESOURCE_TYPE, EXCHANGE_RESOURCE_TYPE);
-
- node.setProperty("Created", new DateValue(new GregorianCalendar()));
-
- node.addMixin("mix:versionable");
- return node;
- }
- }
-
- /**
- *
- *
- *
- * @param parent
- * @param corr_id
- * @param id
- * @return Node
- * @throws RepositoryException
- * @throws ValueFormatException
- * @throws VersionException
- * @throws LockException
- * @throws ConstraintViolationException
- */
- private synchronized Node getCorrelationIdNode(Node parent, String corr_id,
- String id) throws RepositoryException, ValueFormatException,
- VersionException, LockException, ConstraintViolationException {
-
- // first exchange of the flow
- if (corr_id == null) {
- Node node = parent.addNode(id);
- node.setProperty(RESOURCE_TYPE, MESSAGE_FLOW_RESOURCE_TYPE);
-
- node.setProperty("Created", new DateValue(new GregorianCalendar()));
- node.setProperty("CorrelationId", id);
- return node;
- }
-
- try {
- return parent.getNode(corr_id);
-
- } catch (PathNotFoundException e) {
-
- Node node = parent.addNode(corr_id);
- node.setProperty(RESOURCE_TYPE, MESSAGE_FLOW_RESOURCE_TYPE);
-
- node.setProperty("Created", new DateValue(new GregorianCalendar()));
- node.setProperty("CorrelationId", corr_id);
-
- return node;
- }
- }
-
- /**
- *
- * Get base node for message flow
- *
- * @param session
- * @return Node
- * @throws RepositoryException
- */
- private Node getMessageFlowBaseNode(Session session)
- throws RepositoryException {
- Node exchanges = session.getRootNode().getNode(
- CONTENT_MESSAGE_FLOWS_TYPE);
-
- return createOrGet(exchanges, FORMAT.format(new Date()));
- }
-
- /*
- * private Node getExchangeBaseNode(Session session) throws
- * RepositoryException { Node exchanges =
- * session.getRootNode().getNode(CONTENT_EXCHANGES_TYPE);
- *
- * return createOrGet(exchanges, FORMAT.format(new Date())); }
- */
-
- /**
- *
- * Create or get node with the path
- *
- * @param exchanges
- * @param path
- * @return Node
- * @throws ValueFormatException
- * @throws VersionException
- * @throws LockException
- * @throws ConstraintViolationException
- * @throws RepositoryException
- */
- 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;
- }
- }
-
- /**
- *
- *
- *
- * @param node
- * @param exchange
- * @throws ItemExistsException
- * @throws PathNotFoundException
- * @throws VersionException
- * @throws ConstraintViolationException
- * @throws LockException
- * @throws MessagingException
- * @throws RepositoryException
- * @throws TransformerException
- */
- 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"));
- }
- }
-
- /**
- *
- *
- *
- * @param parent
- * @param type
- * @param message
- * @throws ItemExistsException
- * @throws PathNotFoundException
- * @throws VersionException
- * @throws ConstraintViolationException
- * @throws LockException
- * @throws RepositoryException
- * @throws MessagingException
- * @throws TransformerException
- */
- 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(RESOURCE_TYPE, NORMALIZED_MESSAGE_RESOURCE_TYPE);
- }
- }
-
- /**
- *
- *
- *
- * @param message
- * @return String
- * @throws MessagingException
- * @throws TransformerException
- */
- private String getNormalizedMessageContent(NormalizedMessage message)
- throws MessagingException, TransformerException {
- MessageUtil.enableContentRereadability(message);
- return TRANSFORMER.toString(message.getContent());
- }
-}
+public class SlingJcrAuditorStrategy implements JcrAuditorStrategy {
+
+ public static final String RESOURCE_TYPE = "sling:resourceType";
+
+ // esp files for rendering
+ public static final String EXCHANGES_RESOURCE_TYPE = "servicemix/exchanges";
+ public static final String EXCHANGE_RESOURCE_TYPE = "servicemix/exchange";
+ public static final String MESSAGE_FLOW_RESOURCE_TYPE = "servicemix/message_flow";
+ public static final String NORMALIZED_MESSAGE_RESOURCE_TYPE = "servicemix/normalizedmessage";
+
+ // content
+ public static final String CONTENT_MESSAGE_FLOWS_TYPE = "content/servicemix/message_flows";
+ public static final String CONTENT_EXCHANGES_TYPE = "content/servicemix/exchanges";
+
+ private static final SourceTransformer TRANSFORMER = new SourceTransformer();
+
+ // let's time slice our message exchange archive on an hourly basis
+ private static final DateFormat FORMAT = new SimpleDateFormat(
+ "yyyyMMddhha", Locale.ENGLISH);
+
+ public void processExchange(MessageExchange messageExchange, Session session)
+ throws ItemExistsException, PathNotFoundException,
+ VersionException, ConstraintViolationException, LockException,
+ RepositoryException, MessagingException, TransformerException {
+
+ Node node = getNodeForExchange(messageExchange, session);
+
+ node.setProperty("ExchangeStatus", messageExchange.getStatus()
+ .toString());
+ node.setProperty("Pattern", messageExchange.getPattern().toString());
+
+ if (messageExchange.getEndpoint() != null) {
+ node.setProperty("Endpoint", messageExchange.getEndpoint()
+ .getEndpointName());
+ }
+
+ if (messageExchange.getService() != null) {
+ node
+ .setProperty("Service", messageExchange.getService()
+ .toString());
+ }
+
+ for (Object key : messageExchange.getPropertyNames()) {
+ String name = (String) key;
+
+ node
+ .setProperty(name, messageExchange.getProperty(name)
+ .toString());
+ }
+
+ addNormalizedMessages(node, messageExchange);
+ node.setProperty("Updated", new DateValue(new GregorianCalendar()));
+
+ }
+
+ /**
+ *
+ *
+ *
+ * @param exchange
+ * @param session
+ * @return Node
+ * @throws ItemExistsException
+ * @throws PathNotFoundException
+ * @throws VersionException
+ * @throws ConstraintViolationException
+ * @throws LockException
+ * @throws RepositoryException
+ */
+ private Node getNodeForExchange(MessageExchange exchange, Session session)
+ throws ItemExistsException, PathNotFoundException,
+ VersionException, ConstraintViolationException, LockException,
+ RepositoryException {
+
+ String id = exchange.getExchangeId().replaceAll(":", "_");
+ String corr_id = exchange.getProperty(
+ "org.apache.servicemix.correlationId").toString().replaceAll(
+ ":", "_");
+
+ // node with date
+ // Node parent = getExchangeBaseNode(session);
+ Node parent = getMessageFlowBaseNode(session);
+
+ // node with correlation id
+ Node parent_corr = getCorrelationIdNode(parent, corr_id, id);
+
+ try {
+ return parent_corr.getNode(id);
+
+ } catch (PathNotFoundException e) {
+ Node node = parent_corr.addNode(id);
+ node.setProperty(RESOURCE_TYPE, EXCHANGE_RESOURCE_TYPE);
+
+ node.setProperty("Created", new DateValue(new GregorianCalendar()));
+
+ node.addMixin("mix:versionable");
+ return node;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * @param parent
+ * @param corr_id
+ * @param id
+ * @return Node
+ * @throws RepositoryException
+ * @throws ValueFormatException
+ * @throws VersionException
+ * @throws LockException
+ * @throws ConstraintViolationException
+ */
+ private synchronized Node getCorrelationIdNode(Node parent, String corr_id,
+ String id) throws RepositoryException, ValueFormatException,
+ VersionException, LockException, ConstraintViolationException {
+
+ // first exchange of the flow
+ if (corr_id == null) {
+ Node node = parent.addNode(id);
+ node.setProperty(RESOURCE_TYPE, MESSAGE_FLOW_RESOURCE_TYPE);
+
+ node.setProperty("Created", new DateValue(new GregorianCalendar()));
+ node.setProperty("CorrelationId", id);
+ return node;
+ }
+
+ try {
+
+ System.out.println(corr_id);
+ return parent.getNode(corr_id);
+
+ } catch (PathNotFoundException e) {
+
+ Node node = parent.addNode(corr_id);
+ node.setProperty(RESOURCE_TYPE, MESSAGE_FLOW_RESOURCE_TYPE);
+
+ node.setProperty("Created", new DateValue(new GregorianCalendar()));
+ node.setProperty("CorrelationId", corr_id);
+
+ return node;
+ }
+ }
+
+ /**
+ *
+ * Get base node for message flow
+ *
+ * @param session
+ * @return Node
+ * @throws RepositoryException
+ */
+ private Node getMessageFlowBaseNode(Session session)
+ throws RepositoryException {
+ Node exchanges = session.getRootNode().getNode(
+ CONTENT_MESSAGE_FLOWS_TYPE);
+
+ return createOrGet(exchanges, FORMAT.format(new Date()));
+ }
+
+ /**
+ *
+ * Create or get node with the path
+ *
+ * @param exchanges
+ * @param path
+ * @return Node
+ * @throws ValueFormatException
+ * @throws VersionException
+ * @throws LockException
+ * @throws ConstraintViolationException
+ * @throws RepositoryException
+ */
+ 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;
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * @param node
+ * @param exchange
+ * @throws ItemExistsException
+ * @throws PathNotFoundException
+ * @throws VersionException
+ * @throws ConstraintViolationException
+ * @throws LockException
+ * @throws MessagingException
+ * @throws RepositoryException
+ * @throws TransformerException
+ */
+ 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"));
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * @param parent
+ * @param type
+ * @param message
+ * @throws ItemExistsException
+ * @throws PathNotFoundException
+ * @throws VersionException
+ * @throws ConstraintViolationException
+ * @throws LockException
+ * @throws RepositoryException
+ * @throws MessagingException
+ * @throws TransformerException
+ */
+ 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(RESOURCE_TYPE, NORMALIZED_MESSAGE_RESOURCE_TYPE);
+ }
+ }
+
+ /**
+ *
+ *
+ *
+ * @param message
+ * @return String
+ * @throws MessagingException
+ * @throws TransformerException
+ */
+ private String getNormalizedMessageContent(NormalizedMessage message)
+ throws MessagingException, TransformerException {
+ MessageUtil.enableContentRereadability(message);
+ return TRANSFORMER.toString(message.getContent());
+ }
+}
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/html.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/html.esp?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/html.esp (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/html.esp Wed Sep 10 02:32:47 2008
@@ -27,3 +27,32 @@
<% sling.include("/content/servicemix/navigation.div"); %>
</div>
</html>
+<html>
+<head>
+<title>Apache ServiceMix :: Configuration</title>
+<link rel="stylesheet" type="text/css" href="/theme/master.css"/>
+</head>
+<body>
+<div id="page">
+<h1>Apache ServiceMix :: Configuration</h1>
+
+<div id="content">
+<br>
+<b>Configure values:</b>
+<h2></h2>
+
+<table>
+<%
+ /*
+ var current = 0;
+ for (var flow in currentNode.getChildren()) {
+ sling.include(currentNode[flow] + ".tr");
+ if (++current >= 50) break;
+ }
+ */
+%>
+</table>
+</div>
+<% sling.include("/content/servicemix/navigation.div"); %>
+</div>
+</html>
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/tr.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/tr.esp?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/tr.esp (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/config/tr.esp Wed Sep 10 02:32:47 2008
@@ -2,3 +2,7 @@
<td>→</td>
<td><a href="<%=currentNode%>.html"><%=currentNode['CorrelationId'] %></a></td>
</tr>
+<tr>
+ <td>→</td>
+ <td><a href="<%=currentNode%>.html"><%=currentNode['CorrelationId'] %></a></td>
+</tr>
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flow/tr.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flow/tr.esp?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flow/tr.esp (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flow/tr.esp Wed Sep 10 02:32:47 2008
@@ -4,3 +4,9 @@
<td>time: </td>
<td><%=currentNode['Created'] %></td>
</tr>
+<tr>
+ <td>→</td>
+ <td><a href="<%=currentNode%>.html"><%=currentNode['CorrelationId'] %></a></td>
+ <td>time: </td>
+ <td><%=currentNode['Created'] %></td>
+</tr>
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/html.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/html.esp?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/html.esp (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/html.esp Wed Sep 10 02:32:47 2008
@@ -21,3 +21,26 @@
<% sling.include("/content/servicemix/navigation.div"); %>
</div>
</html>
+<html>
+<head>
+<title>Apache ServiceMix :: Browse the archive</title>
+<link rel="stylesheet" type="text/css" href="/theme/master.css"/>
+</head>
+<body>
+<div id="page">
+<h1>Apache ServiceMix :: Browse the archive</h1>
+
+<div id="content">
+<br>
+
+
+<br><br>
+<b>exchanges:</b>
+<h2></h2>
+
+
+
+</div>
+<% sling.include("/content/servicemix/navigation.div"); %>
+</div>
+</html>
Modified: servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/tr.esp
URL: http://svn.apache.org/viewvc/servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/tr.esp?rev=693755&r1=693754&r2=693755&view=diff
==============================================================================
--- servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/tr.esp (original)
+++ servicemix/sandbox/gertv/smx-sling/servicemix-sling-console/src/main/resources/initial-content/apps/servicemix/message_flows/tr.esp Wed Sep 10 02:32:47 2008
@@ -2,3 +2,7 @@
<td>→</td>
<td><a href="<%=currentNode%>.html"><%=currentNode['CorrelationId'] %></a></td>
</tr>
+<tr>
+ <td>→</td>
+ <td><a href="<%=currentNode%>.html"><%=currentNode['CorrelationId'] %></a></td>
+</tr>