You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by sa...@apache.org on 2005/11/20 17:05:51 UTC
svn commit: r345757 - in
/webservices/commons/trunk/policy/src/org/apache/policy: model/ util/
Author: sanka
Date: Sun Nov 20 08:05:29 2005
New Revision: 345757
URL: http://svn.apache.org/viewcvs?rev=345757&view=rev
Log:
Some refactoring and few bug fixes ..
Added:
webservices/commons/trunk/policy/src/org/apache/policy/model/PolicyConstants.java
- copied, changed from r345752, webservices/commons/trunk/policy/src/org/apache/policy/model/WSPConstants.java
webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyUtil.java
Removed:
webservices/commons/trunk/policy/src/org/apache/policy/model/WSPConstants.java
Modified:
webservices/commons/trunk/policy/src/org/apache/policy/model/PrimitiveAssertion.java
webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyAttachmentUtil.java
webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyReader.java
webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyWriter.java
Copied: webservices/commons/trunk/policy/src/org/apache/policy/model/PolicyConstants.java (from r345752, webservices/commons/trunk/policy/src/org/apache/policy/model/WSPConstants.java)
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/model/PolicyConstants.java?p2=webservices/commons/trunk/policy/src/org/apache/policy/model/PolicyConstants.java&p1=webservices/commons/trunk/policy/src/org/apache/policy/model/WSPConstants.java&r1=345752&r2=345757&rev=345757&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/model/WSPConstants.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/policy/model/PolicyConstants.java Sun Nov 20 08:05:29 2005
@@ -20,7 +20,7 @@
* entier framework.
*
*/
-public interface WSPConstants {
+public interface PolicyConstants {
/** */
public static final String AND_COMPOSITE_ASSERTION = "All";
Modified: webservices/commons/trunk/policy/src/org/apache/policy/model/PrimitiveAssertion.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/model/PrimitiveAssertion.java?rev=345757&r1=345756&r2=345757&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/model/PrimitiveAssertion.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/policy/model/PrimitiveAssertion.java Sun Nov 20 08:05:29 2005
@@ -23,7 +23,7 @@
import javax.xml.namespace.QName;
import org.apache.policy.util.PolicyRegistry;
-import org.apache.policy.util.WSPolicyUtil;
+import org.apache.policy.util.PolicyUtil;
/**
* PrimitiveAssertion wraps an assertion which is indivisible. Such assertion
@@ -92,7 +92,7 @@
List argChildTerms;
if (arg.getTerms().get(0) instanceof Policy) {
argChildTerms
- = WSPolicyUtil.getPrimTermsList((Policy) arg.getTerms().get(0));
+ = PolicyUtil.getPrimTermsList((Policy) arg.getTerms().get(0));
} else {
argChildTerms = arg.getTerms();
}
@@ -100,12 +100,12 @@
List selfChildTerms;
if (self.getTerms().get(0) instanceof Policy) {
selfChildTerms
- = WSPolicyUtil.getPrimTermsList((Policy) self.getTerms().get(0));
+ = PolicyUtil.getPrimTermsList((Policy) self.getTerms().get(0));
} else {
selfChildTerms = self.getTerms();
}
- if (WSPolicyUtil.matchByQName(argChildTerms, selfChildTerms)) {
+ if (PolicyUtil.matchByQName(argChildTerms, selfChildTerms)) {
AndCompositeAssertion andCompositeAssertion
= new AndCompositeAssertion();
@@ -185,7 +185,7 @@
return primitiveAssertion;
}
- Policy policyTerm = WSPolicyUtil.getSinglePolicy(policyTerms, reg);
+ Policy policyTerm = PolicyUtil.getSinglePolicy(policyTerms, reg);
CompositeAssertion xorTerm = (XorCompositeAssertion)
policyTerm.getTerms().get(0);
@@ -225,7 +225,7 @@
termsForAnEndAnd.addAll(childNonPolicyTerms);
termsForAnEndAnd.addAll(((AndCompositeAssertion) iterator2.next()).getTerms());
- self.addTerm(WSPolicyUtil.getPolicy(termsForAnEndAnd));
+ self.addTerm(PolicyUtil.getPolicy(termsForAnEndAnd));
anEndAndTerm.addTerm(self);
endAndTerms.add(anEndAndTerm);
@@ -236,7 +236,7 @@
termsForAnEndAnd.clear();
termsForAnEndAnd.addAll(childNonPolicyTerms);
termsForAnEndAnd.addAll(((AndCompositeAssertion) iterator2.next()).getTerms());
- self.addTerm(WSPolicyUtil.getPolicy(termsForAnEndAnd));
+ self.addTerm(PolicyUtil.getPolicy(termsForAnEndAnd));
anEndAndTerm.addTerm(self);
endAndTerms.add(anEndAndTerm);
Modified: webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyAttachmentUtil.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyAttachmentUtil.java?rev=345757&r1=345756&r2=345757&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyAttachmentUtil.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyAttachmentUtil.java Sun Nov 20 08:05:29 2005
@@ -33,7 +33,7 @@
import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
import org.apache.policy.model.Assertion;
import org.apache.policy.model.Policy;
-import org.apache.policy.model.WSPConstants;
+import org.apache.policy.model.PolicyConstants;
import org.apache.wsdl.Component;
import org.apache.wsdl.MessageReference;
import org.apache.wsdl.WSDLBinding;
@@ -57,21 +57,21 @@
* @author Sanka Samaranayake <ss...@gmail.com>
*
*/
-public class WSPolicyAttachmentUtil {
+public class PolicyAttachmentUtil {
private WSDLDescription wsdlDescription = null;
//private HashMap loadedPolicies = new HashMap();
private PolicyRegistry reg = new PolicyRegistry();
- public WSPolicyAttachmentUtil() {
+ public PolicyAttachmentUtil() {
}
- public WSPolicyAttachmentUtil(WSDLDescription wsdlDescription) {
+ public PolicyAttachmentUtil(WSDLDescription wsdlDescription) {
this.wsdlDescription = wsdlDescription;
populatePolicyRegistry();
}
- public WSPolicyAttachmentUtil(InputStream wsdlInputStream) {
+ public PolicyAttachmentUtil(InputStream wsdlInputStream) {
try {
WSDLVersionWrapper build = WOMBuilderFactory.
getBuilder(WSDLConstants.WSDL_1_1).build(wsdlInputStream);
@@ -396,7 +396,7 @@
= (WSDLExtensibilityAttribute) iterator.next();
QName qname = exAttribute.getKey();
- if (qname.getNamespaceURI().equals(WSPConstants.WS_POLICY_NAMESPACE_URI) &&
+ if (qname.getNamespaceURI().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI) &&
qname.getLocalPart().equals("PolicyURIs")) {
String value = exAttribute.getValue().toString();
String[] uriStrings = value.split(" ");
@@ -430,11 +430,11 @@
= (DefaultExtensibilityElement) extensibilityElement;
Element element = defaultExtensibilityElement.getElement();
- if (element.getNamespaceURI().equals(WSPConstants.WS_POLICY_NAMESPACE_URI)
+ if (element.getNamespaceURI().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI)
&& element.getLocalName().equals("PolicyReference")) {
policies.add(getPolicyFromPolicyRef(element));
- } else if (element.getNamespaceURI().equals(WSPConstants.WS_POLICY_NAMESPACE_URI)
+ } else if (element.getNamespaceURI().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI)
&& element.getLocalName().equals("Policy")) {
policies.add(getPolicyFromElement(element));
}
@@ -599,7 +599,7 @@
= (DefaultExtensibilityElement) extensibilityElement;
Element element = defaultExtensibilityElement.getElement();
- if (element.getNamespaceURI().equals(WSPConstants.WS_POLICY_NAMESPACE_URI)
+ if (element.getNamespaceURI().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI)
&& element.getLocalName().equals("PolicyReference")) {
String uriString = element.getAttribute("URI");
@@ -609,7 +609,7 @@
}
String policyID
- = element.getAttributeNS(WSPConstants.WSU_NAMESPACE_URI, "Id");
+ = element.getAttributeNS(PolicyConstants.WSU_NAMESPACE_URI, "Id");
if (policyID.length() != 0) {
registerPolicyElement(element);
@@ -626,7 +626,7 @@
= (WSDLExtensibilityAttribute) iterator.next();
QName qname = wsdlExtensibilityAttribute.getKey();
- if (qname.getNamespaceURI().equals(WSPConstants.WS_POLICY_NAMESPACE_URI) &&
+ if (qname.getNamespaceURI().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI) &&
qname.getLocalPart().equals("PolicyURIs")) {
String value = wsdlExtensibilityAttribute.getValue().toString();
String[] policyURIs = value.split(" ");
Modified: webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyReader.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyReader.java?rev=345757&r1=345756&r2=345757&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyReader.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyReader.java Sun Nov 20 08:05:29 2005
@@ -37,7 +37,7 @@
import org.apache.policy.model.Policy;
import org.apache.policy.model.PolicyReference;
import org.apache.policy.model.PrimitiveAssertion;
-import org.apache.policy.model.WSPConstants;
+import org.apache.policy.model.PolicyConstants;
import org.apache.policy.model.XorCompositeAssertion;
/**
@@ -67,20 +67,20 @@
String namespace = element.getNamespace().getName();
String localName = element.getLocalName();
- if (!(namespace.equals(WSPConstants.WSU_NAMESPACE_URI))) {
+ if (!(namespace.equals(PolicyConstants.WSU_NAMESPACE_URI))) {
return readPrimitiveAssertion(element);
}
- if (localName.equals(WSPConstants.WS_POLICY)) {
+ if (localName.equals(PolicyConstants.WS_POLICY)) {
return readPolicy(element);
- } else if (localName.equals(WSPConstants.AND_COMPOSITE_ASSERTION)) {
+ } else if (localName.equals(PolicyConstants.AND_COMPOSITE_ASSERTION)) {
return readAndComposite(element);
- } else if (localName.equals(WSPConstants.XOR_COMPOSITE_ASSERTION)) {
+ } else if (localName.equals(PolicyConstants.XOR_COMPOSITE_ASSERTION)) {
return readXorComposite(element);
- } else if (localName.equals(WSPConstants.WS_POLICY_REFERENCE)) {
+ } else if (localName.equals(PolicyConstants.WS_POLICY_REFERENCE)) {
return readPolicyReference(element);
} else {
@@ -130,8 +130,8 @@
while (childElements.hasNext()) {
OMElement childElement = (OMElement) childElements.next();
- if (childElement.getNamespace().getName().equals(WSPConstants.WS_POLICY_NAMESPACE_URI)
- && childElement.getLocalName().equals(WSPConstants.WS_POLICY)) {
+ if (childElement.getNamespace().getName().equals(PolicyConstants.WS_POLICY_NAMESPACE_URI)
+ && childElement.getLocalName().equals(PolicyConstants.WS_POLICY)) {
Policy policy = readPolicy(childElement);
result.addTerm(policy);
Added: webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyUtil.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyUtil.java?rev=345757&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyUtil.java (added)
+++ webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyUtil.java Sun Nov 20 08:05:29 2005
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.policy.util;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.policy.model.AndCompositeAssertion;
+import org.apache.policy.model.Policy;
+import org.apache.policy.model.PrimitiveAssertion;
+import org.apache.policy.model.XorCompositeAssertion;
+
+/**
+ * WSPolicyUtil contains several utility methods for policy manipulations.
+ *
+ * @author Sanka Samaranayake (sanka@apache.org)
+ */
+public class PolicyUtil {
+
+ public static boolean matchByQName(PrimitiveAssertion primTermA,
+ PrimitiveAssertion primTermB) {
+ return primTermA.getName().equals(primTermB.getName());
+ }
+
+ public static boolean matchByQName(List primTermsA,List primTermsB) {
+ List larger = (primTermsA.size() > primTermsB.size())
+ ? primTermsA :primTermsB;
+ List smaller = (primTermsA.size() < primTermsB.size())
+ ? primTermsA : primTermsB;
+
+ Iterator iterator = larger.iterator();
+ PrimitiveAssertion primTerm;
+ QName qname;
+ Iterator iterator2;
+ while (iterator.hasNext()) {
+ primTerm = (PrimitiveAssertion) iterator.next();
+ qname = primTerm.getName();
+ iterator2 = smaller.iterator();
+
+ boolean match = false;
+ PrimitiveAssertion primTerm2;
+ while (iterator2.hasNext()) {
+ primTerm2 = (PrimitiveAssertion) iterator2.next();
+ if (primTerm2.getName().equals(qname)) {
+ match = true;
+ break;
+ }
+ }
+ if (!match) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+ public static List getPrimTermsList(Policy policy) {
+ if (!policy.isNormalized()) {
+ policy = (Policy) policy.normalize();
+ }
+
+ XorCompositeAssertion xorTerm
+ = (XorCompositeAssertion) policy.getTerms().get(0);
+ AndCompositeAssertion andTerm
+ = (AndCompositeAssertion) xorTerm.getTerms().get(0);
+
+ return andTerm.getTerms();
+ }
+
+ public static Policy getSinglePolicy(List policyList, PolicyRegistry reg) {
+ Policy policyTerm = null;
+ Iterator iterator = policyList.iterator();
+
+ Policy policyTerm2;
+ while (iterator.hasNext()) {
+ policyTerm2 = (Policy) iterator.next();
+ policyTerm = (policyTerm == null)
+ ? policyTerm2 : (Policy) policyTerm.merge(policyTerm2, reg);
+ }
+
+ return policyTerm;
+ }
+
+ public static Policy getPolicy(List terms) {
+ Policy policyTerm = new Policy();
+ XorCompositeAssertion xorTerm = new XorCompositeAssertion();
+ AndCompositeAssertion andTerm = new AndCompositeAssertion();
+
+ andTerm.addTerms(terms);
+ xorTerm.addTerm(andTerm);
+ policyTerm.addTerm(xorTerm);
+
+ return policyTerm;
+ }
+}
Modified: webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyWriter.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyWriter.java?rev=345757&r1=345756&r2=345757&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyWriter.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/policy/util/PolicyWriter.java Sun Nov 20 08:05:29 2005
@@ -30,9 +30,9 @@
import org.apache.policy.model.AndCompositeAssertion;
import org.apache.policy.model.Assertion;
import org.apache.policy.model.Policy;
+import org.apache.policy.model.PolicyConstants;
import org.apache.policy.model.PolicyReference;
import org.apache.policy.model.PrimitiveAssertion;
-import org.apache.policy.model.WSPConstants;
import org.apache.policy.model.XorCompositeAssertion;
/**
@@ -58,8 +58,8 @@
}
private void writePolicy(Policy policy, XMLStreamWriter writer) throws XMLStreamException {
- writer.writeStartElement(WSPConstants.WS_POLICY_PREFIX, WSPConstants.WS_POLICY,
- WSPConstants.WSU_NAMESPACE_URI);
+ writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, PolicyConstants.WS_POLICY,
+ PolicyConstants.WSU_NAMESPACE_URI);
Iterator iterator = policy.getTerms().iterator();
while (iterator.hasNext()) {
@@ -93,8 +93,8 @@
private void writeAndCompositeAssertion(AndCompositeAssertion assertion,
XMLStreamWriter writer) throws XMLStreamException {
- writer.writeStartElement(WSPConstants.WS_POLICY_PREFIX,
- WSPConstants.AND_COMPOSITE_ASSERTION, WSPConstants.WS_POLICY_NAMESPACE_URI);
+ writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX,
+ PolicyConstants.AND_COMPOSITE_ASSERTION, PolicyConstants.WS_POLICY_NAMESPACE_URI);
List terms = assertion.getTerms();
writeTerms(terms, writer);
@@ -104,8 +104,8 @@
private void writeXorCompositeAssertion(XorCompositeAssertion assertion,
XMLStreamWriter writer) throws XMLStreamException {
- writer.writeStartElement(WSPConstants.WS_POLICY_PREFIX,
- WSPConstants.XOR_COMPOSITE_ASSERTION, WSPConstants.WS_POLICY_NAMESPACE_URI);
+ writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX,
+ PolicyConstants.XOR_COMPOSITE_ASSERTION, PolicyConstants.WS_POLICY_NAMESPACE_URI);
List terms = assertion.getTerms();
writeTerms(terms, writer);