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