You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by bi...@apache.org on 2020/04/16 04:04:17 UTC

[axis-axis2-java-sandesha] 15/48: Merged r1072332, r1072333 and r1090216 to the 1.6 branch to upgrade to Neethi 3.0.1.

This is an automated email from the ASF dual-hosted git repository.

billblough pushed a commit to branch 1_6
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-sandesha.git

commit ce5f2b69debf4af2c09419776c046ae7f3bebc42
Author: Andreas Veithen <ve...@apache.org>
AuthorDate: Mon Jul 11 20:38:26 2011 +0000

    Merged r1072332, r1072333 and r1090216 to the 1.6 branch to upgrade to Neethi 3.0.1.
---
 .../sandesha2/policy/SandeshaPolicyBean.java       |   5 +-
 .../AcknowledgementIntervalAssertionBuilder.java   |  43 +++++++
 .../builders/ContextManagerAssertionBuilder.java   |  43 +++++++
 .../builders/EPRDecoratorAssertionBuilder.java     |  43 +++++++
 .../policy/builders/EnforceRMAssertionBuilder.java |  43 +++++++
 .../ExponentialBackoffAssertionBuilder.java        |  43 +++++++
 .../InactivityTimeoutAssertionBuilder.java         |  43 +++++++
 .../InactivityTimeoutMeasureAssertionBuilder.java  |  43 +++++++
 .../builders/InvokeInOrderAssertionBuilder.java    |  45 +++++++
 .../builders/MakeConnectionAssertionBuilder.java   |  71 +++++++++++
 ...MaximumRetransmissionCountAssertionBuilder.java |  43 +++++++
 .../MessageTypesToDropAssertionBuilder.java        |  55 +++++++++
 .../policy/builders/RMAssertionBuilder.java        | 134 +--------------------
 .../RetransmissionIntervalAssertionBuilder.java    |  43 +++++++
 .../policy/builders/SandeshaPropertyAssertion.java |  59 +++++++++
 .../builders/SecurityManagerAssertionBuilder.java  |  43 +++++++
 .../SequenceRemovalTimeoutAssertionBuilder.java    |  43 +++++++
 ...uenceRemovalTimeoutMeasureAssertionBuilder.java |  43 +++++++
 .../builders/StorageManagersAssertionBuilder.java  |  49 ++++++++
 .../UseMessageSerializationAssertionBuilder.java   |  43 +++++++
 .../org.apache.neethi.builders.AssertionBuilder    |  18 +++
 pom.xml                                            |   2 +-
 22 files changed, 866 insertions(+), 131 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/SandeshaPolicyBean.java b/modules/core/src/main/java/org/apache/sandesha2/policy/SandeshaPolicyBean.java
