[savara-commits] savara SVN: r398 - in trunk/tools/plugins: org.jboss.savara.tap.model/src/java/org/jboss/savara/tap/model/admin and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Sep 15 10:17:46 EDT 2010
Author: objectiser
Date: 2010-09-15 10:17:45 -0400 (Wed, 15 Sep 2010)
New Revision: 398
Modified:
trunk/tools/plugins/org.jboss.savara.tap.model/META-INF/MANIFEST.MF
trunk/tools/plugins/org.jboss.savara.tap.model/src/java/org/jboss/savara/tap/model/admin/ResourceLoader.java
trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/model/admin/eclipse/EclipseResourceLoader.java
trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/validation/TAPValidator.java
trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/BPELElement.java
trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java
trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java
trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java
trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java
Log:
Create specific model listener per resource, based on the underlying platform, so validation errors associated with the correct file.
Modified: trunk/tools/plugins/org.jboss.savara.tap.model/META-INF/MANIFEST.MF
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tap.model/META-INF/MANIFEST.MF 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tap.model/META-INF/MANIFEST.MF 2010-09-15 14:17:45 UTC (rev 398)
@@ -9,3 +9,4 @@
Import-Package: org.osgi.framework;version="1.3.0"
Export-Package: org.jboss.savara.tap.model,
org.jboss.savara.tap.model.admin
+Require-Bundle: org.scribble.core;bundle-version="[1.1.0,2.0.0)"
Modified: trunk/tools/plugins/org.jboss.savara.tap.model/src/java/org/jboss/savara/tap/model/admin/ResourceLoader.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tap.model/src/java/org/jboss/savara/tap/model/admin/ResourceLoader.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tap.model/src/java/org/jboss/savara/tap/model/admin/ResourceLoader.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -22,6 +22,7 @@
package org.jboss.savara.tap.model.admin;
import org.jboss.savara.tap.model.Resource;
+import org.scribble.model.admin.ModelListener;
public interface ResourceLoader {
@@ -43,4 +44,20 @@
*/
public java.io.InputStream getContents(Resource resource);
+ /**
+ * This method returns a model listener associated with the supplied resource.
+ *
+ * @param res The resource
+ * @return The model listener associated with the resource
+ */
+ public ModelListener getResourceModelListener(Resource res);
+
+ /**
+ * This method frees a model listener associated with the supplied resource.
+ *
+ * @param res The resource
+ * @param l The model listener associated with the resource
+ */
+ public void freeResourceModelListener(Resource res, ModelListener l);
+
}
Modified: trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/model/admin/eclipse/EclipseResourceLoader.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/model/admin/eclipse/EclipseResourceLoader.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/model/admin/eclipse/EclipseResourceLoader.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -31,6 +31,8 @@
import org.jboss.savara.tap.model.Resource;
import org.jboss.savara.tap.model.URI;
import org.jboss.savara.tap.model.admin.ResourceLoader;
+import org.scribble.eclipse.model.admin.OSGIModelListener;
+import org.scribble.model.admin.ModelListener;
/**
* This class providers the Eclipse resource loader implementation.
@@ -68,9 +70,32 @@
* @return The contents, or null if not found
*/
public InputStream getContents(Resource resource) {
+ java.io.InputStream ret=null;
+ IFile res=getFile(resource);
+
+ if (res != null) {
+ try {
+ ret = res.getContents();
+ } catch(Exception e) {
+ logger.log(Level.SEVERE,
+ "Failed to get contents for resource '"+res+"'", e);
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method retrieves the contents associated with the
+ * supplied resource.
+ *
+ * @param resource The resource
+ * @return The contents, or null if not found
+ */
+ protected IFile getFile(Resource resource) {
String projectName=null;
String location=null;
- java.io.InputStream ret=null;
+ IFile ret=null;
for (URI uri : resource.getUri()) {
if (uri.getType().equalsIgnoreCase("eclipse")) {
@@ -90,18 +115,11 @@
} else if (location == null) {
logger.severe("Eclipse locator has not been defined for resource: "+resource.getId());
} else {
- IFile res=project.getFile(new Path(location));
+ ret = project.getFile(new Path(location));
- if (res == null) {
+ if (ret == null) {
logger.severe("Eclipse locator '"+location+"' for project '"+projectName+
"' does not exist for resource: "+resource.getId());
- } else {
- try {
- ret = res.getContents();
- } catch(Exception e) {
- logger.log(Level.SEVERE,
- "Failed to get contents for resource '"+res+"'", e);
- }
}
}
} else {
@@ -112,4 +130,35 @@
return(ret);
}
+ /**
+ * This method returns a model listener associated with the supplied resource.
+ *
+ * @param res The resource
+ * @return The model listener associated with the resource
+ */
+ public ModelListener getResourceModelListener(Resource res) {
+ IFile file=getFile(res);
+ ModelListener ret=null;
+
+ if (file != null) {
+ ret = new OSGIModelListener(file);
+ } else {
+ logger.severe("Failed to get model listener for resource '"+res+"'");
+
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method frees a model listener associated with the supplied resource.
+ *
+ * @param res The resource
+ * @param l The model listener associated with the resource
+ */
+ public void freeResourceModelListener(Resource res, ModelListener l) {
+ if (l instanceof OSGIModelListener) {
+ ((OSGIModelListener)l).finished();
+ }
+ }
}
Modified: trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/validation/TAPValidator.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/validation/TAPValidator.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tap.validation/src/java/org/jboss/savara/tap/validation/TAPValidator.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -113,6 +113,7 @@
// Load and validate the individual resources
for (Phase phase : project.getPhase()) {
for (Resource resource : phase.getResource()) {
+ ModelListener rl=getResourceModelListener(resource);
// Validate resource
for (ResourceValidator rv : m_resourceValidators) {
@@ -121,7 +122,7 @@
java.io.InputStream is=getResourceContents(resource);
if (is != null) {
- rv.validate(resource, is, l);
+ rv.validate(resource, is, rl);
try {
is.close();
@@ -148,7 +149,7 @@
java.io.InputStream fromIS=getResourceContents(resource);
java.io.InputStream toIS=getResourceContents(toResource);
- rv.validate(rel, resource, fromIS, toResource, toIS, l);
+ rv.validate(rel, resource, fromIS, toResource, toIS, rl);
break;
}
@@ -158,6 +159,8 @@
"' not found for resource '"+resource.getId()+"'");
}
}
+
+ freeResourceModelListener(resource, rl);
}
}
}
@@ -182,4 +185,30 @@
return(ret);
}
+
+ protected ModelListener getResourceModelListener(Resource resource) {
+ ModelListener ret=null;
+
+ for (ResourceLoader rl : m_resourceLoaders) {
+ if (rl.isSupported(resource)) {
+ ret = rl.getResourceModelListener(resource);
+
+ if (ret != null) {
+ break;
+ }
+ }
+ }
+
+ return(ret);
+ }
+
+ protected void freeResourceModelListener(Resource resource, ModelListener l) {
+
+ for (ResourceLoader rl : m_resourceLoaders) {
+ if (rl.isSupported(resource)) {
+ rl.freeResourceModelListener(resource, l);
+ break;
+ }
+ }
+ }
}
Modified: trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/BPELElement.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/BPELElement.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/BPELElement.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -130,6 +130,27 @@
}
/**
+ * This method returns the BPEL process in which the BPEL element
+ * is contained.
+ *
+ * @return The BPEL process, or null if not found
+ */
+ protected Process getProcess() {
+ Process ret=null;
+ ModelObject cur=this;
+
+ while (ret == null && cur != null) {
+ if (cur instanceof Process) {
+ ret = (Process)cur;
+ } else {
+ cur = cur.getParent();
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the element associated with
* the supplied name.
*
Modified: trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/ConversionContext.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -20,6 +20,13 @@
public interface ConversionContext {
/**
+ * This method returns the process.
+ *
+ * @return The process
+ */
+ public Process getProcess();
+
+ /**
* This method returns the role associated with the
* endpoint being converted.
*
Modified: trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/DefaultConversionContext.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -35,6 +35,15 @@
}
/**
+ * This method returns the process.
+ *
+ * @return The process
+ */
+ public Process getProcess() {
+ return(m_process);
+ }
+
+ /**
* This method returns the role associated with the
* endpoint being converted.
*
Modified: trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Process.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -54,6 +54,11 @@
org.w3c.dom.Element activity) {
super(model, activity);
+ java.util.List<BPELElement> imports=findChildElements(Import.class);
+ for (BPELElement elem : imports) {
+ m_imports.add((Import)elem);
+ }
+
m_partnerLinksElem = findChildElement("partnerLinks");
if (m_partnerLinksElem != null) {
@@ -159,6 +164,42 @@
}
/**
+ * This method searches the defined WSDL definitions to identify
+ * the underlying XML element/type associated with the supplied
+ * WSDL message type.
+ *
+ * @param wsdlMessageType The WSDL message type
+ * @return The underlying XML element/type, or null if not found
+ */
+ public String getXMLType(String wsdlMessageType) {
+ String ret=null;
+
+ // Resolve the namespace prefix
+ int index=wsdlMessageType.indexOf(':');
+
+ if (index != -1) {
+ String prefix=wsdlMessageType.substring(0, index);
+
+ String namespace=getNamespace(prefix);
+
+ wsdlMessageType = wsdlMessageType.substring(index+1);
+
+ for (Import imp : getImports()) {
+
+ // Check if import relates to the correct namespace
+ if (imp.getNamespace() != null &&
+ imp.getNamespace().equals(namespace) &&
+ imp.getLocation() != null &&
+ imp.getLocation().endsWith(".wsdl")) {
+ System.out.println("Check "+imp.getLocation());
+ }
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the list of partner links.
*
* @return The partner links
Modified: trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java
===================================================================
--- trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java 2010-09-14 16:36:26 UTC (rev 397)
+++ trunk/tools/plugins/org.jboss.savara.tools.bpel/src/java/org/jboss/savara/tools/bpel/model/component/Receive.java 2010-09-15 14:17:45 UTC (rev 398)
@@ -137,6 +137,8 @@
Variable var=context.getVariable(getVariable());
+ String xmlType=context.getProcess().getXMLType(var.getMessageType());
+
TypeReference tref=createTypeReference(var.getMessageType(), context);
MessageSignature ms=new MessageSignature();
More information about the savara-commits
mailing list