[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