index acb77bf..96597d7 100644
--- a/modules/core/src/main/java/org/apache/sandesha2/policy/SandeshaPolicyBean.java
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/SandeshaPolicyBean.java
@@ -627,5 +627,8 @@ public class SandeshaPolicyBean implements Assertion {
 	public void setParent(SandeshaPolicyBean parent) {
 		this.parent = parent;
 	}
-	
+
+    public boolean isIgnorable() {
+        return false;
+    }
 }
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/AcknowledgementIntervalAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/AcknowledgementIntervalAssertionBuilder.java
new file mode 100644
index 0000000..c3a16d1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/AcknowledgementIntervalAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class AcknowledgementIntervalAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_ACK_INTERVAL };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final long value = Long.parseLong(element.getText().trim());
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setAcknowledgementInterval(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ContextManagerAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ContextManagerAssertionBuilder.java
new file mode 100644
index 0000000..653d1c8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ContextManagerAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class ContextManagerAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_CONTEXT_MGR };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final String value = element.getText().trim();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setContextManagerClass(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EPRDecoratorAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EPRDecoratorAssertionBuilder.java
new file mode 100644
index 0000000..4a14b05
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EPRDecoratorAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class EPRDecoratorAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_EPR_DECORATOR };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final String value = element.getText().trim();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setEPRDecoratorClass(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EnforceRMAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EnforceRMAssertionBuilder.java
new file mode 100644
index 0000000..d7c7f69
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/EnforceRMAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class EnforceRMAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_ENFORCE_RM };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final boolean value = Boolean.valueOf(element.getText().trim()).booleanValue();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setEnforceRM(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ExponentialBackoffAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ExponentialBackoffAssertionBuilder.java
new file mode 100644
index 0000000..ac59baa
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/ExponentialBackoffAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class ExponentialBackoffAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_EXP_BACKOFF };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final boolean value = Boolean.valueOf(element.getText().trim()).booleanValue();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setExponentialBackoff(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutAssertionBuilder.java
new file mode 100644
index 0000000..ca62f89
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class InactivityTimeoutAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final long value = Long.parseLong(element.getText().trim());
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setInactiveTimeoutValue(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutMeasureAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutMeasureAssertionBuilder.java
new file mode 100644
index 0000000..f771e04
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InactivityTimeoutMeasureAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class InactivityTimeoutMeasureAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT_MEASURES };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final String value = element.getText().trim();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setInactivityTimeoutMeasure(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InvokeInOrderAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InvokeInOrderAssertionBuilder.java
new file mode 100644
index 0000000..b50d8d8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/InvokeInOrderAssertionBuilder.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.Constants;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class InvokeInOrderAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_INVOKE_INORDER };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        String value = element.getText().trim();
+        final boolean inOrder = value!=null && Constants.VALUE_TRUE.equals(value);
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setInOrder(inOrder);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MakeConnectionAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MakeConnectionAssertionBuilder.java
new file mode 100644
index 0000000..fe03126
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MakeConnectionAssertionBuilder.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class MakeConnectionAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_MAKE_CONNECTION };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final boolean enableMakeConnection;
+        final boolean enableMakeConnectionSet;
+        OMElement enabledElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_ENABLED);
+        if (enabledElem!=null) {
+            String data = enabledElem.getText().trim();
+            enableMakeConnection = Boolean.valueOf(data).booleanValue();
+            enableMakeConnectionSet = true;
+        } else {
+            enableMakeConnection = false;
+            enableMakeConnectionSet = false;
+        }
+
+        final boolean enableRMAnonURI;
+        final boolean enableRMAnonURISet;
+        OMElement useRMAnonElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_USE_RM_ANON_URI);
+        if (useRMAnonElem!=null) {
+            String data = useRMAnonElem.getText().trim();
+            enableRMAnonURI = Boolean.valueOf(data).booleanValue();
+            enableRMAnonURISet = true;
+        } else {
+            enableRMAnonURI = false;
+            enableRMAnonURISet = false;
+        }
+        
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                if (enableMakeConnectionSet) {
+                    propertyBean.setEnableMakeConnection(enableMakeConnection);
+                }
+                if (enableRMAnonURISet) {
+                    propertyBean.setEnableRMAnonURI(enableRMAnonURI);
+                }
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MaximumRetransmissionCountAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MaximumRetransmissionCountAssertionBuilder.java
new file mode 100644
index 0000000..6534654
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MaximumRetransmissionCountAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class MaximumRetransmissionCountAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_MAX_RETRANS_COUNT };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final int value = Integer.parseInt(element.getText().trim());
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setMaximumRetransmissionCount(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MessageTypesToDropAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MessageTypesToDropAssertionBuilder.java
new file mode 100644
index 0000000..9198c47
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/MessageTypesToDropAssertionBuilder.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import java.util.ArrayList;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class MessageTypesToDropAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_MSG_TYPES_TO_DROP };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final ArrayList<Integer> types = new ArrayList<Integer>();
+        String str = element.getText().trim();
+        String[] items  = str.split(Sandesha2Constants.LIST_SEPERATOR);
+        if (items!=null) {
+            int size = items.length;
+            for (int i=0;i<size;i++) {
+                String itemStr = items[i];
+                if (!itemStr.equals("") && !itemStr.equals(Sandesha2Constants.VALUE_NONE) )
+                    types.add(new Integer (itemStr));
+            }
+        }
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setMsgTypesToDrop(types);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
index 0aa9e85..404f100 100644
--- a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
@@ -19,24 +19,19 @@
 
 package org.apache.sandesha2.policy.builders;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axis2.Constants;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.AssertionBuilderFactory;
 import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyComponent;
 import org.apache.neethi.PolicyEngine;
 import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.neethi.builders.xml.XmlPrimtiveAssertion;
 import org.apache.sandesha2.Sandesha2Constants;
 import org.apache.sandesha2.policy.SandeshaPolicyBean;
 
