Author: anil.saldhana(a)jboss.com
Date: 2009-06-10 15:34:44 -0400 (Wed, 10 Jun 2009)
New Revision: 604
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java
Log:
change to use JAXBUtil
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java
===================================================================
---
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java 2009-06-10
17:18:15 UTC (rev 603)
+++
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/wstrust/WSTrustJAXBFactory.java 2009-06-10
19:34:44 UTC (rev 604)
@@ -21,7 +21,6 @@
*/
package org.jboss.identity.federation.api.wstrust;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
@@ -29,6 +28,7 @@
import javax.xml.bind.util.JAXBSource;
import javax.xml.transform.Source;
+import org.jboss.identity.federation.core.util.JAXBUtil;
import org.jboss.identity.federation.core.wstrust.BaseRequestSecurityToken;
import org.jboss.identity.federation.core.wstrust.BaseRequestSecurityTokenResponse;
import org.jboss.identity.federation.core.wstrust.RequestSecurityToken;
@@ -51,9 +51,11 @@
public class WSTrustJAXBFactory
{
private static final WSTrustJAXBFactory instance = new WSTrustJAXBFactory();
+
+ private Marshaller marshaller;
+
+ private Unmarshaller unmarshaller;
- private final JAXBContext context;
-
private final ObjectFactory factory;
/**
@@ -62,16 +64,10 @@
* </p>
*/
private WSTrustJAXBFactory()
- {
- StringBuffer packages = new StringBuffer();
- packages.append("org.jboss.identity.federation.ws.addressing");
- packages.append(":org.jboss.identity.federation.ws.policy");
- packages.append(":org.jboss.identity.federation.ws.trust");
- packages.append(":org.jboss.identity.federation.ws.wss.secext");
- packages.append(":org.jboss.identity.federation.ws.wss.utility");
+ {
try
- {
- this.context = JAXBContext.newInstance(packages.toString());
+ {
+ marshaller = JAXBUtil.getMarshaller(getPackage());
this.factory = new ObjectFactory();
}
catch (JAXBException e)
@@ -91,7 +87,18 @@
{
return instance;
}
-
+
+ public String getPackage()
+ {
+ StringBuilder packages = new StringBuilder();
+ packages.append("org.jboss.identity.federation.ws.addressing");
+ packages.append(":org.jboss.identity.federation.ws.policy");
+ packages.append(":org.jboss.identity.federation.ws.trust");
+ packages.append(":org.jboss.identity.federation.ws.wss.secext");
+ packages.append(":org.jboss.identity.federation.ws.wss.utility");
+ return packages.toString();
+ }
+
/**
* <p>
* Creates a {@code BaseRequestSecurityToken} from the specified XML source.
@@ -106,8 +113,7 @@
{
try
{
- Unmarshaller unmarshaller = this.context.createUnmarshaller();
- Object object = unmarshaller.unmarshal(request);
+ Object object = getUnmarshaller().unmarshal(request);
// check the type of the unmarshalled object.
if (object instanceof RequestSecurityTokenType)
@@ -148,8 +154,7 @@
{
try
{
- Unmarshaller unmarshaller = this.context.createUnmarshaller();
- Object object = unmarshaller.unmarshal(response);
+ Object object = getUnmarshaller().unmarshal(response);
// check the type of the response object.
if (object instanceof RequestSecurityTokenResponseType)
return new RequestSecurityTokenResponse((RequestSecurityTokenResponseType)
object);
@@ -202,8 +207,7 @@
try
{
- Marshaller marshaller = this.context.createMarshaller();
- return new JAXBSource(marshaller, element);
+ return new JAXBSource(getMarshaller(), element);
}
catch (JAXBException je)
{
@@ -238,13 +242,27 @@
try
{
- Marshaller marshaller = this.context.createMarshaller();
- return new JAXBSource(marshaller, element);
+ return new JAXBSource(getMarshaller(), element);
}
catch (JAXBException je)
{
throw new RuntimeException("Failed to marshall security token
request", je);
}
}
+
-}
+ private Unmarshaller getUnmarshaller() throws JAXBException
+ {
+ if(unmarshaller == null)
+ unmarshaller = JAXBUtil.getUnmarshaller(getPackage());
+ return unmarshaller;
+ }
+
+ private Marshaller getMarshaller() throws JAXBException
+ {
+ if(marshaller == null)
+ marshaller = JAXBUtil.getMarshaller(getPackage());
+ return marshaller;
+ }
+
+}
\ No newline at end of file
Show replies by date