You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by we...@apache.org on 2005/12/09 15:46:00 UTC
svn commit: r355504 -
/webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java
Author: werner
Date: Fri Dec 9 06:45:56 2005
New Revision: 355504
URL: http://svn.apache.org/viewcvs?rev=355504&view=rev
Log:
Add Loader class from WSS4J, use real "on-the-fly" class
loading in PolicyFactory to enable real plug-in and be
independent of specifc XML parser.
Modified:
webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java
Modified: webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java?rev=355504&r1=355503&r2=355504&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java (original)
+++ webservices/commons/trunk/policy/src/org/apache/ws/policy/util/PolicyFactory.java Fri Dec 9 06:45:56 2005
@@ -27,18 +27,46 @@
public static PolicyReader getPolicyReader(int type) {
+ String name = null;
switch (type) {
case DOM_POLICY_READER:
- return new DOMPolicyReader();
+ name = "org.apache.ws.policy.util.DOMPolicyReader";
+ break;
case OM_POLICY_READER:
- return new OMPolicyReader();
+ name = "org.apache.ws.policy.util.OMPolicyReader";
+ break;
default:
- throw new IllegalArgumentException("Unknow PolicyReader type ..");
+ throw new IllegalArgumentException("Unknown PolicyReader type ..");
}
+ try {
+ return (PolicyReader)Loader.loadClass(name).newInstance();
+ } catch (InstantiationException e) {
+ throw new IllegalArgumentException("Cannot load PolicyReader type ..");
+ } catch (IllegalAccessException e) {
+ throw new IllegalArgumentException("Cannot load PolicyReader type ..");
+ } catch (ClassNotFoundException e) {
+ throw new IllegalArgumentException("Cannot load PolicyReader type ..");
+ }
}
- public static PolicyWriter getPolicyWriter() {
- return new StAXPolicyWriter();
+ public static PolicyWriter getPolicyWriter(int type) {
+ String name = null;
+ switch (type) {
+ case StAX_POLICY_WRITER:
+ name = "org.apache.ws.policy.util.StAXPolicyWriter";
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown PolicyWriter type ..");
+ }
+ try {
+ return (PolicyWriter)Loader.loadClass(name).newInstance();
+ } catch (InstantiationException e) {
+ throw new IllegalArgumentException("Cannot load PolicyWriter type ..");
+ } catch (IllegalAccessException e) {
+ throw new IllegalArgumentException("Cannot load PolicyWriter type ..");
+ } catch (ClassNotFoundException e) {
+ throw new IllegalArgumentException("Cannot load PolicyWriter type ..");
+ }
}
}