-public class RMAssertionBuilder implements AssertionBuilder {
+public class RMAssertionBuilder implements AssertionBuilder<OMElement> {
 
     public Assertion build(OMElement element, AssertionBuilderFactory factory)
             throws IllegalArgumentException {
@@ -44,7 +39,9 @@ public class RMAssertionBuilder implements AssertionBuilder {
         SandeshaPolicyBean propertyBean = new SandeshaPolicyBean();
         Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
 
-        processElements(policy.getPolicyComponents(), propertyBean);
+        for (PolicyComponent component : policy.getPolicyComponents()) {
+            ((SandeshaPropertyAssertion)component).apply(propertyBean);
+        }
         return propertyBean;
     }
 
@@ -52,125 +49,4 @@ public class RMAssertionBuilder implements AssertionBuilder {
         return new QName[] { new QName(
                 Sandesha2Constants.Assertions.URI_RM_POLICY_NS, "RMAssertion") };
     }
-
-    private void processElements(List policyComponents,
-            SandeshaPolicyBean propertyBean) {
-
-        XmlPrimtiveAssertion xmlPrimtiveAssertion;
-
-        for (Iterator iterator = policyComponents.iterator(); iterator
-                .hasNext();) {
-            xmlPrimtiveAssertion = (XmlPrimtiveAssertion) iterator.next();
-            OMElement element = xmlPrimtiveAssertion.getValue();
-            String name = element.getLocalName();
-
-            if (Sandesha2Constants.Assertions.ELEM_ACK_INTERVAL.equals(name)) {
-                propertyBean.setAcknowledgementInterval(Long.parseLong(element
-                        .getText().trim()));
-
-            } else if (Sandesha2Constants.Assertions.ELEM_EXP_BACKOFF
-                    .equals(name)) {
-                propertyBean.setExponentialBackoff(Boolean.valueOf(
-                        element.getText().trim()).booleanValue());
-
-            } else if (Sandesha2Constants.Assertions.ELEM_INACTIVITY_TIMEOUT
-                    .equals(name)) {
-
-            		propertyBean.setInactiveTimeoutValue (Long.parseLong(element
-            				.getText().trim()));
-
-            } else if (Sandesha2Constants.Assertions.ELEM_INACTIVITY_TIMEOUT_MEASURES
-                    .equals(name)) {
-            	//using the previously set Inactivity Timeout
-                propertyBean.setInactivityTimeoutMeasure (element.getText().trim());
-
-            } else if (Sandesha2Constants.Assertions.ELEM_DELETION_TIMEOUT
-                .equals(name)) {
-
-	        		propertyBean.setSequenceRemovalTimeoutValue (Long.parseLong(element
-	        				.getText().trim()));
-
-		        } else if (Sandesha2Constants.Assertions.ELEM_DELETION_TIMEOUT_MEASURES
-		                .equals(name)) {
-		        	//using the previously set Inavtivity Timeout
-		            propertyBean.setSequenceRemovalTimeoutMeasure (element.getText().trim());
-
-            }  else if (Sandesha2Constants.Assertions.ELEM_INVOKE_INORDER
-                    .equals(name)) {
-            	String value = element.getText().trim();
-            	boolean inOrder = false;
-            	
-            	if (value!=null && Constants.VALUE_TRUE.equals(value))
-            		inOrder = true;
-            	
-            	propertyBean.setInOrder(inOrder);
-            	
-            }  else if (Sandesha2Constants.Assertions.ELEM_MAX_RETRANS_COUNT
-                    .equals(name)) {
-                propertyBean.setMaximumRetransmissionCount (Integer.parseInt(element.getText().trim()));
-            }   else if (Sandesha2Constants.Assertions.ELEM_MSG_TYPES_TO_DROP
-                    .equals(name)) {
-            	ArrayList<Integer> types = new ArrayList<Integer>();
-            	String str = element.getText().trim();
-            	String[] items  = str.split(Sandesha2Constants.LIST_SEPERATOR);
-            	if (items!=null) {
-            		int size = items.length;
-            		for (int i=0;i<size;i++) {
-            			String itemStr = items[i];
-            			if (!itemStr.equals("") && !itemStr.equals(Sandesha2Constants.VALUE_NONE) )
-            				types.add(new Integer (itemStr));
-            		}
-            	}
-                propertyBean.setMsgTypesToDrop (types);
-            }  else if (Sandesha2Constants.Assertions.ELEM_RETRANS_INTERVAL
-                    .equals(name)) {
-                propertyBean.setRetransmissionInterval (Long.parseLong (element.getText().trim()));
-            }  else if (Sandesha2Constants.Assertions.ELEM_SEC_MGR
-                    .equals(name)) {
-                propertyBean.setSecurityManagerClass (element.getText().trim());
-            }
-            else if (Sandesha2Constants.Assertions.ELEM_EPR_DECORATOR.equals(name)) {
-            	propertyBean.setEPRDecoratorClass(element.getText().trim());
-            } else if (Sandesha2Constants.Assertions.ELEM_STORAGE_MGR
-                    .equals(name)) {
-            	//finding out storage managers.
-
-            	OMElement inmemoryStorageManagerElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_INMEMORY_STORAGE_MGR);
-            	if (inmemoryStorageManagerElem!=null) {
-            		String inMemoryStorageMgr = inmemoryStorageManagerElem.getText().trim();
-            		propertyBean.setInMemoryStorageManagerClass(inMemoryStorageMgr);
-            	}
-
-            	OMElement permanentStorageManagerElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_PERMANENT_STORAGE_MGR);
-            	if (permanentStorageManagerElem!=null) {
-            		String permanentStorageMgr = permanentStorageManagerElem.getText().trim();
-            		propertyBean.setPermanentStorageManagerClass(permanentStorageMgr);
-            	} 
-            }  else if (Sandesha2Constants.Assertions.ELEM_CONTEXT_MGR.equals(name)) {
-                propertyBean.setContextManagerClass (element.getText().trim());
-
-            } else if(Sandesha2Constants.Assertions.ELEM_MAKE_CONNECTION.equals(name)) {
-            	// Read the nested assertions
-
-            	OMElement enabledElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_ENABLED);
-            	if (enabledElem!=null) {
-            		String data = enabledElem.getText().trim();
-            		propertyBean.setEnableMakeConnection(Boolean.valueOf(data).booleanValue());
-            	}
-
-            	OMElement useRMAnonElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_USE_RM_ANON_URI);
-            	if (useRMAnonElem!=null) {
-            		String data = useRMAnonElem.getText().trim();
-            		propertyBean.setEnableRMAnonURI(Boolean.valueOf(data).booleanValue());
-            	}
-            } else if (Sandesha2Constants.Assertions.ELEM_USE_SERIALIZATION.equals(name)) {
-            	String value = element.getText().trim();
-            	propertyBean.setUseMessageSerialization(Boolean.valueOf(value).booleanValue());
-            } else if (Sandesha2Constants.Assertions.ELEM_ENFORCE_RM.equals(name)) {
-            	String value = element.getText().trim();
-            	propertyBean.setEnforceRM (Boolean.valueOf(value).booleanValue());
-            }
-        }
-    }
-
 }
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RetransmissionIntervalAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RetransmissionIntervalAssertionBuilder.java
new file mode 100644
index 0000000..b2fe8da
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/RetransmissionIntervalAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class RetransmissionIntervalAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_RETRANS_INTERVAL };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final long value = Long.parseLong (element.getText().trim());
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setRetransmissionInterval(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SandeshaPropertyAssertion.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SandeshaPropertyAssertion.java
new file mode 100644
index 0000000..4da46ad
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SandeshaPropertyAssertion.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.Assertion;
+import org.apache.neethi.PolicyComponent;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public abstract class SandeshaPropertyAssertion implements Assertion {
+    public abstract void apply(SandeshaPolicyBean propertyBean);
+
+    public QName getName() {
+        throw new UnsupportedOperationException();
+    }
+
+    public boolean isIgnorable() {
+        throw new UnsupportedOperationException();
+    }
+
+    public boolean isOptional() {
+        throw new UnsupportedOperationException();
+    }
+
+    public PolicyComponent normalize() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+        throw new UnsupportedOperationException();
+    }
+
+    public boolean equal(PolicyComponent policyComponent) {
+        throw new UnsupportedOperationException();
+    }
+
+    public short getType() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SecurityManagerAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SecurityManagerAssertionBuilder.java
new file mode 100644
index 0000000..70945d6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SecurityManagerAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class SecurityManagerAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_SEC_MGR };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final String value = element.getText().trim();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setSecurityManagerClass(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutAssertionBuilder.java
new file mode 100644
index 0000000..93c01a7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class SequenceRemovalTimeoutAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_SEQUENCE_REMOVAL_TIMEOUT };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final long value = Long.parseLong(element.getText().trim());
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setSequenceRemovalTimeoutValue(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutMeasureAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutMeasureAssertionBuilder.java
new file mode 100644
index 0000000..2404607
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/SequenceRemovalTimeoutMeasureAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class SequenceRemovalTimeoutMeasureAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_SEQUENCE_REMOVAL_TIMEOUT_MEASURES };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final String value = element.getText().trim();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setSequenceRemovalTimeoutMeasure(value);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/StorageManagersAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/StorageManagersAssertionBuilder.java
new file mode 100644
index 0000000..4ff3ad4
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/StorageManagersAssertionBuilder.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class StorageManagersAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_STORAGE_MGR };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        OMElement inmemoryStorageManagerElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_INMEMORY_STORAGE_MGR);
+        final String inMemoryStorageMgr = inmemoryStorageManagerElem == null ? null : inmemoryStorageManagerElem.getText().trim();
+
+        OMElement permanentStorageManagerElem = element.getFirstChildWithName(Sandesha2Constants.Assertions.Q_ELEM_PERMANENT_STORAGE_MGR);
+        final String permanentStorageMgr = permanentStorageManagerElem == null ? null : permanentStorageManagerElem.getText().trim();
+        
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setInMemoryStorageManagerClass(inMemoryStorageMgr);
+                propertyBean.setPermanentStorageManagerClass(permanentStorageMgr);
+            }
+        };
+    }
+}
diff --git a/modules/core/src/main/java/org/apache/sandesha2/policy/builders/UseMessageSerializationAssertionBuilder.java b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/UseMessageSerializationAssertionBuilder.java
new file mode 100644
index 0000000..8a0eed4
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/sandesha2/policy/builders/UseMessageSerializationAssertionBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.sandesha2.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
+
+public class UseMessageSerializationAssertionBuilder implements AssertionBuilder<OMElement> {
+    public QName[] getKnownElements() {
+        return new QName[] { Sandesha2Constants.Assertions.Q_ELEM_USE_SERIALIZATION };
+    }
+
+    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+        final boolean value = Boolean.valueOf(element.getText().trim()).booleanValue();
+        return new SandeshaPropertyAssertion() {
+            public void apply(SandeshaPolicyBean propertyBean) {
+                propertyBean.setUseMessageSerialization(value);
+            }
+        };
+    }
+}
diff --git a/modules/policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder b/modules/policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
index 5a69262..8034487 100644
--- a/modules/policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
+++ b/modules/policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
@@ -16,3 +16,21 @@
 # under the License.
 
 org.apache.sandesha2.policy.builders.RMAssertionBuilder
