Author: dennyxu
Date: 2009-07-08 03:58:16 -0400 (Wed, 08 Jul 2009)
New Revision: 16497
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/XSDUtils.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/factory/AdapterFactory.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/IConstants.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ReplyValidator.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/Query.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathValidator.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathVisitor.java
Log:
JBIDE-4567:BPEL validator can no recognize locationpath
JBIDE-4568:BPEL validator issues
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/XSDUtils.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/XSDUtils.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/XSDUtils.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -224,7 +224,12 @@
*/
public static List<XSDParticleContent> getChildElements (XSDComplexTypeDefinition
bo)
{
- return getChildElements( getModelGroup(bo) );
+ List<XSDParticleContent> children = new ArrayList<XSDParticleContent>();
+ children.addAll(getChildElements(getModelGroup(bo)));
+ if(bo.getBaseTypeDefinition() instanceof XSDComplexTypeDefinition){
+ children.addAll(getChildElements(getModelGroup((XSDComplexTypeDefinition)bo.getBaseTypeDefinition())));
+ }
+ return children;//getChildElements( getModelGroup(bo) );
}
/**
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/factory/AdapterFactory.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/factory/AdapterFactory.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/factory/AdapterFactory.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -5,6 +5,8 @@
import java.util.Locale;
import java.util.Map;
+import javax.xml.namespace.QName;
+
import org.eclipse.bpel.model.adapters.AdapterRegistry;
import org.eclipse.bpel.validator.Activator;
import org.eclipse.bpel.validator.IBPELMarker;
@@ -220,7 +222,14 @@
// href.context refers to the problem context, expressed
// in the model object space context.
- props.put( "href.context", problem.getAttribute(IProblem.CONTEXT ));
+ Object context = problem.getAttribute(IProblem.CONTEXT );
+ if( context instanceof QName){
+ QName qname = (QName)context;
+ props.put( "href.context", qname.getLocalPart());
+ }
+ else{
+ props.put( "href.context", problem.getAttribute(IProblem.CONTEXT ));
+ }
// do not save this marker
@@ -231,7 +240,7 @@
try {
marker = resource.createMarker( IBPELMarker.ID );
marker.setAttributes( props );
- } catch (CoreException ex) {
+ } catch (Exception ex) {
// can't create marker ... ?
Activator.log(ex);
return null;
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/IConstants.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/IConstants.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/IConstants.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -128,6 +128,8 @@
public static final String REQUEST = "request";
public static final String RESPONSE = "response";
public static final String REQUEST_RESPONSE = "request-response";
+ public static final String IN = "in";
+ public static final String OUT = "out";
//
public static final String PARTNER_ROLE = "partnerRole";
@@ -338,7 +340,7 @@
public static final String ENDPOINT_VALUES [] = { MY_ROLE, PARTNER_ROLE };
- public static final String PATTERN_VALUES [] = { REQUEST , RESPONSE, REQUEST_RESPONSE
};
+ public static final String PATTERN_VALUES [] = { REQUEST , RESPONSE,
REQUEST_RESPONSE, IN, OUT };
public static final QName REPEATABLE_NODES [] = {
ND_WHILE, ND_REPEAT_UNTIL, ND_FOR_EACH, ND_EVENT_HANDLERS, ND_COMPENSATION_HANDLER
};
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ReplyValidator.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ReplyValidator.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ReplyValidator.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -122,7 +122,7 @@
* 4) operation -> "input" message must be set.
*/
- INode fInputMessage ;
+ INode fOutMessage ;
/**
* Checks the Input Message for the receive. This just makes
@@ -132,8 +132,8 @@
public void rule_CheckOutputMessage_12 () {
- fInputMessage = findMessageType (fPortTypeFromRole,fOperation,WSDL_ND_INPUT, true );
- setValue("input.message.type", fInputMessage);
+ fOutMessage = findMessageType (fPortTypeFromRole,fOperation,WSDL_ND_OUTPUT, true );
+ setValue("input.message.type", fOutMessage);
}
@@ -155,7 +155,7 @@
{
IProblem problem;
- if (isUndefined(fInputMessage) || isUndefined(fVariable )) {
+ if (isUndefined(fOutMessage) || isUndefined(fVariable )) {
return ;
}
@@ -167,14 +167,14 @@
}
// source -> destination
- if (mModelQuery.check( IModelQueryLookups.TEST_COMPATIBLE_PARTNER_ACTIVITY_MESSAGE,
varType, fInputMessage ) == false) {
+ if (mModelQuery.check( IModelQueryLookups.TEST_COMPATIBLE_PARTNER_ACTIVITY_MESSAGE,
varType, fOutMessage ) == false) {
problem = createError( );
problem.fill( "BPELC_PA__MESSAGE_TYPE_MISMATCH", //$NON-NLS-1$
toString(mNode.nodeName()),
AT_VARIABLE,
fVariable.getAttribute( AT_NAME ),
- fInputMessage,
+ fOutMessage,
varType
);
}
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/Query.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/Query.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/Query.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -10,14 +10,19 @@
*******************************************************************************/
package org.eclipse.bpel.validator.xpath;
+import java.util.Iterator;
+import java.util.Map;
+
import org.eclipse.bpel.validator.model.ARule;
import org.eclipse.bpel.validator.model.INode;
import org.eclipse.bpel.validator.model.IProblem;
-
+import org.eclipse.bpel.validator.model.Problem;
import org.eclipse.bpel.xpath10.Expr;
import org.eclipse.bpel.xpath10.FunctionCallExpr;
import org.eclipse.bpel.xpath10.LocationPath;
+import org.eclipse.bpel.xpath10.UnaryExpr;
import org.eclipse.bpel.xpath10.VariableReferenceExpr;
+import org.eclipse.bpel.xpath10.parser.XPath10Parser.unaryExpr_return;
/**
* @author Michal Chmielewski (michal.chmielewski(a)oracle.com)
@@ -60,7 +65,8 @@
IProblem problem;
Expr expr = xpathExpr ;
- if (expr instanceof LocationPath) {
+ if (expr instanceof UnaryExpr && ((UnaryExpr)expr).getExpr() instanceof
LocationPath) {
+ expr = ((UnaryExpr)expr).getExpr();
Object obj = mVisitor.contextPeek();
if (obj instanceof INode) {
@@ -78,7 +84,9 @@
exprStringTrimmed,
toString(mNode.nodeName())
);
+
repointOffsets(problem, expr);
+
}
// Don't run anything else.
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathValidator.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathValidator.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathValidator.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -916,9 +916,9 @@
if (isEmptyOrWhitespace(prefix)) {
return true;
}
-
+
String nsURI = lookupNamespace(prefix);
-
+
if (isEmpty(nsURI)) {
IProblem problem = createError();
problem.fill("XPATH_UNRESOLVED_NAMESPACE_PREFIX", //$NON-NLS-1$
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathVisitor.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathVisitor.java 2009-07-08
06:34:04 UTC (rev 16496)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/xpath/XPathVisitor.java 2009-07-08
07:58:16 UTC (rev 16497)
@@ -394,7 +394,7 @@
*/
public void visit ( Object obj ) {
- if (obj instanceof PathExpr) {
+ if (obj instanceof PathExpr) {;
visit((PathExpr) obj);
} else if (obj instanceof LocationPath) {
visit((LocationPath) obj);