You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2007/05/21 17:27:48 UTC

svn commit: r540171 - in /webservices/axis2/scratch/java/davidillsley: ./ src/main/java/org/apache/axis2/addressing/policy/ src/main/java/org/apache/axis2/addressing/policy/impl/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/java...

Author: davidillsley
Date: Mon May 21 08:27:47 2007
New Revision: 540171

URL: http://svn.apache.org/viewvc?view=rev&rev=540171
Log:
Some more work on wsa:Addressing support

Added:
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/
    webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/AddressingAssertionTests.java
      - copied, changed from r540051, webservices/axis2/scratch/java/davidillsley/src/test/java/AddressingAssertionTests.java
Removed:
    webservices/axis2/scratch/java/davidillsley/src/test/java/AddressingAssertionTests.java
Modified:
    webservices/axis2/scratch/java/davidillsley/pom.xml
    webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertion.java
    webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionBuilder.java
    webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/CompactAddressingAssertion.java
    webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/NormalisedAddressingAssertion.java

Modified: webservices/axis2/scratch/java/davidillsley/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/pom.xml?view=diff&rev=540171&r1=540170&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/pom.xml (original)
+++ webservices/axis2/scratch/java/davidillsley/pom.xml Mon May 21 08:27:47 2007
@@ -1,26 +1,45 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>addressing-policy</groupId>
-  <artifactId>addressing-policy</artifactId>
-  <version>0.0.1</version>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.ws.commons.neethi</groupId>
-      <artifactId>neethi</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.ws.commons.neethi</groupId>
-      <artifactId>neethi</artifactId>
-      <version>2.0</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>addressing-policy</groupId>
+	<artifactId>addressing-policy</artifactId>
+	<version>0.0.1</version>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.ws.commons.neethi</groupId>
+			<artifactId>neethi</artifactId>
+			<version>2.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.ws.commons.neethi</groupId>
+			<artifactId>neethi</artifactId>
+			<version>2.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.axis2</groupId>
+			<artifactId>axis2-kernel</artifactId>
+			<version>SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<inherited>true</inherited>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>
 

Modified: webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertion.java
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertion.java?view=diff&rev=540171&r1=540170&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertion.java (original)
+++ webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertion.java Mon May 21 08:27:47 2007
@@ -14,5 +14,6 @@
 package org.apache.axis2.addressing.policy;
 
 public interface AddressingAssertion {
-	public boolean isResponseCombinationAllowed(boolean anonymous, boolean nonAnonymous);
+	enum ResponsesEPRs{BOTH, ANONYMOUS, NON_ANONYMOUS, EITHER, NONE};
+	public ResponsesEPRs getAllowedResponseType();
 }

Modified: webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionBuilder.java?view=diff&rev=540171&r1=540170&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionBuilder.java (original)
+++ webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionBuilder.java Mon May 21 08:27:47 2007
@@ -27,6 +27,7 @@
 
 	public Assertion build(OMElement element, AssertionBuilderFactory factory)
 			throws IllegalArgumentException {
+//		System.out.println(element);
 		if(element.getQName().equals(CompactAddressingAssertion.ADDRESSING_ASSERTION)){
 			return new CompactAddressingAssertion(element);
 		}

Modified: webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/CompactAddressingAssertion.java
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/CompactAddressingAssertion.java?view=diff&rev=540171&r1=540170&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/CompactAddressingAssertion.java (original)
+++ webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/CompactAddressingAssertion.java Mon May 21 08:27:47 2007
@@ -23,6 +23,8 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
+import org.apache.axis2.addressing.policy.AddressingAssertion;
+import org.apache.axis2.addressing.policy.AddressingAssertion.ResponsesEPRs;
 import org.apache.neethi.All;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.Constants;
@@ -105,20 +107,37 @@
 		return Constants.TYPE_ASSERTION;
 	}
 