+org.apache.sandesha2.policy.builders.MessageTypesToDropAssertionBuilder
+org.apache.sandesha2.policy.builders.SecurityManagerAssertionBuilder
+org.apache.sandesha2.policy.builders.ExponentialBackoffAssertionBuilder
+org.apache.sandesha2.policy.builders.SequenceRemovalTimeoutAssertionBuilder
+org.apache.sandesha2.policy.builders.InactivityTimeoutMeasureAssertionBuilder
+org.apache.sandesha2.policy.builders.AcknowledgementIntervalAssertionBuilder
+org.apache.sandesha2.policy.builders.InvokeInOrderAssertionBuilder
+org.apache.sandesha2.policy.builders.ContextManagerAssertionBuilder
+org.apache.sandesha2.policy.builders.EnforceRMAssertionBuilder
+org.apache.sandesha2.policy.builders.StorageManagersAssertionBuilder
+org.apache.sandesha2.policy.builders.SandeshaPropertyAssertion
+org.apache.sandesha2.policy.builders.RetransmissionIntervalAssertionBuilder
+org.apache.sandesha2.policy.builders.MaximumRetransmissionCountAssertionBuilder
+org.apache.sandesha2.policy.builders.SequenceRemovalTimeoutMeasureAssertionBuilder
+org.apache.sandesha2.policy.builders.EPRDecoratorAssertionBuilder
+org.apache.sandesha2.policy.builders.InactivityTimeoutAssertionBuilder
+org.apache.sandesha2.policy.builders.MakeConnectionAssertionBuilder
+org.apache.sandesha2.policy.builders.UseMessageSerializationAssertionBuilder
diff --git a/pom.xml b/pom.xml
index cc9cb94..9397d31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -439,7 +439,7 @@
         <axis2.version>1.6.1-SNAPSHOT</axis2.version>
         <rampart.version>1.6.1-SNAPSHOT</rampart.version>
         <axiom.version>1.2.12</axiom.version>
-        <neethi.version>2.0.5</neethi.version>
+        <neethi.version>3.0.1-SNAPSHOT</neethi.version>
         <commons.logging.version>1.1.1</commons.logging.version>
         <junit.version>3.8.2</junit.version>        
         <log4j.version>1.2.15</log4j.version>