[jboss-svn-commits] JBL Code SVN: r35107 - in labs/jbossesb/workspace/johan.kumps/product/services: semantics and 21 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 10 14:45:03 EDT 2010
Author: johan.kumps
Date: 2010-09-10 14:45:01 -0400 (Fri, 10 Sep 2010)
New Revision: 35107
Added:
labs/jbossesb/workspace/johan.kumps/product/services/semantics/
labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties
labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/build-time/
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/
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/AbstractSelectionAction.java
labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java
labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java
labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.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/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/DataValueType.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/InputType.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/ObjectValueType.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/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/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:
Intial version semantics service
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.properties 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,4 @@
+esb.product.lib.dir=../../build/jbossesb/lib
+esb.main.lib=../../build/lib
+esb.product.lib.ext=../../lib/ext
+services.base.build=../base-project-build.xml
\ No newline at end of file
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/build.xml 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,17 @@
+<project name="semantics" default="test" basedir=".">
+
+ <property file="build.properties"/>
+ <!-- Import the base Ant build script... -->
+ <import file="${services.base.build}"/>
+
+ <property name="additional.deploys" value="*.xsd"/>
+
+ <target name="test" depends="base.test"/>
+
+ <target name="deploy" depends="esb">
+ <copy todir="C:/jb/product/build/jbossesb-server-4.7/server/default/deploy/semantics.esb">
+ <fileset dir="C:/jb/product/services/semantics/build/semantics.esb"/>
+ </copy>
+ </target>
+
+</project>
\ No newline at end of file
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/arq-2.8.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/aterm-java-1.6.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/axis-1.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/classes.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/commons-discovery-0.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/icu4j-3.4.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/iri-0.7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/jena-2.6.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/pellet-2.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/relaxngDatatype-20020414.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/upnp-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/johan.kumps/product/services/semantics/lib/ext/xsdlib-20030225.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,19 @@
+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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,254 @@
+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.ExpectedOutputType;
+import org.jboss.soa.esb.services.semantics.model.InputType;
+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.owls.vocabulary.OWLS;
+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){
+ List<InputType> serviceQueryInputs = serviceQuery.getInputs().getInput();
+ InputType currentInput = null;
+ int count = 0;
+ for (Iterator<InputType> 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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,292 @@
+package org.jboss.soa.esb.services.semantics.actions.invocation;
+
+import java.io.ByteArrayOutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Iterator;
+import java.util.List;
+
+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.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.actions.selection.SelectionAction;
+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.DataValueType;
+import org.jboss.soa.esb.services.semantics.model.InputType;
+import org.jboss.soa.esb.services.semantics.model.ObjectFactory;
+import org.jboss.soa.esb.services.semantics.model.ObjectValueType;
+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.utils.Constants;
+import org.mindswap.exceptions.ExecutionException;
+import org.mindswap.owl.OWLClass;
+import org.mindswap.owl.OWLDataProperty;
+import org.mindswap.owl.OWLIndividual;
+import org.mindswap.owl.OWLIndividualList;
+import org.mindswap.owl.OWLKnowledgeBase;
+import org.mindswap.owl.OWLObjectProperty;
+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.query.ValueMap;
+
+/**
+ * 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) {
+ 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 {
+
+ URI serviceURI = (URI) message.getBody().get(
+ Constants.SELECTED_SERVICE_URI_MESSAGE_KEY);
+ String messageID = (String) message.getBody().get("messageID");
+
+ List<InputType> userInputs = ((Inputs) message.getBody().get(Constants.CONSUMER_INPUTS_MESSAGE_KEY))
+ .getInput();
+
+ //If a service is found --> start the invocation sequence
+ if (serviceURI != null) {
+ OWLKnowledgeBase owlKnowledgeBase = OWLKnowledgeBaseManager
+ .getInstance().getOwlKnowledgeBase();
+ Process process = owlKnowledgeBase.getService(serviceURI).getProcess();
+
+ ProcessExecutionEngine processExecutionEngine = OWLSFactory
+ .createExecutionEngine();
+
+ ValueMap<Output, OWLValue> outputs = new ValueMap<Output, OWLValue>();
+
+ try {
+ outputs = processExecutionEngine.execute(process, this.buildProcessInputs(userInputs, process, serviceURI),
+ owlKnowledgeBase);
+ } catch (ExecutionException e) {
+ logger.error(e.getMessage());
+ throw new ActionProcessingException(e);
+ }
+
+ return this.buildResponseMessage(this.buildServiceQueryResponseType(messageID, outputs, process), message);
+ } else {
+ // return error message
+ return message;
+ }
+ }
+
+ /**
+ * This method converts the 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> buildProcessInputs(
+ List<InputType> 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();
+ InputType currentUserInput = null;
+
+ OWLClass rootClass = null;
+ OWLIndividual rootIndividual = null;
+
+ DataValueType currentDataValue = null;
+ OWLDataProperty currentDataProperty = null;
+
+ ObjectValueType currentObjectValue = null;
+ OWLClass currentObjectValueClass = null;
+ OWLIndividual currentObjectValueIndividual = null;
+ OWLObjectProperty currentObjectProperty = null;
+ DataValueType 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<DataValueType> dataValueIterator = currentUserInput
+ .getDataValue().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<ObjectValueType> objectValueIterator = currentUserInput
+ .getObjectValue().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<DataValueType> 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){
+
+ OWLIndividualList<Output> processOutputs = process.getOutputs();
+ Output currentOutput = null;
+
+ ServiceQueryResponseType serviceQueryResponse = ObjectFactory
+ .getInstance().createServiceQueryResponseType();
+ serviceQueryResponse.setId(messageId);
+ Outputs serviceOutputs = ObjectFactory.getInstance()
+ .createServiceQueryResponseTypeOutputs();
+
+ for (int i = 0; i < processOutputs.size(); i++) {
+ currentOutput = processOutputs.get(i);
+ ConceptValueType output = ObjectFactory.getInstance()
+ .createConceptValueType();
+ output.setConcept(currentOutput.getURI().toString());
+ output.setDataValue(outputs.getDataValue(
+ currentOutput.getName()).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/AbstractSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/AbstractSelectionAction.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,25 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.message.Message;
+import org.mindswap.owls.service.Service;
+
+public abstract class AbstractSelectionAction implements SelectionAction{
+ /**
+ * The Logger instance for this action
+ */
+ private static Logger logger = Logger.getLogger(AbstractSelectionAction.class);
+
+ public abstract Message select(Message message) throws Exception;
+
+ 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/FirstMatchSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/FirstMatchSelectionAction.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,48 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import java.net.URI;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+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.utils.Constants;
+
+/**
+ * This discoveryAction selects 1 service out of the services matching the user query.
+ *
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class FirstMatchSelectionAction extends AbstractSelectionAction {
+
+ /**
+ * The Logger instance for this action
+ */
+ private static Logger logger = Logger.getLogger(FirstMatchSelectionAction.class);
+
+ protected ConfigTree _config = null;
+
+ public FirstMatchSelectionAction(ConfigTree config) {
+ _config = config;
+ }
+
+ public Message select(Message message) throws ActionProcessingException {
+ List<URI> matchedServices = (List<URI>) message.getBody().get(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY);
+ if (matchedServices.size() > 0){
+ if(logger.isDebugEnabled()) {
+ this.printServiceInfo(OWLKnowledgeBaseManager
+ .getInstance().getOwlKnowledgeBase().getService(matchedServices.get(0)));
+ }
+ message.getBody().add(Constants.SELECTED_SERVICE_URI_MESSAGE_KEY, matchedServices.get(0));
+ } 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/RandomMatchSelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/RandomMatchSelectionAction.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,61 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Random;
+
+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 1 service out of the services matching the user query randomly.
+ *
+ * @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ *
+ */
+public class RandomMatchSelectionAction implements SelectionAction {
+
+ /**
+ * The Logger instance for this action
+ */
+ private static Logger logger = Logger.getLogger(RandomMatchSelectionAction.class);
+
+ private Random generator = null;
+
+ protected ConfigTree _config = null;
+
+ public RandomMatchSelectionAction(ConfigTree config) {
+ _config = config;
+ }
+
+ /**
+ * Initializes the RandomMatchSelectionAction.
+ *
+ * @throws ActionLifecycleException in case somthing goes wrong during initialization.
+ */
+ public void initialize() throws ActionLifecycleException{
+ this.generator = new Random();
+ }
+
+ public Message select(Message message) throws ActionProcessingException {
+ List<URI> matchedServices = (List<URI>) message.getBody().get(Constants.DISCOVERED_SERVICE_URIS_MESSAGE_KEY);
+ URI selectedServiceURI = null;
+ if (matchedServices.size() > 0){
+ selectedServiceURI = matchedServices.get(generator.nextInt(matchedServices.size()));
+ if(logger.isDebugEnabled()) {
+ logger.debug("Selected service: [" + selectedServiceURI + "].");
+ }
+ message.getBody().add(Constants.SELECTED_SERVICE_URI_MESSAGE_KEY, selectedServiceURI);
+ } 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/SelectionAction.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/actions/selection/SelectionAction.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,14 @@
+package org.jboss.soa.esb.services.semantics.actions.selection;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface SelectionAction {
+
+ /**
+ * 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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,51 @@
+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("C:/projecten/JBossESB/ssoa/owls-api-3.0/getMessage.owl"));
+ 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/GetWeather2-Simulated.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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,33 @@
+/*
+ * 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/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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,122 @@
+
+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>
+ * <complexType name="ConceptValueType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="concept" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <choice>
+ * <element name="dataValue" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="individualValue" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType"/>
+ * </choice>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </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/DataValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/DataValueType.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,123 @@
+
+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 DataValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="DataValueType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <element name="value" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "DataValueType", propOrder = {
+ "clazz",
+ "name",
+ "value"
+})
+public class DataValueType 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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,64 @@
+
+package org.jboss.soa.esb.services.semantics.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 ExpectedOutputType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ExpectedOutputType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExpectedOutputType", propOrder = {
+ "clazz"
+})
+public class ExpectedOutputType {
+
+ @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/InputType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/InputType.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,132 @@
+
+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 InputType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="InputType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <element name="dataValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataValueType" maxOccurs="unbounded" minOccurs="0"/>
+ * <element name="objectValue" type="{http://jboss.org/soa/esb/services/semantics/model}ObjectValueType" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "InputType", propOrder = {
+ "clazz",
+ "dataValue",
+ "objectValue"
+})
+public class InputType implements Serializable {
+
+ @XmlElement(name = "class", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String clazz;
+ protected List<DataValueType> dataValue;
+ protected List<ObjectValueType> objectValue;
+
+ /**
+ * 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 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 DataValueType }
+ *
+ *
+ */
+ public List<DataValueType> getDataValue() {
+ if (dataValue == null) {
+ dataValue = new ArrayList<DataValueType>();
+ }
+ return this.dataValue;
+ }
+
+ /**
+ * Gets the value of the objectValue 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 objectValue property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getObjectValue().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ObjectValueType }
+ *
+ *
+ */
+ public List<ObjectValueType> getObjectValue() {
+ if (objectValue == null) {
+ objectValue = new ArrayList<ObjectValueType>();
+ }
+ return this.objectValue;
+ }
+
+}
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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,140 @@
+
+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 ExpectedOutputType }
+ *
+ */
+ public ExpectedOutputType createExpectedOutputType() {
+ return new ExpectedOutputType();
+ }
+
+ /**
+ * Create an instance of {@link ServiceQueryResponseType }
+ *
+ */
+ public ServiceQueryResponseType createServiceQueryResponseType() {
+ return new ServiceQueryResponseType();
+ }
+
+ /**
+ * Create an instance of {@link ServiceQueryResponseType.Outputs }
+ *
+ */
+ public ServiceQueryResponseType.Outputs createServiceQueryResponseTypeOutputs() {
+ return new ServiceQueryResponseType.Outputs();
+ }
+
+ /**
+ * Create an instance of {@link InputType }
+ *
+ */
+ public InputType createInputType() {
+ return new InputType();
+ }
+
+ /**
+ * Create an instance of {@link DataValueType }
+ *
+ */
+ public DataValueType createDataValueType() {
+ return new DataValueType();
+ }
+
+ /**
+ * Create an instance of {@link ConceptValueType }
+ *
+ */
+ public ConceptValueType createConceptValueType() {
+ return new ConceptValueType();
+ }
+
+ /**
+ * Create an instance of {@link ServiceQueryRequestType.Inputs }
+ *
+ */
+ public ServiceQueryRequestType.Inputs createServiceQueryRequestTypeInputs() {
+ return new ServiceQueryRequestType.Inputs();
+ }
+
+ /**
+ * Create an instance of {@link ObjectValueType }
+ *
+ */
+ public ObjectValueType createObjectValueType() {
+ return new ObjectValueType();
+ }
+
+ /**
+ * Create an instance of {@link ServiceQueryRequestType }
+ *
+ */
+ public ServiceQueryRequestType createServiceQueryRequestType() {
+ return new ServiceQueryRequestType();
+ }
+
+ /**
+ * 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/ObjectValueType.java
===================================================================
--- labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java (rev 0)
+++ labs/jbossesb/workspace/johan.kumps/product/services/semantics/src/main/java/org/jboss/soa/esb/services/semantics/model/ObjectValueType.java 2010-09-10 18:45:01 UTC (rev 35107)
@@ -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 ObjectValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ObjectValueType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="class" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <element name="name" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ * <element name="dataValue" type="{http://jboss.org/soa/esb/services/semantics/model}DataValueType" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ObjectValueType", propOrder = {
+ "clazz",
+ "name",
+ "dataValue"
+})
+public class ObjectValueType implements Serializable {
+
+ @XmlElement(name = "class", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String clazz;
+ @XmlElement(required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String name;
+ protected List<DataValueType> 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 DataValueType }
+ *
+ *
+ */
+ public List<DataValueType> getDataValue() {
+ if (dataValue == null) {
+ dataValue = new ArrayList<DataValueType>();
+ }
+ 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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,260 @@
+
+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.XmlType;
+
+
+/**
+ * <p>Java class for ServiceQueryRequestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ServiceQueryRequestType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="inputs" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="input" type="{http://jboss.org/soa/esb/services/semantics/model}InputType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="outputs" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </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>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="input" type="{http://jboss.org/soa/esb/services/semantics/model}InputType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "input"
+ })
+ public static class Inputs implements Serializable {
+
+ @XmlElement(required = true)
+ protected List<InputType> input;
+
+ /**
+ * Gets the value of the input 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 input property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getInput().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link InputType }
+ *
+ *
+ */
+ public List<InputType> getInput() {
+ if (input == null) {
+ input = new ArrayList<InputType>();
+ }
+ return this.input;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ExpectedOutputType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "output"
+ })
+ 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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,163 @@
+
+package org.jboss.soa.esb.services.semantics.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 ServiceQueryResponseType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ServiceQueryResponseType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="outputs">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </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>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="output" type="{http://jboss.org/soa/esb/services/semantics/model}ConceptValueType" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "output"
+ })
+ public static class Outputs {
+
+ @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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,2 @@
+ 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/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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,19 @@
+package org.jboss.soa.esb.services.semantics.utils;
+
+import org.jboss.soa.esb.services.semantics.model.ServiceQueryRequestType;
+
+/**
+ * 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_SERVICE_URI_MESSAGE_KEY = "selectedServiceURI";
+
+ public static final String SEMANTIC_MODEL_PACKAGE = ServiceQueryRequestType.class.getPackage().getName();
+
+}
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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,38 @@
+<?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="quickstartEsbChannel">
+ <jms-message-filter dest-type="QUEUE"
+ dest-name="queue/semanticServiceInvoker"
+ selector="serviceName='SemanticServiceInvoker'" />
+ </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="quickstartEsbChannel"
+ 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.FirstMatchSelectionAction"
+ process="select" />
+ <action name="invoke"
+ class="org.jboss.soa.esb.services.semantics.actions.invocation.ServiceInvocationAction"
+ process="invoke" />
+ </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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -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="InputType">
+ <xs:sequence>
+ <xs:element name="class" type="xs:anyURI"/>
+ <xs:element name="dataValue" type="tns:DataValueType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="objectValue" type="tns:ObjectValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DataValueType">
+ <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="ObjectValueType">
+ <xs:sequence>
+ <xs:element name="class" type="xs:anyURI"/>
+ <xs:element name="name" type="xs:anyURI"/>
+ <xs:element name="dataValue" type="tns:DataValueType" 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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -0,0 +1,30 @@
+<?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=quickstart_publish_as_webservice_Request_esb"
+ 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=quickstart_publish_as_webservice_Request_esb_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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -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.actions.discovery">
+ <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/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-09-10 18:45:01 UTC (rev 35107)
@@ -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-09-10 18:45:01 UTC (rev 35107)
@@ -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: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:element name="input" type="tns:InputType" maxOccurs="unbounded"/>
+ </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-09-10 18:45:01 UTC (rev 35107)
@@ -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