-	public boolean isResponseCombinationAllowed(boolean anonymous, boolean nonAnonymous) {
-		boolean result = false;
+	public ResponsesEPRs getAllowedResponseType() {
+		boolean both = false, anon = false, nonAnon = false, either = false;
 		Policy p = (Policy)normalize();
 		Iterator<List<Assertion>> iter = (Iterator<List<Assertion>>)p.getAlternatives();
-		while(iter.hasNext() && !result){
+		while(iter.hasNext()){
 			for(Assertion a: iter.next()){
 				if(a instanceof org.apache.axis2.addressing.policy.AddressingAssertion){
-					if(((org.apache.axis2.addressing.policy.AddressingAssertion)a).isResponseCombinationAllowed(anonymous, nonAnonymous)){
-						result = true;
+					AddressingAssertion aa = (org.apache.axis2.addressing.policy.AddressingAssertion)a;
+					ResponsesEPRs re = aa.getAllowedResponseType();
+					switch(re){
+					case BOTH: both = true; break;
+					case ANONYMOUS: anon = true;break;
+					case NON_ANONYMOUS: nonAnon = true;break;
+					case EITHER: either = true; break;
 					}
 				}
 			}
 		}
-		return result;
+		if(both){
+			return ResponsesEPRs.BOTH;
+		}
+		if(either || (anon && nonAnon)){
+			return ResponsesEPRs.EITHER;
+		}
+		if(anon){
+			return ResponsesEPRs.ANONYMOUS;
+		}
+		if(nonAnon){
+			return ResponsesEPRs.NON_ANONYMOUS;
+		}
+		return ResponsesEPRs.NONE;
 	}
 
 }

Modified: webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/NormalisedAddressingAssertion.java
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/NormalisedAddressingAssertion.java?view=diff&rev=540171&r1=540170&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/NormalisedAddressingAssertion.java (original)
+++ webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/impl/NormalisedAddressingAssertion.java Mon May 21 08:27:47 2007
@@ -32,6 +32,8 @@
 	private Policy normaliseNestedPolicy;
 	ArrayList<OMAttribute> nonoptatts;
 	List<Assertion> assertions;
+	boolean nonAnonymousAssertionFound;
+	boolean anonymoysAssertionFound;
 	public NormalisedAddressingAssertion(List<Assertion> assertions, ArrayList<OMAttribute> newnonoptatts){
 		this.assertions = assertions;
 		nonoptatts = newnonoptatts;
@@ -40,6 +42,12 @@
 		    ExactlyOne seo = new ExactlyOne();
 		    All sall = new All();
 		    for(Assertion assertion: assertions){
+		    	if(assertion instanceof NonAnonymousAssertion){
+		    		nonAnonymousAssertionFound = true;
+		    	}
+		    	if(assertion instanceof AnonymousAssertion){
+		    		anonymoysAssertionFound = true;
+		    	}
 		    	sall.addAssertion(assertion);
 		    }
 		    seo.addPolicyComponent(sall);
@@ -80,26 +88,36 @@
 	}
 
 	public boolean isResponseCombinationAllowed(boolean anonymous, boolean nonAnonymous) {
-//  TODO reimplement this or re-design the method signature so it more closely
-//		matches the nested assertions
-//		boolean result = true;
-//		if(anonymous){
-//			result = false;
-//			for(Assertion a: assertions){
-//				if(a instanceof AnonymousAssertion){
-//					result = true;
-//				}
-//			}
-//		}
-//		if(result && nonAnonymous){
-//			result = false;
-//			for(Assertion a: assertions){
-//				if(a instanceof NonAnonymousAssertion){
-//					result = true;
-//				}
-//			}
-//		}
-//		return result;
+		if(nonAnonymousAssertionFound && anonymoysAssertionFound){
+			// can't do anything that isn't none...
+			return false;
+		}
+		if(!nonAnonymousAssertionFound && !anonymoysAssertionFound){
+			return true;
+		}
+		if(anonymous && !nonAnonymous){
+			return anonymoysAssertionFound;
+		}
+		if(nonAnonymous && !nonAnonymous){
+			return nonAnonymousAssertionFound;
+		}
 		return false;
+	}
+
+	public ResponsesEPRs getAllowedResponseType() {
+		if(nonAnonymousAssertionFound && anonymoysAssertionFound){
+			// can't do anything that isn't none...
+			return ResponsesEPRs.NONE;
+		}
+		if(!nonAnonymousAssertionFound && !anonymoysAssertionFound){
+			return ResponsesEPRs.BOTH;
+		}
+		if(anonymoysAssertionFound){
+			return ResponsesEPRs.ANONYMOUS;
+		}
+		if(nonAnonymousAssertionFound){
+			return ResponsesEPRs.NON_ANONYMOUS;
+		}
+		return ResponsesEPRs.BOTH;
 	}
 }

Copied: webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/AddressingAssertionTests.java (from r540051, webservices/axis2/scratch/java/davidillsley/src/test/java/AddressingAssertionTests.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/AddressingAssertionTests.java?view=diff&rev=540171&p1=webservices/axis2/scratch/java/davidillsley/src/test/java/AddressingAssertionTests.java&r1=540051&p2=webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/AddressingAssertionTests.java&r2=540171
==============================================================================
--- webservices/axis2/scratch/java/davidillsley/src/test/java/AddressingAssertionTests.java (original)
+++ webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/AddressingAssertionTests.java Mon May 21 08:27:47 2007
@@ -1,3 +1,4 @@
+package org.apache.axis2.addressing.policy;
 /*
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org