[jboss-svn-commits] JBL Code SVN: r35972 - in labs/jbossesb/workspace/johan.kumps/product/services/semantics/src: main and 22 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Nov 14 17:50:53 EST 2010


Author: johan.kumps
Date: 2010-11-14 17:50:52 -0500 (Sun, 14 Nov 2010)
New Revision: 35972

Added:
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractServiceSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AllMatchesServiceSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/ServiceSelectionAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/actions/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/actions/OWLKnowledgeBaseManagementAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ObjectFactory.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ServiceMetatDataType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/package-info.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataTypeValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeInputType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeValueType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/ServiceInvocationMBean.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/actions/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/actions/ServiceInvocationMonitoringAction.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/Fault.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringRequestType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringResponseType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ObjectFactory.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ServiceMetatDataType.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/package-info.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-common.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-fault.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-request.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-response.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-fault.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-request.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-response.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/java/
   labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/test/resources/
Log:


Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/DiscoveryAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,18 @@
+package org.jboss.soa.esb.services.semantics.actions.discovery;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface DiscoveryAction {
+
+	// Error messages
+	public static final String NO_MATCHING_SERVICES = "No matching services were found based on the user query";
+
+	/**
+	 * Method discovering services based on the given service query. Only one
+	 * service will be returned to be automatically invoked.
+	 * 
+	 * @return the found service based on the given query.
+	 */
+	public Message discover(Message message) throws Exception;
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/discovery/SPARQLDiscoveryAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,307 @@
+package org.jboss.soa.esb.services.semantics.actions.discovery;
+
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.model.DataTypeValueType;
+import org.jboss.soa.esb.services.semantics.model.ExpectedOutputType;
+import org.jboss.soa.esb.services.semantics.model.ObjectTypeInputType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.mindswap.common.ClosableIterator;
+import org.mindswap.common.Variable;
+import org.mindswap.exceptions.ParseException;
+import org.mindswap.owl.OWLEntity;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owl.OWLValue;
+import org.mindswap.query.QueryLanguage;
+import org.mindswap.query.ValueMap;
+import org.xml.sax.InputSource;
+
+/**
+ * This class is the SPARQL implementation of the DiscoveryAction interface.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class SPARQLDiscoveryAction extends AbstractActionLifecycle implements
+		DiscoveryAction {
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(SPARQLDiscoveryAction.class);
+
+	protected ConfigTree _config = null;
+
+	private JAXBContext jaxbContext = null;
+	private Unmarshaller unmarshaller = null;
+
+	/*
+	 * 
+	 */
+	public SPARQLDiscoveryAction(ConfigTree config)
+			throws ActionLifecycleException {
+		_config = config;
+		try {
+			jaxbContext = JAXBContext
+					.newInstance(Constants.SEMANTIC_MODEL_PACKAGE);
+			unmarshaller = jaxbContext.createUnmarshaller();
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionLifecycleException(e);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.jboss.soa.esb.services.semantics.actions.matchmaking.DiscoveryAction
+	 * #discover(org.jboss.soa.esb.message.Message)
+	 */
+	public Message discover(Message message) throws ActionProcessingException {
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		ServiceQueryRequestType serviceQuery = this.parseServiceQuery(message);
+
+		List<URI> matchedServiceURIs = this.getMatchedServiceURIs(serviceQuery);
+		if (logger.isDebugEnabled()) {
+			logger.debug("Discovered service URIs: [");
+			URI current = null;
+			for (Iterator<URI> iter = matchedServiceURIs.iterator(); iter
+					.hasNext();) {
+				current = iter.next();
+				logger.debug("                          " + current + ",");
+			}
+			logger.debug("].");
+		}
+		message.getBody().add(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY,
+				matchedServiceURIs);
+
+		// TODO nodig?
+		if (serviceQuery.getInputs() != null) {
+			message.getBody().add(Constants.CONSUMER_INPUTS_MESSAGE_KEY,
+					serviceQuery.getInputs());
+		}
+		return message;
+
+	}
+
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private ServiceQueryRequestType parseServiceQuery(Message message)
+			throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ServiceQueryRequestType serviceQueryRequestType = (ServiceQueryRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed ServiceQueryRequest: ["
+						+ serviceQueryRequestType + "].");
+			}
+			return serviceQueryRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+
+	/**
+	 * Method building a SPARQL query based on the given user query
+	 * 
+	 * @param serviceQuery
+	 *            the user query to use
+	 * @return the created SPARQL query string
+	 * @throws ActionProcessingException
+	 *             if something goes wrong during the building
+	 */
+	private String buildSPARQLQuery(ServiceQueryRequestType serviceQuery)
+			throws ActionProcessingException {
+		// TODO zouden we hier eigenlijk niet nodig mogen hebben. Zie syntax
+		// SPARQL!
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		StringBuffer queryBuffer = new StringBuffer(
+				"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+						+ "PREFIX pr: <http://www.daml.org/services/owl-s/1.2/Profile.owl#> "
+						+ "PREFIX prc: <http://www.daml.org/services/owl-s/1.2/Process.owl#> "
+						+ "PREFIX concepts: <http://www.example.org/concepts.owl#> "
+						+ "PREFIX sr: <http://www.daml.org/services/owl-s/1.2/Service.owl#> "
+						+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "
+						+ "SELECT ?s WHERE {" + "?s sr:presents ?o. ");
+
+		// inputs mapping
+		if (serviceQuery.getInputs() != null) {
+			if (!serviceQuery.getInputs().getObjectTypeInput().isEmpty()) {
+				List<ObjectTypeInputType> serviceQueryInputs = serviceQuery
+						.getInputs().getObjectTypeInput();
+				ObjectTypeInputType currentInput = null;
+				int count = 0;
+				for (Iterator<ObjectTypeInputType> iter = serviceQueryInputs
+						.iterator(); iter.hasNext();) {
+					currentInput = iter.next();
+					// TODO kan er gezocht worden op concept? Niet steeds eerst
+					// de naam
+					// op basis van de URI ophalen!
+					OWLEntity ontologyInput;
+					try {
+						ontologyInput = owlKnowledgeBase.getEntity(new URI(
+								currentInput.getClazz()));
+					} catch (URISyntaxException e) {
+						logger.error(e.getMessage());
+						throw new ActionProcessingException(e);
+					}
+					queryBuffer.append("?o pr:hasInput ?in" + count + ". ");
+					queryBuffer.append("?in" + count + " prc:parameterType \""
+							+ currentInput.getClazz() + "\"^^xsd:anyURI. ");
+					count++;
+				}
+			} else if (!serviceQuery.getInputs().getDataTypeInput().isEmpty()) {
+				List<DataTypeValueType> serviceQueryInputs = serviceQuery
+						.getInputs().getDataTypeInput();
+				DataTypeValueType currentInput = null;
+				int count = 0;
+				for (Iterator<DataTypeValueType> iter = serviceQueryInputs
+						.iterator(); iter.hasNext();) {
+					currentInput = iter.next();
+					// TODO kan er gezocht worden op concept? Niet steeds eerst
+					// de naam
+					// op basis van de URI ophalen!
+					OWLEntity ontologyInput;
+					try {
+						ontologyInput = owlKnowledgeBase.getEntity(new URI(
+								currentInput.getClazz()));
+					} catch (URISyntaxException e) {
+						logger.error(e.getMessage());
+						throw new ActionProcessingException(e);
+					}
+					queryBuffer.append("?o pr:hasInput ?in" + count + ". ");
+					queryBuffer.append("?in" + count + " prc:parameterType \""
+							+ currentInput.getClazz() + "\"^^xsd:anyURI. ");
+					count++;
+				}
+			}
+
+		}
+
+		// outputs mapping
+		if (serviceQuery.getOutputs() != null) {
+			List<ExpectedOutputType> serviceQueryOutputs = serviceQuery
+					.getOutputs().getOutput();
+
+			ExpectedOutputType currentOut = null;
+			int count = 0;
+			for (Iterator<ExpectedOutputType> iter = serviceQueryOutputs
+					.iterator(); iter.hasNext();) {
+				currentOut = iter.next();
+				// TODO kan er gezocht worden op concept? Niet steeds eerst de
+				// naam
+				// op basis van de URI ophalen!
+				OWLEntity type;
+				try {
+					type = owlKnowledgeBase.getEntity(new URI(currentOut
+							.getClazz()));
+				} catch (URISyntaxException e) {
+					logger.error(e.getMessage());
+					throw new ActionProcessingException(e);
+				}
+				queryBuffer.append("?o pr:hasOutput ?out" + count + ". ");
+				queryBuffer.append("?out" + count + " prc:parameterType \""
+						+ currentOut.getClazz() + "\"^^xsd:anyURI. ");
+				count++;
+			}
+		}
+
+		queryBuffer.append("} ");
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("SPARQL Query: [" + queryBuffer + "].");
+		}
+
+		return queryBuffer.toString();
+	}
+
+	/**
+	 * Method executing the SPARQL query to retrieve the URI of the service
+	 * matching the given query.
+	 * 
+	 * @param serviceQuery
+	 *            the query to use to retrieve matching services
+	 * @return the URI of the matching service
+	 * @throws ActionProcessingException
+	 */
+	private List<URI> getMatchedServiceURIs(ServiceQueryRequestType serviceQuery)
+			throws ActionProcessingException {
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		List<ValueMap<Variable, OWLValue>> services = new ArrayList<ValueMap<Variable, OWLValue>>();
+		ClosableIterator<ValueMap<Variable, OWLValue>> results = null;
+		try {
+			results = owlKnowledgeBase.makeQuery(
+					this.buildSPARQLQuery(serviceQuery), QueryLanguage.SPARQL)
+					.execute(null);
+			while (results.hasNext()) {
+				services.add(results.next());
+			}
+		} catch (ParseException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		} finally {
+			if (results != null)
+				results.close();
+		}
+		List<URI> matchedServices = new ArrayList<URI>();
+		if (services.size() > 0) {
+			ValueMap<Variable, OWLValue> current = null;
+			OWLIndividual currentIndividual = null;
+			for (Iterator<ValueMap<Variable, OWLValue>> iter = services
+					.iterator(); iter.hasNext();) {
+				current = iter.next();
+				currentIndividual = current.getIndividualValue("s");
+				matchedServices.add(currentIndividual.getURI());
+			}
+		}
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("Number of matching services: ["
+					+ matchedServices.size() + "].");
+		}
+		return matchedServices;
+
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/invocation/ServiceInvocationAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,464 @@
+package org.jboss.soa.esb.services.semantics.actions.invocation;
+
+import java.io.ByteArrayOutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.PropertyException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.model.ConceptValueType;
+import org.jboss.soa.esb.services.semantics.model.DataTypeValueType;
+import org.jboss.soa.esb.services.semantics.model.ObjectFactory;
+import org.jboss.soa.esb.services.semantics.model.ObjectTypeInputType;
+import org.jboss.soa.esb.services.semantics.model.ObjectTypeValueType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryResponseType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType.Inputs;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryResponseType.Outputs;
+import org.jboss.soa.esb.services.semantics.monitoring.ServiceInvocationMBean;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ServiceMetatDataType;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.mindswap.exceptions.ExecutionException;
+import org.mindswap.owl.OWLClass;
+import org.mindswap.owl.OWLDataProperty;
+import org.mindswap.owl.OWLDataValue;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLIndividualList;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owl.OWLObjectProperty;
+import org.mindswap.owl.OWLProperty;
+import org.mindswap.owl.OWLType;
+import org.mindswap.owl.OWLValue;
+import org.mindswap.owls.OWLSFactory;
+import org.mindswap.owls.process.Process;
+import org.mindswap.owls.process.execution.ProcessExecutionEngine;
+import org.mindswap.owls.process.variable.Input;
+import org.mindswap.owls.process.variable.Output;
+import org.mindswap.owls.service.Service;
+import org.mindswap.query.ValueMap;
+import org.mindswap.utils.Utils;
+
+/**
+ * This service invocation action invoking the selected service.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class ServiceInvocationAction extends AbstractActionLifecycle {
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(ServiceInvocationAction.class);
+
+	private JAXBContext jaxbContext = null;
+	private Marshaller marshaller = null;
+
+	public ServiceInvocationAction(ConfigTree config)
+			throws ConfigurationException {
+		try {
+			jaxbContext = JAXBContext
+					.newInstance(Constants.SEMANTIC_MODEL_PACKAGE);
+			marshaller = jaxbContext.createMarshaller();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Method executing the service identified by the given {@link java.net.URI}
+	 * using the given inputs.
+	 * 
+	 * @param serviceURI
+	 *            the service to be executed.
+	 * @param inputs
+	 *            the inputs to be used when invoking the service
+	 * @return the outputs generated by the service upon invocation.
+	 * @throws URISyntaxException
+	 */
+	public Message invoke(Message message) throws ActionProcessingException {
+
+		List<URI> uriSelectedServices = (List<URI>) message.getBody().get(
+				Constants.SELECTED_SERVICES_URI_MESSAGE_KEY);
+		String messageID = (String) message.getBody().get("messageID");
+
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		Process process = null;
+		List userInputs = null;
+
+		ProcessExecutionEngine processExecutionEngine = OWLSFactory
+				.createExecutionEngine();
+
+		ValueMap<Output, OWLValue> outputs = new ValueMap<Output, OWLValue>();
+
+		List<ServiceMetatDataType> invokedServices = new ArrayList<ServiceMetatDataType>();
+
+		URI currentServiceURI = null;
+		Service currentService = null;
+		for (Iterator<URI> iter = uriSelectedServices.iterator(); iter
+				.hasNext();) {
+			currentServiceURI = iter.next();
+
+			currentService = owlKnowledgeBase.getService(currentServiceURI);
+			process = currentService.getProcess();
+
+			if (!((Inputs) message.getBody().get(
+					Constants.CONSUMER_INPUTS_MESSAGE_KEY))
+					.getObjectTypeInput().isEmpty()) {
+				userInputs = ((Inputs) message.getBody().get(
+						Constants.CONSUMER_INPUTS_MESSAGE_KEY))
+						.getObjectTypeInput();
+				try {
+					outputs = processExecutionEngine.execute(process, this
+							.buildProcessInputsObjectTypeInputs(userInputs,
+									process, currentServiceURI),
+							owlKnowledgeBase);
+					invokedServices
+							.add(this.getServiceMetaData(currentService));
+				} catch (ExecutionException e) {
+					e.getCause().printStackTrace();
+					logger.error(e.getMessage());
+					throw new ActionProcessingException(e);
+				}
+
+			} else if (!((Inputs) message.getBody().get(
+					Constants.CONSUMER_INPUTS_MESSAGE_KEY)).getDataTypeInput()
+					.isEmpty()) {
+				userInputs = ((Inputs) message.getBody().get(
+						Constants.CONSUMER_INPUTS_MESSAGE_KEY))
+						.getDataTypeInput();
+				try {
+					outputs.putMap(processExecutionEngine.execute(process, this
+							.buildProcessInputsDataTypeInputs(userInputs,
+									process, currentServiceURI),
+							owlKnowledgeBase));
+					invokedServices
+							.add(this.getServiceMetaData(currentService));
+				} catch (ExecutionException e) {
+					logger.error(e.getMessage());
+					throw new ActionProcessingException(e);
+				}
+			}
+		}
+
+		ServiceInvocationMBean.getInstance().setServicesLastInvocation(
+				invokedServices);
+
+		this.buildResponseMessage(this.buildServiceQueryResponseType(messageID,
+				outputs, process), message);
+
+		return message;
+
+	}
+
+	private ServiceMetatDataType getServiceMetaData(Service currentService) {
+		ServiceMetatDataType serviceMetatDataType = new ServiceMetatDataType();
+		serviceMetatDataType.setName(currentService.getName());
+		serviceMetatDataType.setDescription(currentService.getProfile()
+				.getTextDescription());
+		serviceMetatDataType.setUri(currentService.getURI().toString());
+		return serviceMetatDataType;
+	}
+
+	/**
+	 * This method converts the base data type consumer inputs into the
+	 * parameters for the execution engine
+	 * 
+	 * @param userInputs
+	 *            the consumer inputs to convert
+	 * @param process
+	 *            the process inputs
+	 * @param serviceURI
+	 *            the uri of the service to invoke
+	 * @return the inputs for the execution engine
+	 */
+	private ValueMap<Input, OWLValue> buildProcessInputsDataTypeInputs(
+			List<DataTypeValueType> userInputs, Process process, URI serviceURI) {
+		// initialize the input values to be empty
+		ValueMap<Input, OWLValue> inputs = new ValueMap<Input, OWLValue>();
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		DataTypeValueType currentUserInput = null;
+
+		// looping over all given inputs
+		for (int i = 0; i < userInputs.size(); i++) {
+			currentUserInput = userInputs.get(i);
+
+			// get the parameter using the local name
+			inputs.setValue(process.getInput(owlKnowledgeBase.getEntity(
+					URI.create(currentUserInput.getName())).getLocalName()),
+					owlKnowledgeBase.createDataValue(currentUserInput
+							.getValue()));
+		}
+
+		return inputs;
+	}
+
+	/**
+	 * This method converts the object type consumer inputs into the parameters
+	 * for the execution engine
+	 * 
+	 * @param userInputs
+	 *            the consumer inputs to convert
+	 * @param process
+	 *            the process inputs
+	 * @param serviceURI
+	 *            the uri of the service to invoke
+	 * @return the inputs for the execution engine
+	 */
+	private ValueMap<Input, OWLValue> buildProcessInputsObjectTypeInputs(
+			List<ObjectTypeInputType> userInputs, Process process,
+			URI serviceURI) {
+		// initialize the input values to be empty
+		ValueMap<Input, OWLValue> inputs = new ValueMap<Input, OWLValue>();
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		OWLIndividualList<Input> processInputs = process.getInputs();
+		ObjectTypeInputType currentUserInput = null;
+
+		OWLClass rootClass = null;
+		OWLIndividual rootIndividual = null;
+
+		DataTypeValueType currentDataValue = null;
+		OWLDataProperty currentDataProperty = null;
+
+		ObjectTypeValueType currentObjectValue = null;
+		OWLClass currentObjectValueClass = null;
+		OWLIndividual currentObjectValueIndividual = null;
+		OWLObjectProperty currentObjectProperty = null;
+		DataTypeValueType currentObjectValueDataValue = null;
+		OWLDataProperty currentObjectValueDataProperty = null;
+
+		// String currentProcessInputLocalName = null;
+
+		try {
+			// looping over all given inputs
+			for (int i = 0; i < userInputs.size(); i++) {
+				currentUserInput = userInputs.get(i);
+				// root instance
+				rootClass = owlKnowledgeBase.getClass(new URI(currentUserInput
+						.getClazz()));
+				rootIndividual = owlKnowledgeBase.createInstance(rootClass,
+						null);
+
+				if (logger.isDebugEnabled()) {
+					logger.debug("rootClass : " + rootClass);
+					logger.debug("rootIndividual : " + rootIndividual);
+				}
+				// Lowering all datavalues
+				for (Iterator<DataTypeValueType> dataValueIterator = currentUserInput
+						.getDataTypeValue().iterator(); dataValueIterator
+						.hasNext();) {
+					currentDataValue = dataValueIterator.next();
+					currentDataProperty = owlKnowledgeBase
+							.getDataProperty(new URI(currentDataValue.getName()));
+					if (logger.isDebugEnabled()) {
+						logger.debug("currentDataProperty : "
+								+ currentDataProperty);
+					}
+					rootIndividual.addProperty(currentDataProperty,
+							currentDataValue.getValue());
+				}
+				// transfering all objectvalues
+				for (Iterator<ObjectTypeValueType> objectValueIterator = currentUserInput
+						.getObjectTypeValue().iterator(); objectValueIterator
+						.hasNext();) {
+					currentObjectValue = objectValueIterator.next();
+					currentObjectValueClass = owlKnowledgeBase
+							.getClass(new URI(currentObjectValue.getClazz()));
+					currentObjectValueIndividual = owlKnowledgeBase
+							.createInstance(currentObjectValueClass, null);
+
+					if (logger.isDebugEnabled()) {
+						logger.debug("currentObjectValueClass : "
+								+ currentObjectValueClass);
+						logger.debug("currentObjectValueIndividual : "
+								+ currentObjectValueIndividual);
+					}
+					// looping data values of the current object value
+					for (Iterator<DataTypeValueType> objectValueDataValueIterator = currentObjectValue
+							.getDataValue().iterator(); objectValueDataValueIterator
+							.hasNext();) {
+						currentObjectValueDataValue = objectValueDataValueIterator
+								.next();
+						currentObjectValueDataProperty = owlKnowledgeBase
+								.getDataProperty(new URI(
+										currentObjectValueDataValue.getName()));
+						currentObjectValueIndividual.addProperty(
+								currentObjectValueDataProperty,
+								currentObjectValueDataValue.getValue());
+
+						if (logger.isDebugEnabled()) {
+							logger.debug("currentObjectValueDataProperty : "
+									+ currentObjectValueDataProperty);
+						}
+					}
+					// owlKnowledgeBase.getEntity(URI.create(currentObjectValue.getConcept())).getLocalName()
+
+					currentObjectProperty = owlKnowledgeBase
+							.getObjectProperty(URI.create(currentObjectValue
+									.getName()));
+					rootIndividual.addProperty(currentObjectProperty,
+							currentObjectValueIndividual);
+				}
+				if (logger.isDebugEnabled()) {
+					logger.debug("Genereted RDF : "
+							+ rootIndividual.toRDF(true, true));
+				}
+
+				// get the parameter using the local name
+				inputs.setValue(process.getInput(processInputs.get(0)
+						.getLocalName()), rootIndividual);
+			}
+
+		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return inputs;
+	}
+
+	/**
+	 * This message builds a ServiceQueryResponseType instance based on the
+	 * outputs of the service
+	 * 
+	 * @param messageId
+	 *            the id of the consumer request
+	 * @param outputs
+	 *            the service outputs (effects)
+	 * @param process
+	 *            the process being invoked
+	 * @return the ServiceQueryResponseType containing the effects of the
+	 *         service
+	 */
+	private ServiceQueryResponseType buildServiceQueryResponseType(
+			String messageId, ValueMap<Output, OWLValue> outputs,
+			Process process) {
+
+		Output currentOutput = null;
+		OWLIndividual currentOwlIndividual = null;
+		Outputs serviceOutputs = ObjectFactory.getInstance()
+				.createServiceQueryResponseTypeOutputs();
+		ServiceQueryResponseType serviceQueryResponse = ObjectFactory
+				.getInstance().createServiceQueryResponseType();
+		for (Iterator<Output> iter = outputs.getVariables().iterator(); iter
+				.hasNext();) {
+			currentOutput = iter.next();
+			
+			ConceptValueType output = ObjectFactory.getInstance()
+					.createConceptValueType();
+			if (currentOutput.getParamType().isClass()) {
+				currentOwlIndividual = outputs.getIndividualValue(currentOutput);
+				
+				Set<OWLProperty> keys = currentOwlIndividual.getProperties().keySet();
+				OWLProperty currentProperty = null;
+				
+				StringBuffer outString = new StringBuffer("SymposiumConcepts.owlBestBuyInformation\n");
+				for (Iterator<OWLProperty> iter2 = keys.iterator(); iter2.hasNext();){
+					currentProperty = iter2.next();
+					if (currentProperty.isDatatypeProperty()){
+						outString.append(currentProperty.getLocalName() + " = " + currentOwlIndividual.getProperty((OWLDataProperty)currentProperty).getValue() + "\n");						
+					}
+				}
+				
+				output.setDataValue(outString.toString());
+			} else {
+				output.setDataValue(outputs.getDataValue(
+						currentOutput.getName()).toString());
+			}
+			
+			output.setConcept(currentOutput.getURI().toString());
+
+			serviceOutputs.getOutput().add(output);
+		}
+
+		serviceQueryResponse.setOutputs(serviceOutputs);
+
+		serviceQueryResponse.setId(messageId);
+
+		return serviceQueryResponse;
+	}
+
+	/*
+	 * private ServiceQueryResponseType buildServiceQueryResponseType( String
+	 * messageId, ValueMap<Output, OWLValue> outputs, Process process) {
+	 * 
+	 * OWLIndividualList<Output> processOutputs = process.getOutputs();
+	 * 
+	 * 
+	 * Output currentOutput = null;
+	 * 
+	 * ServiceQueryResponseType serviceQueryResponse = ObjectFactory
+	 * .getInstance().createServiceQueryResponseType();
+	 * serviceQueryResponse.setId(messageId); Outputs serviceOutputs =
+	 * ObjectFactory.getInstance() .createServiceQueryResponseTypeOutputs();
+	 * OWLIndividual currentOwlIndividual = null; for (int i = 0; i <
+	 * processOutputs.size(); i++) { currentOutput = processOutputs.get(i);
+	 * 
+	 * ConceptValueType output = ObjectFactory.getInstance()
+	 * .createConceptValueType(); if (currentOutput.getParamType().isClass()) {
+	 * currentOwlIndividual = outputs.getIndividualValue(process.getOutput());
+	 * output.setDataValue(Utils.formatRDF(currentOwlIndividual.toRDF(true,
+	 * true))); } else {
+	 * output.setDataValue(outputs.getDataValue(currentOutput.getName())
+	 * .toString()); } output.setConcept(currentOutput.getURI().toString());
+	 * 
+	 * serviceOutputs.getOutput().add(output); }
+	 * serviceQueryResponse.setOutputs(serviceOutputs);
+	 * 
+	 * return serviceQueryResponse; }
+	 */
+
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			ServiceQueryResponseType serviceQueryResponseType, Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			this.marshaller.marshal(ObjectFactory.getInstance()
+					.createServiceQueryResponse(serviceQueryResponseType),
+					outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractServiceSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractServiceSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractServiceSelectionAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,40 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.mindswap.owls.service.Service;
+
+public abstract class AbstractServiceSelectionAction implements
+		ServiceSelectionAction {
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(AbstractServiceSelectionAction.class);
+
+	public abstract Message select(Message message) throws Exception;
+
+	protected ConfigTree _config = null;
+
+	/*
+	 * 
+	 */
+	public AbstractServiceSelectionAction(ConfigTree config)
+			throws ActionLifecycleException {
+		_config = config;
+	}
+
+	protected void printServiceInfo(Service service) {
+		if (logger.isDebugEnabled()) {
+			logger.debug("Service metadata : ");
+			logger.debug("-------------------");
+			logger.debug("Service URI: " + service.getURI().toString());
+			logger.debug("Service Name: " + service.getLabel(null));
+			logger.debug("Service Description: "
+					+ service.getProfile().getTextDescription());
+		}
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AllMatchesServiceSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AllMatchesServiceSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AllMatchesServiceSelectionAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,53 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.actions.discovery.DiscoveryAction;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+
+/**
+ * This discoveryAction selects all service out of the services matching the
+ * user query.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class AllMatchesServiceSelectionAction extends
+		AbstractServiceSelectionAction {
+	
+	public AllMatchesServiceSelectionAction(ConfigTree config)
+			throws ActionLifecycleException {
+		super(config);
+	}
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(AllMatchesServiceSelectionAction.class);
+
+	public Message select(Message message) throws ActionProcessingException {
+		List<URI> matchedServices = (List<URI>) message.getBody().get(
+				Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY);
+		List<URI> selectedServices = new ArrayList<URI>();
+		if (matchedServices.size() > 0) {
+			selectedServices.addAll(matchedServices);
+			message.getBody().add(Constants.SELECTED_SERVICES_URI_MESSAGE_KEY,
+					selectedServices);
+		} else {
+			logger.error(DiscoveryAction.NO_MATCHING_SERVICES
+					+ "[BUG : Exception should not be encountered here]");
+			throw new ActionProcessingException(
+					DiscoveryAction.NO_MATCHING_SERVICES);
+		}
+		return message;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/ServiceSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/ServiceSelectionAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/ServiceSelectionAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,15 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface ServiceSelectionAction {
+
+	/**
+	 * Method discovering services based on the given service query. Only one
+	 * service will be returned to be automatically invoked.
+	 * 
+	 * @return the found service based on the given query.
+	 */
+	public Message select(Message message) throws Exception;
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OWLKnowledgeBaseManager.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,57 @@
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.mindswap.owl.OWLFactory;
+import org.mindswap.owl.OWLKnowledgeBase;
+
+public class OWLKnowledgeBaseManager {
+
+	private static OWLKnowledgeBaseManager instance = null;
+
+	private OWLKnowledgeBase owlKnowledgeBase = null;
+
+	private OWLKnowledgeBaseManager() {
+		this.init();
+	}
+
+	public static OWLKnowledgeBaseManager getInstance() {
+		if (instance == null) {
+			instance = new OWLKnowledgeBaseManager();
+		}
+		return instance;
+	}
+
+	public OWLKnowledgeBase getOwlKnowledgeBase() {
+		return this.owlKnowledgeBase;
+	}
+
+	private void init() {
+		this.owlKnowledgeBase = OWLFactory.createKB();
+		this.owlKnowledgeBase.setReasoner("Pellet");
+
+		/*// Load default service ontologies
+		try {
+			this.owlKnowledgeBase
+					.read(new URI(
+							"file://C:/projecten/JBossESB/ssoa/owls-api-3.0/getGreeting-Simulated.owl"));
+			this.owlKnowledgeBase
+					.read(new URI(
+							"file://C:/projecten/JBossESB/ssoa/owls-api-3.0/BookFinder.owl"));
+			this.owlKnowledgeBase
+					.read(new URI(
+							"file://C:/projecten/JBossESB/ssoa/owls-api-3.0/GetWeather2-Simulated.owl"));
+			// this.owlKnowledgeBase.read(new
+			// URI("file://C:/projecten/JBossESB/ssoa/owls-api-3.0/GetWeather2.owl"));
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (URISyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}*/
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryService.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import org.jboss.system.ServiceMBeanSupport;
+import org.mindswap.owl.OWLKnowledgeBase;
+
+/**
+ * MBean controlling the OWL Service Registry service initialisation.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ */
+public class OwlServiceRegistryService extends ServiceMBeanSupport implements
+		OwlServiceRegistryServiceMBean {
+	@Override
+	protected void startService() throws Exception {
+		System.out.println("OwlServiceRegistryService.startService() called!");
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+
+		// register configured services.
+		super.startService();
+	}
+
+	@Override
+	protected void stopService() throws Exception {
+		super.stopService();
+		// own destroy
+		System.out.println("OwlServiceRegistryService.stopService() called!");
+	}
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/OwlServiceRegistryServiceMBean.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.semantics.configuration;
+
+import org.jboss.system.ServiceMBean;
+
+/**
+ * Interface for the OWL Service Registry service initialisation MBean.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ */
+public interface OwlServiceRegistryServiceMBean extends ServiceMBean {
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/actions/OWLKnowledgeBaseManagementAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/actions/OWLKnowledgeBaseManagementAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/actions/OWLKnowledgeBaseManagementAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,502 @@
+package org.jboss.soa.esb.services.semantics.configuration.actions;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.PropertyException;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionLifecycle;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.actions.discovery.DiscoveryAction;
+import org.jboss.soa.esb.services.semantics.configuration.OWLKnowledgeBaseManager;
+import org.jboss.soa.esb.services.semantics.configuration.model.IsRegisteredRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.IsRegisteredResponseType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ListRegisteredRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ListRegisteredResponseType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ManagementRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ManagementResponseType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ObjectFactory;
+import org.jboss.soa.esb.services.semantics.configuration.model.RegistrationRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.RegistrationResponseType;
+import org.jboss.soa.esb.services.semantics.configuration.model.ServiceMetatDataType;
+import org.jboss.soa.esb.services.semantics.configuration.model.UnRegistrationRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.UnRegistrationResponseType;
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryResponseType;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.mindswap.owl.OWLFactory;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLIndividualList;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owls.service.Service;
+import org.xml.sax.InputSource;
+
+/**
+ * This discoveryAction selects all service out of the services matching the
+ * user query.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class OWLKnowledgeBaseManagementAction implements ActionLifecycle {
+
+	private JAXBContext jaxbContext = null;
+	private Unmarshaller unmarshaller = null;
+	private Marshaller marshaller = null;
+
+	public OWLKnowledgeBaseManagementAction(ConfigTree config)
+			throws ActionLifecycleException {
+		try {
+			jaxbContext = JAXBContext
+					.newInstance(Constants.SEMANTIC_CONFIGURATION_MODEL_PACKAGE);
+			unmarshaller = jaxbContext.createUnmarshaller();
+			marshaller = jaxbContext.createMarshaller();
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionLifecycleException(e);
+		}
+	}
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(OWLKnowledgeBaseManagementAction.class);
+
+	public Message register(Message message) throws ActionProcessingException {
+		if (logger.isDebugEnabled()) {
+			this.logger.debug("register called");
+		}
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		RegistrationRequestType registrationRequestType = this
+				.parseRegisterRequestType(message);
+
+		RegistrationResponseType registrationResponseType = ObjectFactory
+				.getInstance().createRegistrationResponseType();
+		if (registrationRequestType.getServiceURI() != null) {
+			try {
+				owlKnowledgeBase.read(URI.create(registrationRequestType
+						.getServiceURI()));
+				registrationResponseType.setMessage("Registration of service "
+						+ registrationRequestType.getServiceURI()
+						+ " finished successfully.");
+			} catch (IOException e) {
+				logger.error(e.getMessage());
+				registrationResponseType.setMessage(e.getMessage());
+				throw new ActionProcessingException(e);
+			}
+		}
+		return this.buildResponseMessage(registrationResponseType, message);
+	}
+
+	public Message unRegister(Message message) throws ActionProcessingException {
+		if (logger.isDebugEnabled()) {
+			this.logger.debug("unregister called");
+		}
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		UnRegistrationRequestType unRegistrationRequestType = this
+				.parseUnRegistrationRequestType(message);
+
+		UnRegistrationResponseType unRegistrationResponseType = ObjectFactory
+				.getInstance().createUnRegistrationResponseType();
+		if (unRegistrationRequestType.getServiceURI() != null) {
+			//OWLKnowledgeBase tempOwlKnowledgeBase = OWLFactory.createKB();
+			//try {
+				//tempOwlKnowledgeBase.read(URI.create(unRegistrationRequestType
+					//	.getServiceURI()));
+//				OWLIndividualList<Service> services = tempOwlKnowledgeBase.getServices(false);
+//				Iterator<Service> iter = services.iterator();
+//				Service currentService = null;
+//				while (iter.hasNext()){
+//					currentService = iter.next();
+//					owlKnowledgeBase.unload(currentService.getURI());
+//				}
+				owlKnowledgeBase.unload(URI.create(unRegistrationRequestType.getServiceURI()));
+				unRegistrationResponseType.setMessage("UnRegistration of service "
+						+ unRegistrationRequestType.getServiceURI()
+						+ " finished successfully.");
+//			} catch (IOException e) {
+//				logger.error(e.getMessage());
+//				unRegistrationResponseType.setMessage("UnRegistration of service "
+//						+ unRegistrationRequestType.getServiceURI()
+//						+ " failed.");
+//				throw new ActionProcessingException(e);
+//			}
+			
+		}
+		return this.buildResponseMessage(unRegistrationResponseType, message);
+	}
+
+	public Message isRegistered(Message message)
+			throws ActionProcessingException {
+		if (logger.isDebugEnabled()) {
+			this.logger.debug("isRegistered called");
+		}
+		OWLKnowledgeBase tempOwlKnowledgeBase = OWLFactory.createKB();
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		IsRegisteredRequestType isRegisteredRequestType = this
+				.parseIsRegisteredRequestType(message);
+		
+		IsRegisteredResponseType isRegisteredResponseType = ObjectFactory
+				.getInstance().createIsRegisteredResponseType();
+		if (isRegisteredRequestType.getServiceURI() != null) {
+			try {
+				tempOwlKnowledgeBase.read(URI.create(isRegisteredRequestType
+						.getServiceURI()));
+				OWLIndividualList<Service> services = tempOwlKnowledgeBase.getServices(false);
+				boolean result = false;
+				Iterator<Service> iter = services.iterator();
+				Service currentService = null;
+				while (iter.hasNext()){
+					currentService = iter.next();
+					result = owlKnowledgeBase.getService(currentService.getURI()) != null;
+				}
+				
+				isRegisteredResponseType.setRegistered(result);
+			} catch (IOException e) {
+				logger.error(e.getMessage());
+				isRegisteredResponseType.setRegistered(false);
+				throw new ActionProcessingException(e);
+			}
+		}
+		return this.buildResponseMessage(isRegisteredResponseType, message);
+	}
+
+	public Message listRegistered(Message message) throws ActionProcessingException{
+		if (logger.isDebugEnabled()) {
+			this.logger.debug("listRegistered called");
+		}
+		OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+				.getInstance().getOwlKnowledgeBase();
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		ListRegisteredRequestType listRegisteredRequestType = this
+				.parseListRegisteredRequestType(message);
+		
+		List<Service> registeredServices = owlKnowledgeBase.getServices(false);
+		Service currentService = null;
+		ListRegisteredResponseType listRegisteredResponseType = ObjectFactory
+			.getInstance().createListRegisteredResponseType();
+		
+		for (Iterator<Service> iter = registeredServices.iterator(); iter.hasNext();){
+			currentService = iter.next();
+			ServiceMetatDataType currentMetatDataType = new ServiceMetatDataType();
+			currentMetatDataType.setUri(currentService.getURI().toString());
+			currentMetatDataType.setName(currentService.getName());
+			currentMetatDataType.setDescription(currentService.getProfile().getTextDescription());
+			listRegisteredResponseType.getServices().getService().add(currentMetatDataType);
+		}
+
+		return this.buildResponseMessage(listRegisteredResponseType, message);
+	}
+	
+	public void destroy() throws ActionLifecycleException {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void initialise() throws ActionLifecycleException {
+		// TODO Auto-generated method stub
+
+	}
+
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private RegistrationRequestType parseRegisterRequestType(Message message)
+			throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ManagementRequestType managementRequestType = (ManagementRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			RegistrationRequestType registrationRequestType = managementRequestType
+					.getRegistrationCommand();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed RegistrationRequestType: ["
+						+ registrationRequestType + "].");
+			}
+			return registrationRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+	
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private ListRegisteredRequestType parseListRegisteredRequestType(Message message)
+			throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ManagementRequestType managementRequestType = (ManagementRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			ListRegisteredRequestType listRegisteredRequestType = managementRequestType
+					.getListRegisteredCommand();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed ListRegisteredRequestType: ["
+						+ listRegisteredRequestType + "].");
+			}
+			return listRegisteredRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private UnRegistrationRequestType parseUnRegistrationRequestType(
+			Message message) throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ManagementRequestType managementRequestType = (ManagementRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			UnRegistrationRequestType unRegistrationRequestType = managementRequestType
+					.getUnRegistrationCommand();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed UnRegistrationRequestType: ["
+						+ unRegistrationRequestType + "].");
+			}
+			return unRegistrationRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+	
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private IsRegisteredRequestType parseIsRegisteredRequestType(
+			Message message) throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			ManagementRequestType managementRequestType = (ManagementRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			IsRegisteredRequestType isRegisteredRequestType = managementRequestType.getIsRegisteredCommand();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed IsRegisteredRequestType: ["
+						+ isRegisteredRequestType + "].");
+			}
+			return isRegisteredRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			RegistrationResponseType registrationResponseType, Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			ManagementResponseType managementResponseType = ObjectFactory
+					.getInstance().createManagementResponseType();
+			managementResponseType
+					.setRegistrationCommand(registrationResponseType);
+			this.marshaller.marshal(managementResponseType, outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			UnRegistrationResponseType unRegistrationResponseType,
+			Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			ManagementResponseType managementResponseType = ObjectFactory
+					.getInstance().createManagementResponseType();
+			managementResponseType
+					.setUnRegistrationCommand(unRegistrationResponseType);
+			this.marshaller.marshal(managementResponseType, outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+	
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			ListRegisteredResponseType listRegisteredResponseType,
+			Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			ManagementResponseType managementResponseType = ObjectFactory
+					.getInstance().createManagementResponseType();
+			managementResponseType
+					.setListRegisteredCommand(listRegisteredResponseType);
+			this.marshaller.marshal(managementResponseType, outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+	
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			IsRegisteredResponseType isRegisteredResponseType,
+			Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			ManagementResponseType managementResponseType = ObjectFactory
+					.getInstance().createManagementResponseType();
+			managementResponseType
+					.setIsRegisteredCommand(isRegisteredResponseType);
+			this.marshaller.marshal(managementResponseType, outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BaseCommandResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BaseCommandResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="serviceURI" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "BaseCommandResponseType", propOrder = {
+    "serviceURI"
+})
+public class BaseCommandResponseType {
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String serviceURI;
+
+    /**
+     * Gets the value of the serviceURI property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getServiceURI() {
+        return serviceURI;
+    }
+
+    /**
+     * Sets the value of the serviceURI property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setServiceURI(String value) {
+        this.serviceURI = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/BaseCommandType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BaseCommandType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BaseCommandType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="serviceURI" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "BaseCommandType", propOrder = {
+    "serviceURI"
+})
+public class BaseCommandType {
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String serviceURI;
+
+    /**
+     * Gets the value of the serviceURI property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getServiceURI() {
+        return serviceURI;
+    }
+
+    /**
+     * Sets the value of the serviceURI property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setServiceURI(String value) {
+        this.serviceURI = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for IsRegisteredRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="IsRegisteredRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="serviceURI" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "IsRegisteredRequestType", propOrder = {
+    "serviceURI"
+})
+public class IsRegisteredRequestType {
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String serviceURI;
+
+    /**
+     * Gets the value of the serviceURI property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getServiceURI() {
+        return serviceURI;
+    }
+
+    /**
+     * Sets the value of the serviceURI property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setServiceURI(String value) {
+        this.serviceURI = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/IsRegisteredResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,52 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for IsRegisteredResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="IsRegisteredResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="registered" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "IsRegisteredResponseType", propOrder = {
+    "registered"
+})
+public class IsRegisteredResponseType {
+
+    protected boolean registered;
+
+    /**
+     * Gets the value of the registered property.
+     * 
+     */
+    public boolean isRegistered() {
+        return registered;
+    }
+
+    /**
+     * Sets the value of the registered property.
+     * 
+     */
+    public void setRegistered(boolean value) {
+        this.registered = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,32 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ListRegisteredRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ListRegisteredRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ListRegisteredRequestType")
+public class ListRegisteredRequestType {
+
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ListRegisteredResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,134 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ListRegisteredResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ListRegisteredResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="services">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="service" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}ServiceMetatDataType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ListRegisteredResponseType", propOrder = {
+    "services"
+})
+public class ListRegisteredResponseType {
+
+    @XmlElement(required = true)
+    protected ListRegisteredResponseType.Services services = new ListRegisteredResponseType.Services();
+
+    /**
+     * Gets the value of the services property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListRegisteredResponseType.Services }
+     *     
+     */
+    public ListRegisteredResponseType.Services getServices() {
+        return services;
+    }
+
+    /**
+     * Sets the value of the services property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListRegisteredResponseType.Services }
+     *     
+     */
+    public void setServices(ListRegisteredResponseType.Services value) {
+        this.services = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="service" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}ServiceMetatDataType" maxOccurs="unbounded"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "service"
+    })
+    public static class Services {
+
+        @XmlElement(required = true)
+        protected List<ServiceMetatDataType> service = new ArrayList<ServiceMetatDataType>();
+
+        /**
+         * Gets the value of the service property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the service property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getService().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link ServiceMetatDataType }
+         * 
+         * 
+         */
+        public List<ServiceMetatDataType> getService() {
+            if (service == null) {
+                service = new ArrayList<ServiceMetatDataType>();
+            }
+            return this.service;
+        }
+
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,143 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ManagementRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ManagementRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;choice>
+ *           &lt;element name="registrationCommand" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}RegistrationRequestType"/>
+ *           &lt;element name="unregistrationCommand" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}UnRegistrationRequestType"/>
+ *           &lt;element name="isRegisteredCommand" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}IsRegisteredRequestType"/>
+ *           &lt;element name="listRegisteredCommand" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}ListRegisteredRequestType"/>
+ *         &lt;/choice>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ManagementRequestType", propOrder = {
+    "registrationCommand",
+    "unRegistrationCommand",
+    "isRegisteredCommand",
+    "listRegisteredCommand"
+})
+public class ManagementRequestType {
+
+    protected RegistrationRequestType registrationCommand;
+    protected UnRegistrationRequestType unRegistrationCommand;
+    protected IsRegisteredRequestType isRegisteredCommand;
+	protected ListRegisteredRequestType listRegisteredCommand;
+
+    /**
+     * Gets the value of the registrationCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RegistrationRequestType }
+     *     
+     */
+    public RegistrationRequestType getRegistrationCommand() {
+        return registrationCommand;
+    }
+
+    /**
+     * Sets the value of the registrationCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RegistrationRequestType }
+     *     
+     */
+    public void setRegistrationCommand(RegistrationRequestType value) {
+        this.registrationCommand = value;
+    }
+
+    /**
+     * Gets the value of the unregistrationCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link UnRegistrationRequestType }
+     *     
+     */
+    public UnRegistrationRequestType getUnRegistrationCommand() {
+        return unRegistrationCommand;
+    }
+
+    /**
+     * Sets the value of the unregistrationCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link UnRegistrationRequestType }
+     *     
+     */
+    public void setUnregistrationCommand(UnRegistrationRequestType value) {
+        this.unRegistrationCommand = value;
+    }
+
+    /**
+     * Gets the value of the isRegisteredCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link IsRegisteredRequestType }
+     *     
+     */
+    public IsRegisteredRequestType getIsRegisteredCommand() {
+        return isRegisteredCommand;
+    }
+
+    /**
+     * Sets the value of the isRegisteredCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link IsRegisteredRequestType }
+     *     
+     */
+    public void setIsRegisteredCommand(IsRegisteredRequestType value) {
+        this.isRegisteredCommand = value;
+    }
+ 
+	/**
+     * Gets the value of the listRegisteredCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListRegisteredRequestType }
+     *     
+     */
+    public ListRegisteredRequestType getListRegisteredCommand() {
+        return listRegisteredCommand;
+    }
+
+    /**
+     * Sets the value of the listRegisteredCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListRegisteredRequestType }
+     *     
+     */
+    public void setListRegisteredCommand(ListRegisteredRequestType value) {
+        this.listRegisteredCommand = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ManagementResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,109 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ManagementResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ManagementResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="registrationCommand" type="{http://jboss.org/soa/esb/services/semantics/configuration/model}RegistrationResponseType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ManagementResponseType", propOrder = {
+	    "registrationCommand",
+	    "unRegistrationCommand",
+	    "isRegisteredCommand",
+		"listRegisteredCommand"
+})
+ at XmlRootElement
+public class ManagementResponseType {
+
+    
+    protected RegistrationResponseType registrationCommand;
+    protected UnRegistrationResponseType unRegistrationCommand;
+    protected IsRegisteredResponseType isRegisteredCommand;
+	protected ListRegisteredResponseType listRegisteredCommand;
+
+    /**
+     * Gets the value of the registrationCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RegistrationResponseType }
+     *     
+     */
+    public RegistrationResponseType getRegistrationCommand() {
+        return registrationCommand;
+    }
+
+    /**
+     * Sets the value of the registrationCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RegistrationResponseType }
+     *     
+     */
+    public void setRegistrationCommand(RegistrationResponseType value) {
+        this.registrationCommand = value;
+    }
+
+	public UnRegistrationResponseType getUnRegistrationCommand() {
+		return unRegistrationCommand;
+	}
+
+	public void setUnRegistrationCommand(
+			UnRegistrationResponseType unRegistrationCommand) {
+		this.unRegistrationCommand = unRegistrationCommand;
+	}
+
+	public IsRegisteredResponseType getIsRegisteredCommand() {
+		return isRegisteredCommand;
+	}
+
+	public void setIsRegisteredCommand(IsRegisteredResponseType isRegisteredCommand) {
+		this.isRegisteredCommand = isRegisteredCommand;
+	}
+/**
+     * Gets the value of the listRegisteredCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListRegisteredResponseType }
+     *     
+     */
+    public ListRegisteredResponseType getListRegisteredCommand() {
+        return listRegisteredCommand;
+    }
+
+    /**
+     * Sets the value of the listRegisteredCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListRegisteredResponseType }
+     *     
+     */
+    public void setListRegisteredCommand(ListRegisteredResponseType value) {
+        this.listRegisteredCommand = value;
+    }
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ObjectFactory.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ObjectFactory.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ObjectFactory.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,164 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.soa.esb.services.semantics.configuration.model package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _ManagementRequestElement_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/configuration/model", "managementRequestElement");
+    private final static QName _MaangementResponseElement_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/configuration/model", "maangementResponseElement");
+    
+    private static final ObjectFactory INSTANCE = new ObjectFactory();
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.soa.esb.services.semantics.configuration.model
+     * 
+     */
+    private ObjectFactory() {
+    }
+
+    public static ObjectFactory getInstance(){
+    	return INSTANCE;
+    }
+    /**
+     * Create an instance of {@link IsRegisteredResponseType }
+     * 
+     */
+    public IsRegisteredResponseType createIsRegisteredResponseType() {
+        return new IsRegisteredResponseType();
+    }
+
+    /**
+     * Create an instance of {@link RegistrationRequestType }
+     * 
+     */
+    public RegistrationRequestType createRegistrationRequestType() {
+        return new RegistrationRequestType();
+    }
+
+    /**
+     * Create an instance of {@link BaseCommandResponseType }
+     * 
+     */
+    public BaseCommandResponseType createBaseCommandResponseType() {
+        return new BaseCommandResponseType();
+    }
+
+    /**
+     * Create an instance of {@link UnRegistrationResponseType }
+     * 
+     */
+    public UnRegistrationResponseType createUnRegistrationResponseType() {
+        return new UnRegistrationResponseType();
+    }
+
+    /**
+     * Create an instance of {@link RegistrationResponseType }
+     * 
+     */
+    public RegistrationResponseType createRegistrationResponseType() {
+        return new RegistrationResponseType();
+    }
+
+	/**
+     * Create an instance of {@link ListRegisteredResponseType }
+     * 
+     */
+    public ListRegisteredResponseType createListRegisteredResponseType() {
+        return new ListRegisteredResponseType();
+    }
+
+    /**
+     * Create an instance of {@link ListRegisteredResponseType.Services }
+     * 
+     */
+    public ListRegisteredResponseType.Services createListRegisteredResponseTypeServices() {
+        return new ListRegisteredResponseType.Services();
+    }
+
+    /**
+     * Create an instance of {@link ManagementRequestType }
+     * 
+     */
+    public ManagementRequestType createManagementRequestType() {
+        return new ManagementRequestType();
+    }
+
+    /**
+     * Create an instance of {@link IsRegisteredRequestType }
+     * 
+     */
+    public IsRegisteredRequestType createIsRegisteredRequestType() {
+        return new IsRegisteredRequestType();
+    }
+
+    /**
+     * Create an instance of {@link ManagementResponseType }
+     * 
+     */
+    public ManagementResponseType createManagementResponseType() {
+        return new ManagementResponseType();
+    }
+
+    /**
+     * Create an instance of {@link BaseCommandType }
+     * 
+     */
+    public BaseCommandType createBaseCommandType() {
+        return new BaseCommandType();
+    }
+
+	/**
+     * Create an instance of {@link ListRegisteredRequestType }
+     * 
+     */
+    public ListRegisteredRequestType createListRegisteredRequestType() {
+        return new ListRegisteredRequestType();
+    }
+
+    /**
+     * Create an instance of {@link UnRegistrationRequestType }
+     * 
+     */
+    public UnRegistrationRequestType createUnRegistrationRequestType() {
+        return new UnRegistrationRequestType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ManagementRequestType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/configuration/model", name = "managementRequestElement")
+    public JAXBElement<ManagementRequestType> createManagementRequestElement(ManagementRequestType value) {
+        return new JAXBElement<ManagementRequestType>(_ManagementRequestElement_QNAME, ManagementRequestType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ManagementResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/configuration/model", name = "maangementResponseElement")
+    public JAXBElement<ManagementResponseType> createMaangementResponseElement(ManagementResponseType value) {
+        return new JAXBElement<ManagementResponseType>(_MaangementResponseElement_QNAME, ManagementResponseType.class, null, value);
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegistrationRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegistrationRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="serviceURI" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegistrationRequestType", propOrder = {
+    "serviceURI"
+})
+public class RegistrationRequestType {
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String serviceURI;
+
+    /**
+     * Gets the value of the serviceURI property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getServiceURI() {
+        return serviceURI;
+    }
+
+    /**
+     * Sets the value of the serviceURI property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setServiceURI(String value) {
+        this.serviceURI = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/RegistrationResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,62 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RegistrationResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegistrationResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegistrationResponseType", propOrder = {
+    "message"
+})
+public class RegistrationResponseType {
+
+    @XmlElement(required = true)
+    protected String message;
+
+    /**
+     * Gets the value of the message property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMessage() {
+        return message;
+    }
+
+    /**
+     * Sets the value of the message property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMessage(String value) {
+        this.message = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ServiceMetatDataType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ServiceMetatDataType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/ServiceMetatDataType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,120 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ServiceMetatDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceMetatDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceMetatDataType", propOrder = {
+    "name",
+    "uri",
+    "description"
+})
+public class ServiceMetatDataType {
+
+    @XmlElement(required = true)
+    protected String name;
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String uri;
+    @XmlElement(required = true)
+    protected String description;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the uri property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUri() {
+        return uri;
+    }
+
+    /**
+     * Sets the value of the uri property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUri(String value) {
+        this.uri = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for UnRegistrationRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UnRegistrationRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="serviceURI" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "UnRegistrationRequestType", propOrder = {
+    "serviceURI"
+})
+public class UnRegistrationRequestType {
+
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String serviceURI;
+
+    /**
+     * Gets the value of the serviceURI property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getServiceURI() {
+        return serviceURI;
+    }
+
+    /**
+     * Sets the value of the serviceURI property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setServiceURI(String value) {
+        this.serviceURI = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/UnRegistrationResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,62 @@
+
+package org.jboss.soa.esb.services.semantics.configuration.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for UnRegistrationResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UnRegistrationResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "UnRegistrationResponseType", propOrder = {
+    "message"
+})
+public class UnRegistrationResponseType {
+
+    @XmlElement(required = true)
+    protected String message;
+
+    /**
+     * Gets the value of the message property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMessage() {
+        return message;
+    }
+
+    /**
+     * Sets the value of the message property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMessage(String value) {
+        this.message = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/package-info.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/package-info.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/configuration/model/package-info.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://jboss.org/soa/esb/services/semantics/configuration/model", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.soa.esb.services.semantics.configuration.model;

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ConceptValueType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,111 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ConceptValueType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ConceptValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="concept" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;choice>
+ *           &lt;element name="dataValue" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *           &lt;element name="individualValue" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType"/>
+ *         &lt;/choice>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ConceptValueType", propOrder = { "concept", "dataValue",
+		"individualValue" })
+public class ConceptValueType implements Serializable {
+
+	@XmlElement(required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String concept;
+	protected String dataValue;
+	protected ConceptValueType individualValue;
+
+	/**
+	 * Gets the value of the concept property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getConcept() {
+		return concept;
+	}
+
+	/**
+	 * Sets the value of the concept property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setConcept(String value) {
+		this.concept = value;
+	}
+
+	/**
+	 * Gets the value of the dataValue property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getDataValue() {
+		return dataValue;
+	}
+
+	/**
+	 * Sets the value of the dataValue property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setDataValue(String value) {
+		this.dataValue = value;
+	}
+
+	/**
+	 * Gets the value of the individualValue property.
+	 * 
+	 * @return possible object is {@link ConceptValueType }
+	 * 
+	 */
+	public ConceptValueType getIndividualValue() {
+		return individualValue;
+	}
+
+	/**
+	 * Sets the value of the individualValue property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link ConceptValueType }
+	 * 
+	 */
+	public void setIndividualValue(ConceptValueType value) {
+		this.individualValue = value;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataTypeValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataTypeValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataTypeValueType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,111 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for DataTypeValueType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataTypeValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "DataTypeValueType", propOrder = { "clazz", "name", "value" })
+public class DataTypeValueType implements Serializable {
+
+	@XmlElement(name = "class", required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String clazz;
+	@XmlElement(required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String name;
+	@XmlElement(required = true)
+	protected String value;
+
+	/**
+	 * Gets the value of the clazz property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getClazz() {
+		return clazz;
+	}
+
+	/**
+	 * Sets the value of the clazz property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setClazz(String value) {
+		this.clazz = value;
+	}
+
+	/**
+	 * Gets the value of the name property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Sets the value of the name property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setName(String value) {
+		this.name = value;
+	}
+
+	/**
+	 * Gets the value of the value property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * Sets the value of the value property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ExpectedOutputType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,62 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ExpectedOutputType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExpectedOutputType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExpectedOutputType", propOrder = { "clazz" })
+public class ExpectedOutputType implements Serializable {
+
+	@XmlElement(name = "class", required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String clazz;
+
+	/**
+	 * Gets the value of the clazz property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getClazz() {
+		return clazz;
+	}
+
+	/**
+	 * Sets the value of the clazz property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setClazz(String value) {
+		this.clazz = value;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectFactory.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,151 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+/**
+ * This object contains factory methods for each Java content interface and Java
+ * element interface generated in the org.jboss.soa.esb.services.semantics.model
+ * package.
+ * <p>
+ * An ObjectFactory allows you to programatically construct new instances of the
+ * Java representation for XML content. The Java representation of XML content
+ * can consist of schema derived interfaces and classes representing the binding
+ * of schema type definitions, element declarations and model groups. Factory
+ * methods for each of these are provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+	private final static QName _ServiceQueryRequest_QNAME = new QName(
+			"http://jboss.org/soa/esb/services/semantics/model",
+			"serviceQueryRequest");
+	private final static QName _ServiceQueryResponse_QNAME = new QName(
+			"http://jboss.org/soa/esb/services/semantics/model",
+			"serviceQueryResponse");
+
+	private static final ObjectFactory INSTANCE = new ObjectFactory();
+
+	/**
+	 * Create a new ObjectFactory that can be used to create new instances of
+	 * schema derived classes for package:
+	 * org.jboss.soa.esb.services.semantics.model
+	 * 
+	 */
+	private ObjectFactory() {
+	}
+
+	public static ObjectFactory getInstance() {
+		return INSTANCE;
+	}
+
+	/**
+	 * Create an instance of {@link ServiceQueryRequestType.Outputs }
+	 * 
+	 */
+	public ServiceQueryRequestType.Outputs createServiceQueryRequestTypeOutputs() {
+		return new ServiceQueryRequestType.Outputs();
+	}
+
+	/**
+	 * Create an instance of {@link ConceptValueType }
+	 * 
+	 */
+	public ConceptValueType createConceptValueType() {
+		return new ConceptValueType();
+	}
+
+	/**
+	 * Create an instance of {@link DataTypeValueType }
+	 * 
+	 */
+	public DataTypeValueType createDataTypeValueType() {
+		return new DataTypeValueType();
+	}
+
+	/**
+	 * Create an instance of {@link ServiceQueryRequestType }
+	 * 
+	 */
+	public ServiceQueryRequestType createServiceQueryRequestType() {
+		return new ServiceQueryRequestType();
+	}
+
+	/**
+	 * Create an instance of {@link ServiceQueryResponseType }
+	 * 
+	 */
+	public ServiceQueryResponseType createServiceQueryResponseType() {
+		return new ServiceQueryResponseType();
+	}
+
+	/**
+	 * Create an instance of {@link ExpectedOutputType }
+	 * 
+	 */
+	public ExpectedOutputType createExpectedOutputType() {
+		return new ExpectedOutputType();
+	}
+
+	/**
+	 * Create an instance of {@link ServiceQueryRequestType.Inputs }
+	 * 
+	 */
+	public ServiceQueryRequestType.Inputs createServiceQueryRequestTypeInputs() {
+		return new ServiceQueryRequestType.Inputs();
+	}
+
+	/**
+	 * Create an instance of {@link ObjectTypeInputType }
+	 * 
+	 */
+	public ObjectTypeInputType createObjectTypeInputType() {
+		return new ObjectTypeInputType();
+	}
+
+	/**
+	 * Create an instance of {@link ServiceQueryResponseType.Outputs }
+	 * 
+	 */
+	public ServiceQueryResponseType.Outputs createServiceQueryResponseTypeOutputs() {
+		return new ServiceQueryResponseType.Outputs();
+	}
+
+	/**
+	 * Create an instance of {@link ObjectTypeValueType }
+	 * 
+	 */
+	public ObjectTypeValueType createObjectTypeValueType() {
+		return new ObjectTypeValueType();
+	}
+
+	/**
+	 * Create an instance of {@link JAXBElement }{@code <}
+	 * {@link ServiceQueryRequestType }{@code >}
+	 * 
+	 */
+	@XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/model", name = "serviceQueryRequest")
+	public JAXBElement<ServiceQueryRequestType> createServiceQueryRequest(
+			ServiceQueryRequestType value) {
+		return new JAXBElement<ServiceQueryRequestType>(
+				_ServiceQueryRequest_QNAME, ServiceQueryRequestType.class,
+				null, value);
+	}
+
+	/**
+	 * Create an instance of {@link JAXBElement }{@code <}
+	 * {@link ServiceQueryResponseType }{@code >}
+	 * 
+	 */
+	@XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/model", name = "serviceQueryResponse")
+	public JAXBElement<ServiceQueryResponseType> createServiceQueryResponse(
+			ServiceQueryResponseType value) {
+		return new JAXBElement<ServiceQueryResponseType>(
+				_ServiceQueryResponse_QNAME, ServiceQueryResponseType.class,
+				null, value);
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeInputType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeInputType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeInputType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,129 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ObjectTypeInputType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ObjectTypeInputType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="dataTypeValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataTypeValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="objectTypeValue" type="{http://jboss.org/soa/esb/services/semantics/model}ObjectTypeValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ObjectTypeInputType", propOrder = { "clazz", "dataTypeValue",
+		"objectTypeValue" })
+public class ObjectTypeInputType implements Serializable {
+
+	@XmlElement(name = "class", required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String clazz;
+	protected List<DataTypeValueType> dataTypeValue;
+	protected List<ObjectTypeValueType> objectTypeValue;
+
+	/**
+	 * Gets the value of the clazz property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getClazz() {
+		return clazz;
+	}
+
+	/**
+	 * Sets the value of the clazz property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setClazz(String value) {
+		this.clazz = value;
+	}
+
+	/**
+	 * Gets the value of the dataTypeValue property.
+	 * 
+	 * <p>
+	 * This accessor method returns a reference to the live list, not a
+	 * snapshot. Therefore any modification you make to the returned list will
+	 * be present inside the JAXB object. This is why there is not a
+	 * <CODE>set</CODE> method for the dataTypeValue property.
+	 * 
+	 * <p>
+	 * For example, to add a new item, do as follows:
+	 * 
+	 * <pre>
+	 * getDataTypeValue().add(newItem);
+	 * </pre>
+	 * 
+	 * 
+	 * <p>
+	 * Objects of the following type(s) are allowed in the list
+	 * {@link DataTypeValueType }
+	 * 
+	 * 
+	 */
+	public List<DataTypeValueType> getDataTypeValue() {
+		if (dataTypeValue == null) {
+			dataTypeValue = new ArrayList<DataTypeValueType>();
+		}
+		return this.dataTypeValue;
+	}
+
+	/**
+	 * Gets the value of the objectTypeValue property.
+	 * 
+	 * <p>
+	 * This accessor method returns a reference to the live list, not a
+	 * snapshot. Therefore any modification you make to the returned list will
+	 * be present inside the JAXB object. This is why there is not a
+	 * <CODE>set</CODE> method for the objectTypeValue property.
+	 * 
+	 * <p>
+	 * For example, to add a new item, do as follows:
+	 * 
+	 * <pre>
+	 * getObjectTypeValue().add(newItem);
+	 * </pre>
+	 * 
+	 * 
+	 * <p>
+	 * Objects of the following type(s) are allowed in the list
+	 * {@link ObjectTypeValueType }
+	 * 
+	 * 
+	 */
+	public List<ObjectTypeValueType> getObjectTypeValue() {
+		if (objectTypeValue == null) {
+			objectTypeValue = new ArrayList<ObjectTypeValueType>();
+		}
+		return this.objectTypeValue;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeValueType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectTypeValueType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,122 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ObjectTypeValueType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ObjectTypeValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="dataValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataTypeValueType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ObjectTypeValueType", propOrder = { "clazz", "name",
+		"dataValue" })
+public class ObjectTypeValueType implements Serializable {
+
+	@XmlElement(name = "class", required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String clazz;
+	@XmlElement(required = true)
+	@XmlSchemaType(name = "anyURI")
+	protected String name;
+	protected List<DataTypeValueType> dataValue;
+
+	/**
+	 * Gets the value of the clazz property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getClazz() {
+		return clazz;
+	}
+
+	/**
+	 * Sets the value of the clazz property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setClazz(String value) {
+		this.clazz = value;
+	}
+
+	/**
+	 * Gets the value of the name property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Sets the value of the name property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setName(String value) {
+		this.name = value;
+	}
+
+	/**
+	 * Gets the value of the dataValue property.
+	 * 
+	 * <p>
+	 * This accessor method returns a reference to the live list, not a
+	 * snapshot. Therefore any modification you make to the returned list will
+	 * be present inside the JAXB object. This is why there is not a
+	 * <CODE>set</CODE> method for the dataValue property.
+	 * 
+	 * <p>
+	 * For example, to add a new item, do as follows:
+	 * 
+	 * <pre>
+	 * getDataValue().add(newItem);
+	 * </pre>
+	 * 
+	 * 
+	 * <p>
+	 * Objects of the following type(s) are allowed in the list
+	 * {@link DataTypeValueType }
+	 * 
+	 * 
+	 */
+	public List<DataTypeValueType> getDataValue() {
+		if (dataValue == null) {
+			dataValue = new ArrayList<DataTypeValueType>();
+		}
+		return this.dataValue;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,289 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ServiceQueryRequestType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceQueryRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="inputs" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;choice>
+ *                     &lt;element name="objectTypeInput" type="{http://jboss.org/soa/esb/services/semantics/model}ObjectTypeInputType" maxOccurs="unbounded"/>
+ *                     &lt;element name="dataTypeInput" type="{http://jboss.org/soa/esb/services/semantics/model}DataTypeValueType" maxOccurs="unbounded"/>
+ *                   &lt;/choice>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="outputs" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceQueryRequestType", propOrder = { "id", "inputs",
+		"outputs" })
+public class ServiceQueryRequestType {
+
+	@XmlElement(required = true)
+	protected String id;
+	protected ServiceQueryRequestType.Inputs inputs;
+	protected ServiceQueryRequestType.Outputs outputs;
+
+	/**
+	 * Gets the value of the id property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * Sets the value of the id property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setId(String value) {
+		this.id = value;
+	}
+
+	/**
+	 * Gets the value of the inputs property.
+	 * 
+	 * @return possible object is {@link ServiceQueryRequestType.Inputs }
+	 * 
+	 */
+	public ServiceQueryRequestType.Inputs getInputs() {
+		return inputs;
+	}
+
+	/**
+	 * Sets the value of the inputs property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link ServiceQueryRequestType.Inputs }
+	 * 
+	 */
+	public void setInputs(ServiceQueryRequestType.Inputs value) {
+		this.inputs = value;
+	}
+
+	/**
+	 * Gets the value of the outputs property.
+	 * 
+	 * @return possible object is {@link ServiceQueryRequestType.Outputs }
+	 * 
+	 */
+	public ServiceQueryRequestType.Outputs getOutputs() {
+		return outputs;
+	}
+
+	/**
+	 * Sets the value of the outputs property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link ServiceQueryRequestType.Outputs }
+	 * 
+	 */
+	public void setOutputs(ServiceQueryRequestType.Outputs value) {
+		this.outputs = value;
+	}
+
+	/**
+	 * <p>
+	 * Java class for anonymous complex type.
+	 * 
+	 * <p>
+	 * The following schema fragment specifies the expected content contained
+	 * within this class.
+	 * 
+	 * <pre>
+	 * &lt;complexType>
+	 *   &lt;complexContent>
+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+	 *       &lt;sequence>
+	 *         &lt;choice>
+	 *           &lt;element name="objectTypeInput" type="{http://jboss.org/soa/esb/services/semantics/model}ObjectTypeInputType" maxOccurs="unbounded"/>
+	 *           &lt;element name="dataTypeInput" type="{http://jboss.org/soa/esb/services/semantics/model}DataTypeValueType" maxOccurs="unbounded"/>
+	 *         &lt;/choice>
+	 *       &lt;/sequence>
+	 *     &lt;/restriction>
+	 *   &lt;/complexContent>
+	 * &lt;/complexType>
+	 * </pre>
+	 * 
+	 * 
+	 */
+	@XmlAccessorType(XmlAccessType.FIELD)
+	@XmlType(name = "", propOrder = { "objectTypeInput", "dataTypeInput" })
+	public static class Inputs implements Serializable {
+
+		protected List<ObjectTypeInputType> objectTypeInput;
+		protected List<DataTypeValueType> dataTypeInput;
+
+		/**
+		 * Gets the value of the objectTypeInput property.
+		 * 
+		 * <p>
+		 * This accessor method returns a reference to the live list, not a
+		 * snapshot. Therefore any modification you make to the returned list
+		 * will be present inside the JAXB object. This is why there is not a
+		 * <CODE>set</CODE> method for the objectTypeInput property.
+		 * 
+		 * <p>
+		 * For example, to add a new item, do as follows:
+		 * 
+		 * <pre>
+		 * getObjectTypeInput().add(newItem);
+		 * </pre>
+		 * 
+		 * 
+		 * <p>
+		 * Objects of the following type(s) are allowed in the list
+		 * {@link ObjectTypeInputType }
+		 * 
+		 * 
+		 */
+		public List<ObjectTypeInputType> getObjectTypeInput() {
+			if (objectTypeInput == null) {
+				objectTypeInput = new ArrayList<ObjectTypeInputType>();
+			}
+			return this.objectTypeInput;
+		}
+
+		/**
+		 * Gets the value of the dataTypeInput property.
+		 * 
+		 * <p>
+		 * This accessor method returns a reference to the live list, not a
+		 * snapshot. Therefore any modification you make to the returned list
+		 * will be present inside the JAXB object. This is why there is not a
+		 * <CODE>set</CODE> method for the dataTypeInput property.
+		 * 
+		 * <p>
+		 * For example, to add a new item, do as follows:
+		 * 
+		 * <pre>
+		 * getDataTypeInput().add(newItem);
+		 * </pre>
+		 * 
+		 * 
+		 * <p>
+		 * Objects of the following type(s) are allowed in the list
+		 * {@link DataTypeValueType }
+		 * 
+		 * 
+		 */
+		public List<DataTypeValueType> getDataTypeInput() {
+			if (dataTypeInput == null) {
+				dataTypeInput = new ArrayList<DataTypeValueType>();
+			}
+			return this.dataTypeInput;
+		}
+
+	}
+
+	/**
+	 * <p>
+	 * Java class for anonymous complex type.
+	 * 
+	 * <p>
+	 * The following schema fragment specifies the expected content contained
+	 * within this class.
+	 * 
+	 * <pre>
+	 * &lt;complexType>
+	 *   &lt;complexContent>
+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+	 *       &lt;sequence>
+	 *         &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+	 *       &lt;/sequence>
+	 *     &lt;/restriction>
+	 *   &lt;/complexContent>
+	 * &lt;/complexType>
+	 * </pre>
+	 * 
+	 * 
+	 */
+	@XmlAccessorType(XmlAccessType.FIELD)
+	@XmlType(name = "", propOrder = { "output" })
+	@XmlRootElement
+	public static class Outputs implements Serializable {
+
+		@XmlElement(required = true)
+		protected List<ExpectedOutputType> output;
+
+		/**
+		 * Gets the value of the output property.
+		 * 
+		 * <p>
+		 * This accessor method returns a reference to the live list, not a
+		 * snapshot. Therefore any modification you make to the returned list
+		 * will be present inside the JAXB object. This is why there is not a
+		 * <CODE>set</CODE> method for the output property.
+		 * 
+		 * <p>
+		 * For example, to add a new item, do as follows:
+		 * 
+		 * <pre>
+		 * getOutput().add(newItem);
+		 * </pre>
+		 * 
+		 * 
+		 * <p>
+		 * Objects of the following type(s) are allowed in the list
+		 * {@link ExpectedOutputType }
+		 * 
+		 * 
+		 */
+		public List<ExpectedOutputType> getOutput() {
+			if (output == null) {
+				output = new ArrayList<ExpectedOutputType>();
+			}
+			return this.output;
+		}
+
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ServiceQueryResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,159 @@
+package org.jboss.soa.esb.services.semantics.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>
+ * Java class for ServiceQueryResponseType complex type.
+ * 
+ * <p>
+ * The following schema fragment specifies the expected content contained within
+ * this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceQueryResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="outputs">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceQueryResponseType", propOrder = { "id", "outputs" })
+public class ServiceQueryResponseType {
+
+	@XmlElement(required = true)
+	protected String id;
+	@XmlElement(required = true)
+	protected ServiceQueryResponseType.Outputs outputs;
+
+	/**
+	 * Gets the value of the id property.
+	 * 
+	 * @return possible object is {@link String }
+	 * 
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * Sets the value of the id property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link String }
+	 * 
+	 */
+	public void setId(String value) {
+		this.id = value;
+	}
+
+	/**
+	 * Gets the value of the outputs property.
+	 * 
+	 * @return possible object is {@link ServiceQueryResponseType.Outputs }
+	 * 
+	 */
+	public ServiceQueryResponseType.Outputs getOutputs() {
+		return outputs;
+	}
+
+	/**
+	 * Sets the value of the outputs property.
+	 * 
+	 * @param value
+	 *            allowed object is {@link ServiceQueryResponseType.Outputs }
+	 * 
+	 */
+	public void setOutputs(ServiceQueryResponseType.Outputs value) {
+		this.outputs = value;
+	}
+
+	/**
+	 * <p>
+	 * Java class for anonymous complex type.
+	 * 
+	 * <p>
+	 * The following schema fragment specifies the expected content contained
+	 * within this class.
+	 * 
+	 * <pre>
+	 * &lt;complexType>
+	 *   &lt;complexContent>
+	 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+	 *       &lt;sequence>
+	 *         &lt;element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+	 *       &lt;/sequence>
+	 *     &lt;/restriction>
+	 *   &lt;/complexContent>
+	 * &lt;/complexType>
+	 * </pre>
+	 * 
+	 * 
+	 */
+	@XmlAccessorType(XmlAccessType.FIELD)
+	@XmlType(name = "", propOrder = { "output" })
+	@XmlRootElement
+	public static class Outputs implements Serializable {
+
+		@XmlElement(required = true)
+		protected List<ConceptValueType> output;
+
+		/**
+		 * Gets the value of the output property.
+		 * 
+		 * <p>
+		 * This accessor method returns a reference to the live list, not a
+		 * snapshot. Therefore any modification you make to the returned list
+		 * will be present inside the JAXB object. This is why there is not a
+		 * <CODE>set</CODE> method for the output property.
+		 * 
+		 * <p>
+		 * For example, to add a new item, do as follows:
+		 * 
+		 * <pre>
+		 * getOutput().add(newItem);
+		 * </pre>
+		 * 
+		 * 
+		 * <p>
+		 * Objects of the following type(s) are allowed in the list
+		 * {@link ConceptValueType }
+		 * 
+		 * 
+		 */
+		public List<ConceptValueType> getOutput() {
+			if (output == null) {
+				output = new ArrayList<ConceptValueType>();
+			}
+			return this.output;
+		}
+
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/package-info.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,3 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://jboss.org/soa/esb/services/semantics/model", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.soa.esb.services.semantics.model;
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/ServiceInvocationMBean.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/ServiceInvocationMBean.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/ServiceInvocationMBean.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,29 @@
+package org.jboss.soa.esb.services.semantics.monitoring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.soa.esb.services.semantics.monitoring.model.ServiceMetatDataType;
+
+public class ServiceInvocationMBean {
+	
+	private static final ServiceInvocationMBean INSTANCE = new ServiceInvocationMBean();
+	
+	private List<ServiceMetatDataType> invokedServices = new ArrayList<ServiceMetatDataType>();
+	
+	private ServiceInvocationMBean(){		
+	}
+	
+	public static ServiceInvocationMBean getInstance(){
+		return INSTANCE;
+	}
+	
+	public void setServicesLastInvocation(List<ServiceMetatDataType> serviceMetatDataType){
+		this.invokedServices = serviceMetatDataType;
+	}
+	
+	public List<ServiceMetatDataType> getServicesLastInvocation(){
+		return this.invokedServices;
+	}
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/actions/ServiceInvocationMonitoringAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/actions/ServiceInvocationMonitoringAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/actions/ServiceInvocationMonitoringAction.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,169 @@
+package org.jboss.soa.esb.services.semantics.monitoring.actions;
+
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.PropertyException;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionLifecycle;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.semantics.monitoring.ServiceInvocationMBean;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ListInvokedServicesRequestType;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ListInvokedServicesResponseType;
+import org.jboss.soa.esb.services.semantics.monitoring.model.MonitoringRequestType;
+import org.jboss.soa.esb.services.semantics.monitoring.model.MonitoringResponseType;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ObjectFactory;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ServiceMetatDataType;
+import org.jboss.soa.esb.services.semantics.utils.Constants;
+import org.xml.sax.InputSource;
+
+/**
+ * This discoveryAction selects all service out of the services matching the
+ * user query.
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class ServiceInvocationMonitoringAction implements ActionLifecycle {
+
+	private JAXBContext jaxbContext = null;
+	private Unmarshaller unmarshaller = null;
+	private Marshaller marshaller = null;
+
+	public ServiceInvocationMonitoringAction(ConfigTree config)
+			throws ActionLifecycleException {
+		try {
+			jaxbContext = JAXBContext
+					.newInstance(Constants.SEMANTIC_MONITORING_MODEL_PACKAGE);
+			unmarshaller = jaxbContext.createUnmarshaller();
+			marshaller = jaxbContext.createMarshaller();
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionLifecycleException(e);
+		}
+	}
+
+	/**
+	 * The Logger instance for this action
+	 */
+	private static Logger logger = Logger
+			.getLogger(ServiceInvocationMonitoringAction.class);
+
+	public Message listServicesLastInvocation(Message message) throws ActionProcessingException {
+		if (logger.isDebugEnabled()) {
+			this.logger.debug("listServicesLastInvocation called");
+		}
+		ServiceInvocationMBean serviceInvocationMBean = ServiceInvocationMBean.getInstance();
+		List<ServiceMetatDataType> invokedServices = serviceInvocationMBean.getServicesLastInvocation();
+		if (logger.isDebugEnabled()) {
+			logger.debug("Message received: [" + message + "].");
+		}
+		ListInvokedServicesRequestType listInvokedServicesRequestType = this.parseListInvokedServicesRequestType(message);
+
+		ListInvokedServicesResponseType listInvokedServicesResponseType = ObjectFactory
+				.getInstance().createListInvokedServicesResponseType();
+		
+		ServiceMetatDataType currentServiceMetatDataType = null;
+		for (Iterator<ServiceMetatDataType> iter = invokedServices.iterator(); iter.hasNext();){
+			currentServiceMetatDataType = iter.next();
+			listInvokedServicesResponseType.getServices().getService().add(currentServiceMetatDataType);
+		}
+		
+		return this.buildResponseMessage(listInvokedServicesResponseType, message);
+	}
+
+	
+	
+	public void destroy() throws ActionLifecycleException {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void initialise() throws ActionLifecycleException {
+		// TODO Auto-generated method stub
+
+	}
+
+	/**
+	 * Method extracting a ServiceQueryRequestType instance out of the given
+	 * Message
+	 * 
+	 * @param message
+	 *            the Message instance to use to extract a
+	 *            ServiceQueryRequestType instance
+	 * @return the extracted ServiceQueryRequestType instance
+	 * @throws JAXBException
+	 */
+	private ListInvokedServicesRequestType parseListInvokedServicesRequestType(Message message)
+			throws ActionProcessingException {
+		final String request = (String) message.getBody().get();
+
+		InputSource requestInputSource = new InputSource(new StringReader(
+				request));
+
+		try {
+			MonitoringRequestType monitoringRequestType = (MonitoringRequestType) ((JAXBElement) this.unmarshaller
+					.unmarshal(requestInputSource)).getValue();
+			ListInvokedServicesRequestType listInvokedServicesRequestType = monitoringRequestType
+					.getListInvokedServicesLastExecutionCommand();
+			if (logger.isDebugEnabled()) {
+				logger.debug("Parsed RegistrationRequestType: ["
+						+ listInvokedServicesRequestType + "].");
+			}
+			return listInvokedServicesRequestType;
+		} catch (JAXBException e) {
+			logger.error(e.getMessage());
+			throw new ActionProcessingException(e);
+		}
+
+	}
+	
+	
+
+	/**
+	 * Method marshalling the ServiceQueryResponseType into an XML document to
+	 * be added to the Message this action returns
+	 * 
+	 * @param serviceQueryResponseType
+	 *            the ServiceQueryResponseType instance to marshal to an XML
+	 *            document
+	 * @param message
+	 *            the message to contain the ServiceQueryResponseType as an XML
+	 *            document
+	 * @return the message to be returned by this action
+	 */
+	private Message buildResponseMessage(
+			ListInvokedServicesResponseType listInvokedServicesResponseType, Message message) {
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		try {
+			this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
+					Boolean.TRUE);
+			MonitoringResponseType monitoringResponseType = ObjectFactory
+					.getInstance().createMonitoringResponseType();
+			monitoringResponseType
+					.setListInvokedServicesLastExecution(listInvokedServicesResponseType);
+			this.marshaller.marshal(monitoringResponseType, outStream);
+			message.getBody().add(outStream.toString());
+		} catch (PropertyException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (JAXBException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return message;
+	}
+
+	
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/Fault.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/Fault.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/Fault.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,90 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for fault complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="fault">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="code" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="faultString" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "fault", propOrder = {
+    "code",
+    "faultString"
+})
+public class Fault {
+
+    @XmlElement(required = true)
+    protected String code;
+    @XmlElement(required = true)
+    protected String faultString;
+
+    /**
+     * Gets the value of the code property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCode() {
+        return code;
+    }
+
+    /**
+     * Sets the value of the code property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCode(String value) {
+        this.code = value;
+    }
+
+    /**
+     * Gets the value of the faultString property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getFaultString() {
+        return faultString;
+    }
+
+    /**
+     * Sets the value of the faultString property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setFaultString(String value) {
+        this.faultString = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,32 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ListInvokedServicesRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ListInvokedServicesRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ListInvokedServicesRequestType")
+public class ListInvokedServicesRequestType {
+
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ListInvokedServicesResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,134 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ListInvokedServicesResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ListInvokedServicesResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="services">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="service" type="{http://jboss.org/soa/esb/services/semantics/monitoring/model}ServiceMetatDataType" maxOccurs="unbounded"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ListInvokedServicesResponseType", propOrder = {
+    "services"
+})
+public class ListInvokedServicesResponseType {
+
+    @XmlElement(required = true)
+    protected ListInvokedServicesResponseType.Services services = new ListInvokedServicesResponseType.Services();
+
+    /**
+     * Gets the value of the services property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListInvokedServicesResponseType.Services }
+     *     
+     */
+    public ListInvokedServicesResponseType.Services getServices() {
+        return services;
+    }
+
+    /**
+     * Sets the value of the services property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListInvokedServicesResponseType.Services }
+     *     
+     */
+    public void setServices(ListInvokedServicesResponseType.Services value) {
+        this.services = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="service" type="{http://jboss.org/soa/esb/services/semantics/monitoring/model}ServiceMetatDataType" maxOccurs="unbounded"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "service"
+    })
+    public static class Services {
+
+        @XmlElement(required = true)
+        protected List<ServiceMetatDataType> service = new ArrayList<ServiceMetatDataType>();
+
+        /**
+         * Gets the value of the service property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the service property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getService().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link ServiceMetatDataType }
+         * 
+         * 
+         */
+        public List<ServiceMetatDataType> getService() {
+            if (service == null) {
+                service = new ArrayList<ServiceMetatDataType>();
+            }
+            return this.service;
+        }
+
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringRequestType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringRequestType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringRequestType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,62 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MonitoringRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="MonitoringRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;choice>
+ *           &lt;element name="listInvokedServicesLastExecutionCommand" type="{http://jboss.org/soa/esb/services/semantics/monitoring/model}ListInvokedServicesRequestType"/>
+ *         &lt;/choice>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "MonitoringRequestType", propOrder = {
+    "listInvokedServicesLastExecutionCommand"
+})
+public class MonitoringRequestType {
+
+    protected ListInvokedServicesRequestType listInvokedServicesLastExecutionCommand;
+
+    /**
+     * Gets the value of the listInvokedServicesLastExecutionCommand property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListInvokedServicesRequestType }
+     *     
+     */
+    public ListInvokedServicesRequestType getListInvokedServicesLastExecutionCommand() {
+        return listInvokedServicesLastExecutionCommand;
+    }
+
+    /**
+     * Sets the value of the listInvokedServicesLastExecutionCommand property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListInvokedServicesRequestType }
+     *     
+     */
+    public void setListInvokedServicesLastExecutionCommand(ListInvokedServicesRequestType value) {
+        this.listInvokedServicesLastExecutionCommand = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringResponseType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringResponseType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/MonitoringResponseType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MonitoringResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="MonitoringResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="listInvokedServicesLastExecution" type="{http://jboss.org/soa/esb/services/semantics/monitoring/model}ListInvokedServicesResponseType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "MonitoringResponseType", propOrder = {
+    "listInvokedServicesLastExecution"
+})
+ at XmlRootElement
+public class MonitoringResponseType {
+
+    @XmlElement(required = true)
+    protected ListInvokedServicesResponseType listInvokedServicesLastExecution;
+
+    /**
+     * Gets the value of the listInvokedServicesLastExecution property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ListInvokedServicesResponseType }
+     *     
+     */
+    public ListInvokedServicesResponseType getListInvokedServicesLastExecution() {
+        return listInvokedServicesLastExecution;
+    }
+
+    /**
+     * Sets the value of the listInvokedServicesLastExecution property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ListInvokedServicesResponseType }
+     *     
+     */
+    public void setListInvokedServicesLastExecution(ListInvokedServicesResponseType value) {
+        this.listInvokedServicesLastExecution = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ObjectFactory.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ObjectFactory.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ObjectFactory.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,126 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.jboss.soa.esb.services.semantics.monitoring.model package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _ManagerFault_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/monitoring/model", "managerFault");
+    private final static QName _MonitoringResponseElement_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/monitoring/model", "monitoringResponseElement");
+    private final static QName _MonitoringRequestElement_QNAME = new QName("http://jboss.org/soa/esb/services/semantics/monitoring/model", "monitoringRequestElement");
+
+    private static final ObjectFactory INSTANCE = new ObjectFactory();
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jboss.soa.esb.services.semantics.monitoring.model
+     * 
+     */
+    private ObjectFactory() {
+    }
+    
+    public static ObjectFactory getInstance(){
+    	return INSTANCE;
+    }
+
+    /**
+     * Create an instance of {@link ListInvokedServicesResponseType }
+     * 
+     */
+    public ListInvokedServicesResponseType createListInvokedServicesResponseType() {
+        return new ListInvokedServicesResponseType();
+    }
+
+    /**
+     * Create an instance of {@link Fault }
+     * 
+     */
+    public Fault createFault() {
+        return new Fault();
+    }
+
+    /**
+     * Create an instance of {@link ListInvokedServicesRequestType }
+     * 
+     */
+    public ListInvokedServicesRequestType createListInvokedServicesRequestType() {
+        return new ListInvokedServicesRequestType();
+    }
+
+    /**
+     * Create an instance of {@link MonitoringResponseType }
+     * 
+     */
+    public MonitoringResponseType createMonitoringResponseType() {
+        return new MonitoringResponseType();
+    }
+
+    /**
+     * Create an instance of {@link ServiceMetatDataType }
+     * 
+     */
+    public ServiceMetatDataType createServiceMetatDataType() {
+        return new ServiceMetatDataType();
+    }
+
+    /**
+     * Create an instance of {@link MonitoringRequestType }
+     * 
+     */
+    public MonitoringRequestType createMonitoringRequestType() {
+        return new MonitoringRequestType();
+    }
+
+    /**
+     * Create an instance of {@link ListInvokedServicesResponseType.Services }
+     * 
+     */
+    public ListInvokedServicesResponseType.Services createListInvokedServicesResponseTypeServices() {
+        return new ListInvokedServicesResponseType.Services();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Fault }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/monitoring/model", name = "managerFault")
+    public JAXBElement<Fault> createManagerFault(Fault value) {
+        return new JAXBElement<Fault>(_ManagerFault_QNAME, Fault.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link MonitoringResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/monitoring/model", name = "monitoringResponseElement")
+    public JAXBElement<MonitoringResponseType> createMonitoringResponseElement(MonitoringResponseType value) {
+        return new JAXBElement<MonitoringResponseType>(_MonitoringResponseElement_QNAME, MonitoringResponseType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link MonitoringRequestType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://jboss.org/soa/esb/services/semantics/monitoring/model", name = "monitoringRequestElement")
+    public JAXBElement<MonitoringRequestType> createMonitoringRequestElement(MonitoringRequestType value) {
+        return new JAXBElement<MonitoringRequestType>(_MonitoringRequestElement_QNAME, MonitoringRequestType.class, null, value);
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ServiceMetatDataType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ServiceMetatDataType.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/ServiceMetatDataType.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,120 @@
+
+package org.jboss.soa.esb.services.semantics.monitoring.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ServiceMetatDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ServiceMetatDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ServiceMetatDataType", propOrder = {
+    "name",
+    "uri",
+    "description"
+})
+public class ServiceMetatDataType {
+
+    @XmlElement(required = true)
+    protected String name;
+    @XmlElement(required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String uri;
+    @XmlElement(required = true)
+    protected String description;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the uri property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUri() {
+        return uri;
+    }
+
+    /**
+     * Sets the value of the uri property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUri(String value) {
+        this.uri = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/package-info.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/package-info.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/monitoring/model/package-info.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://jboss.org/soa/esb/services/semantics/monitoring/model", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.soa.esb.services.semantics.monitoring.model;

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/utils/Constants.java	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,30 @@
+package org.jboss.soa.esb.services.semantics.utils;
+
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType;
+import org.jboss.soa.esb.services.semantics.monitoring.model.ListInvokedServicesRequestType;
+import org.jboss.soa.esb.services.semantics.configuration.model.RegistrationRequestType;
+
+/**
+ * Class containing constants used by the semantics JBoss ESB service
+ * 
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * 
+ */
+public class Constants {
+
+	public static final String DISCOVERED_SERVICE_URIS_MESSAGE_KEY = "discoveredServiceURIs";
+	public static final String CONSUMER_INPUTS_MESSAGE_KEY = "consumerInputs";
+	public static final String SELECTED_SERVICES_URI_MESSAGE_KEY = "selectedServicesURI";
+
+	public static final String SEMANTIC_MODEL_PACKAGE = ServiceQueryRequestType.class
+			.getPackage().getName();
+	
+	public static final String SEMANTIC_CONFIGURATION_MODEL_PACKAGE = RegistrationRequestType.class
+	.getPackage().getName();
+	
+	public static final String SEMANTIC_MONITORING_MODEL_PACKAGE = ListInvokedServicesRequestType.class
+	.getPackage().getName();
+
+	public static final String SERVICE_QUERY_RESPONSE_FACTORY_CLASS_NAME_CONFIG_ATTRIBUTE_NAME = "serviceQueryResponseFactoryClass";
+
+}

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/deployment.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbossesb-deployment>
+	<depends>jboss.esb:deployment=jbossesb.esb</depends>
+	<depends>jboss.esb:service=OWLServiceRegistryService</depends>
+<!--	<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb</depends>-->
+</jbossesb-deployment>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-esb.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,176 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+	xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+	parameterReloadSecs="5">
+
+	<providers>
+		<jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+			<jms-bus busid="SemanticServiceInvokerEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/semanticServiceInvoker" selector="serviceName='SemanticServiceInvoker'" />
+			</jms-bus>
+			
+			<jms-bus busid="ManagementCBR_RequestEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/ManagementCBR_Request" selector="serviceName='SemanticServiceRegistryManager'" />
+			</jms-bus>
+			<jms-bus busid="CBR_ToRegistrationEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/CBR_ToRegistration" />
+			</jms-bus>
+			<jms-bus busid="CBR_ToUnRegistrationEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/CBR_ToUnRegistration" />
+			</jms-bus>
+			<jms-bus busid="CBR_ToIsRegisteredEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/CBR_ToIsRegistered" />
+			</jms-bus>
+			<jms-bus busid="CBR_ToListRegisteredEsbChannel"> <jms-message-filter
+				dest-type="QUEUE" dest-name="queue/CBR_ToListRegistered" /> </jms-bus>
+			<jms-bus busid="SSOA_MonitorEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/ssoaMonitor" selector="serviceName='SSOA_Monitor'" />
+			</jms-bus>
+			<jms-bus busid="CBR_ToListInvokedServicesEsbChannel">
+				<jms-message-filter dest-type="QUEUE"
+					dest-name="queue/CBR_ToListInvokedServices" />
+			</jms-bus>
+		</jms-provider>
+	</providers>
+
+	<services>
+		<service category="SSOA" name="SemanticServiceInvoker"
+			description="Service the semantic service consumer invokes to achieve its goal">
+			<listeners>
+				<jms-listener name="SemanticServiceInvoker" busidref="SemanticServiceInvokerEsbChannel"
+					maxThreads="1" />
+			</listeners>
+			<actions inXsd="/request.xsd" outXsd="/response.xsd"
+				faultXsd="/fault.xsd" validate="false">
+				<action name="discover"
+					class="org.jboss.soa.esb.services.semantics.actions.discovery.SPARQLDiscoveryAction"
+					process="discover" />
+				<action name="select"
+					class="org.jboss.soa.esb.services.semantics.actions.selection.AllMatchesServiceSelectionAction"
+					process="select" />
+				<action name="invoke"
+					class="org.jboss.soa.esb.services.semantics.actions.invocation.ServiceInvocationAction"
+					process="invoke" />
+			</actions>
+		</service>
+
+		<service category="SSOA" name="SemanticServiceRegistryManager"
+			description="Service the semantic service consumer invokes to manage semantic service references">
+			<listeners>
+				<jms-listener name="SemanticServiceRegistryManager"
+					busidref="ManagementCBR_RequestEsbChannel" maxThreads="1" />
+			</listeners>
+			<actions inXsd="/manager-request.xsd" outXsd="/manager-response.xsd"
+				faultXsd="/manager-fault.xsd" validate="false">
+				<action class="org.jboss.soa.esb.actions.ContentBasedRouter"
+					name="ContentBasedRouter">
+					<property name="cbrAlias" value="XPath" />
+					<property name="destinations">
+						<namespace prefix="semconf"
+							uri="http://jboss.org/soa/esb/services/semantics/configuration/model" />
+
+						<route-to service-category="SSOA" service-name="Registration"
+							expression="count(/semconf:managementRequestElement/semconf:registrationCommand)>0" />
+						<route-to service-category="SSOA" service-name="UnRegistration"
+							expression="count(/semconf:managementRequestElement/semconf:unRegistrationCommand)>0" />
+						<route-to service-category="SSOA" service-name="IsRegistered"
+							expression="count(/semconf:managementRequestElement/semconf:isRegisteredCommand)>0" />
+						<route-to service-category="SSOA" service-name="ListRegistered"
+							expression="count(/semconf:managementRequestElement/semconf:listRegisteredCommand)>0" />
+						<!--
+							<route-to service-category="SSOA" service-name="GetMetaData"
+							expression="/semconf:Order[@statusCode='2']" />
+						-->
+					</property>
+				</action>
+			</actions>
+		</service>
+
+		<!-- Registration -->
+		<service category="SSOA" name="Registration" description="Move to the Blue Team">
+			<listeners>
+				<jms-listener name="CBR_ToRegistration" busidref="CBR_ToRegistrationEsbChannel" />
+			</listeners>
+			<actions>
+				<action name="executeRegistration"
+					class="org.jboss.soa.esb.services.semantics.configuration.actions.OWLKnowledgeBaseManagementAction"
+					process="register" />
+			</actions>
+		</service>
+		<!-- UnRegistration -->
+		<service category="SSOA" name="UnRegistration" description="Move to the Blue Team">
+			<listeners>
+				<jms-listener name="CBR_ToUnRegistration" busidref="CBR_ToUnRegistrationEsbChannel" />
+			</listeners>
+			<actions>
+				<action name="executeUnRegistration"
+					class="org.jboss.soa.esb.services.semantics.configuration.actions.OWLKnowledgeBaseManagementAction"
+					process="unRegister" />
+			</actions>
+		</service>
+		<!-- IsRegistered -->
+		<service category="SSOA" name="IsRegistered" description="Move to the Blue Team">
+			<listeners>
+				<jms-listener name="CBR_ToIsRegistered" busidref="CBR_ToIsRegisteredEsbChannel" />
+			</listeners>
+			<actions>
+				<action name="executeUnRegistration"
+					class="org.jboss.soa.esb.services.semantics.configuration.actions.OWLKnowledgeBaseManagementAction"
+					process="isRegistered" />
+			</actions>
+		</service>
+		<!-- ListRegistered -->
+		<service category="SSOA" name="ListRegistered" description="Move to the Blue Team">
+			<listeners>
+				<jms-listener name="CBR_ToListRegistered" busidref="CBR_ToListRegisteredEsbChannel" />
+			</listeners>
+			<actions>
+				<action name="executeUnRegistration"
+					class="org.jboss.soa.esb.services.semantics.configuration.actions.OWLKnowledgeBaseManagementAction"
+					process="listRegistered" />
+			</actions>
+		</service>
+		
+		<!-- Monitoring -->
+		<service category="SSOA" name="SSOA_Monitor"
+			description="Service to be used to get runtime information about the execution environment">
+			<listeners>
+				<jms-listener name="SSOA_Monitor"
+					busidref="SSOA_MonitorEsbChannel" maxThreads="1" />
+			</listeners>
+			<actions inXsd="/monitor-request.xsd" outXsd="/monitor-response.xsd"
+				faultXsd="/monitor-fault.xsd" validate="false">
+				<action class="org.jboss.soa.esb.actions.ContentBasedRouter"
+					name="ContentBasedRouter">
+					<property name="cbrAlias" value="XPath" />
+					<property name="destinations">
+						<namespace prefix="semmon"
+							uri="http://jboss.org/soa/esb/services/semantics/monitoring/model" />
+
+						<route-to service-category="SSOA" service-name="ListInvokedServices"
+							expression="count(/semmon:monitoringRequestElement/semmon:listInvokedServicesLastExecutionCommand)>0" />
+						
+					</property>
+				</action>
+			</actions>
+		</service>
+
+		<!-- Registration -->
+		<service category="SSOA" name="ListInvokedServices" description="Move to the Blue Team">
+			<listeners>
+				<jms-listener name="CBR_ToListInvokedServices" busidref="CBR_ToListInvokedServicesEsbChannel" />
+			</listeners>
+			<actions>
+				<action name="ListInvokedServices"
+					class="org.jboss.soa.esb.services.semantics.monitoring.actions.ServiceInvocationMonitoringAction"
+					process="listServicesLastInvocation" />
+			</actions>
+		</service>
+	</services>
+</jbossesb>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/META-INF/jboss-scanning.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,3 @@
+<scanning xmlns="urn:jboss:scanning:1.0">
+	<!-- prevent scanning for annotations -->
+</scanning>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/common.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,38 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+
+	<xs:complexType name="ConceptValueType">
+		<xs:sequence>
+			<xs:element name="concept" type="xs:anyURI"/>
+			<xs:choice>
+				<xs:element name="dataValue" type="xs:string"/>
+				<xs:element name="individualValue" type="tns:ConceptValueType"/>
+			</xs:choice>			
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="ObjectTypeInputType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="dataTypeValue" type="tns:DataTypeValueType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="objectTypeValue" type="tns:ObjectTypeValueType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="DataTypeValueType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="name" type="xs:anyURI"/>
+			<xs:element name="value" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="ObjectTypeValueType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>
+			<xs:element name="name" type="xs:anyURI"/>
+			<xs:element name="dataValue" type="tns:DataTypeValueType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>	
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/fault.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="sayFault" type="x1:fault"/>
+  <xs:complexType name="fault">
+    <xs:sequence>
+      <xs:element name="code" type="xs:string"/>
+      <xs:element name="faultString" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jbm-queue-service.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=semanticServiceInvoker"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=semanticServiceInvoker_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=ManagementCBR_Request"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=ManagementCBR_Request_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToRegistration"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToRegistration_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToUnRegistration"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToUnRegistration_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToIsRegistered"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToIsRegistered_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToListRegistered"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToListRegistered_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=ssoaMonitor"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=ssoaMonitor_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+		<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToListInvokedServices"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+	<mbean code="org.jboss.jms.server.destination.QueueService"
+		name="jboss.esb.quickstart.destination:service=Queue,name=CBR_ToListInvokedServices_reply"
+		xmbean-dd="xmdesc/Queue-xmbean.xml">
+		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer
+		</depends>
+		<depends>jboss.messaging:service=PostOffice</depends>
+	</mbean>
+</server>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/jndi.properties	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,4 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/log4j.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss.soa.esb.services.semantics">
+      <priority value="DEBUG"/>
+   </category>
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="DEBUG"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-common.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-common.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-common.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,13 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/configuration/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/configuration/model">
+		<xs:complexType name="BaseCommandType">
+		<xs:sequence>
+			<xs:element name="serviceURI" type="xs:anyURI"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="BaseCommandResponseType">
+		<xs:sequence>
+			<xs:element name="serviceURI" type="xs:anyURI"/>
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-fault.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-fault.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-fault.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/configuration/model" xmlns:x1="http://jboss.org/soa/esb/services/semantics/configuration/model"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="managerFault" type="x1:fault"/>
+  <xs:complexType name="fault">
+    <xs:sequence>
+      <xs:element name="code" type="xs:string"/>
+      <xs:element name="faultString" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-request.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-request.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-request.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,47 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/configuration/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/configuration/model">
+	
+	<xs:include schemaLocation="manager-common.xsd"/>
+	
+	<xs:complexType name="RegistrationRequestType">
+		<xs:sequence>
+			<xs:element name="serviceURI" type="xs:anyURI"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="UnRegistrationRequestType">
+		<xs:sequence>
+			<xs:element name="serviceURI" type="xs:anyURI"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="IsRegisteredRequestType">
+		<xs:sequence>
+			<xs:element name="serviceURI" type="xs:anyURI"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="ListRegisteredRequestType">
+		<xs:sequence>
+		</xs:sequence>
+	</xs:complexType >	
+	
+	<xs:complexType name="ManagementRequestType">
+		<xs:sequence>
+			<xs:choice>
+				<xs:element name="registrationCommand" type="tns:RegistrationRequestType"/>
+				<xs:element name="unregistrationCommand" type="tns:UnRegistrationRequestType"/>
+				<xs:element name="isRegisteredCommand" type="tns:IsRegisteredRequestType"/>
+				<xs:element name="listRegisteredCommand" type="tns:ListRegisteredRequestType"/>				
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType >
+	
+	
+
+	
+	<xs:element name="managementRequestElement" type="tns:ManagementRequestType"/>
+
+
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-response.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-response.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/manager-response.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,58 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/configuration/model" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/configuration/model">
+	<xs:include schemaLocation="manager-common.xsd"/>
+	<xs:complexType name="RegistrationResponseType">
+		<xs:sequence>
+			<xs:element name="message" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="ListRegisteredResponseType">
+		<xs:sequence>
+			<xs:element name="services">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="service" type="tns:ServiceMetatDataType" maxOccurs="unbounded"></xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="ServiceMetatDataType">
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"/>
+			<xs:element name="uri" type="xs:anyURI"/>
+			<xs:element name="description" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="UnRegistrationResponseType">
+		<xs:sequence>
+						<xs:element name="message" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="IsRegisteredResponseType">
+		<xs:sequence>
+			<xs:element name="registered" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="ManagementResponseType">
+		<xs:sequence>
+			
+
+			<xs:choice>
+				<xs:element name="registrationCommand" type="tns:RegistrationResponseType"/>
+				<xs:element name="unregistrationCommand" type="tns:UnRegistrationResponseType"/>
+				<xs:element name="isRegisteredCommand" type="tns:IsRegisteredResponseType"/>
+				<xs:element name="listRegisteredCommand" type="tns:ListRegisteredResponseType"/>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType >
+	
+	
+
+	
+	<xs:element name="maangementResponseElement" type="tns:ManagementResponseType"/>
+</xs:schema>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-fault.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-fault.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-fault.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/monitoring/model" xmlns:x1="http://jboss.org/soa/esb/services/semantics/monitoring/model"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="managerFault" type="x1:fault"/>
+  <xs:complexType name="fault">
+    <xs:sequence>
+      <xs:element name="code" type="xs:string"/>
+      <xs:element name="faultString" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-request.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-request.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-request.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,20 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/monitoring/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/monitoring/model">
+	
+	<xs:complexType name="ListInvokedServicesRequestType">
+		<xs:sequence>
+		</xs:sequence>
+	</xs:complexType >	
+	
+	<xs:complexType name="MonitoringRequestType">
+		<xs:sequence>
+			<xs:choice>
+				<xs:element name="listInvokedServicesLastExecutionCommand" type="tns:ListInvokedServicesRequestType"/>			
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:element name="monitoringRequestElement" type="tns:MonitoringRequestType"/>
+
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-response.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-response.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/monitor-response.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,31 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/monitoring/model" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/monitoring/model">
+
+	
+	<xs:complexType name="ListInvokedServicesResponseType">
+		<xs:sequence>
+			<xs:element name="services">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="service" type="tns:ServiceMetatDataType" maxOccurs="unbounded"></xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:complexType name="ServiceMetatDataType">
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"/>
+			<xs:element name="uri" type="xs:anyURI"/>
+			<xs:element name="description" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="MonitoringResponseType">
+		<xs:sequence>
+			<xs:element name="listInvokedServicesLastExecution" type="tns:ListInvokedServicesResponseType"/>
+		</xs:sequence>
+	</xs:complexType >
+	
+	<xs:element name="monitoringResponseElement" type="tns:MonitoringResponseType"/>
+</xs:schema>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/owls-registry-service.xml	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<server>
+   <mbean code="org.jboss.soa.esb.services.semantics.configuration.OwlServiceRegistryService"
+      name="jboss.esb:service=OWLServiceRegistryService">
+   </mbean>
+</server>

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/request.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,42 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+	
+	<xs:include schemaLocation="common.xsd"/>
+
+	<xs:element name="serviceQueryRequest" type="tns:ServiceQueryRequestType">
+		<xs:annotation>
+			<xs:documentation></xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:complexType name="ServiceQueryRequestType">
+		<xs:sequence>
+			<xs:element name="id" type="xs:string" minOccurs="1" />
+			<xs:element name="inputs" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:choice>
+							<xs:element name="objectTypeInput" type="tns:ObjectTypeInputType" maxOccurs="unbounded"/>
+							<xs:element name="dataTypeInput" type="tns:DataTypeValueType" maxOccurs="unbounded"/>
+						</xs:choice>
+						
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="outputs" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="output" type="tns:ExpectedOutputType" maxOccurs="unbounded"/>
+					</xs:sequence>					
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="ExpectedOutputType">
+		<xs:sequence>
+			<xs:element name="class" type="xs:anyURI"/>			
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>
+

Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/resources/response.xsd	2010-11-14 22:50:52 UTC (rev 35972)
@@ -0,0 +1,24 @@
+<xs:schema version="1.0" targetNamespace="http://jboss.org/soa/esb/services/semantics/model"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:tns="http://jboss.org/soa/esb/services/semantics/model">
+
+	<xs:include schemaLocation="common.xsd"/>
+	<xs:element name="serviceQueryResponse" type="tns:ServiceQueryResponseType">
+		<xs:annotation>
+			<xs:documentation></xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:complexType name="ServiceQueryResponseType">
+		<xs:sequence>
+			<xs:element name="id" type="xs:string" minOccurs="1" />
+			<xs:element name="outputs">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="output" type="tns:ConceptValueType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>
+



More information about the jboss-svn-commits mailing list