aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/transaction
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/transaction')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContext.java264
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContextManager.java62
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionIDGenerator.java51
3 files changed, 0 insertions, 377 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContext.java b/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContext.java
deleted file mode 100644
index 774880d26..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContext.java
+++ /dev/null
@@ -1,264 +0,0 @@
-package at.gv.egovernment.moa.spss.server.transaction;
-
-import iaik.ixsil.util.URI;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.cert.X509Certificate;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Vector;
-import java.util.Map.Entry;
-
-import org.apache.axis.attachments.ManagedMemoryDataSource;
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.spss.MOAApplicationException;
-import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
-
-/**
- * Contains information about the current request.
- *
- * @author Stefan Knirsch
- * @author Patrick Peck
- */
-public class TransactionContext {
-
- /** The client certificate. */
- private X509Certificate[] clientCertificate = null;
- /** The transaction ID. */
- private String transactionID = null;
- /** The name of the request. */
- private String requestName = null;
- /** The SOAP embedded request */
- private Element request;
- /** The response which is to embed by SOAP */
- private Element response;
- /** The map pointing to SOAP attachments needed by the request. */
- private HashMap attachments = null;
- /** The configuration to use throughout the request. */
- private ConfigurationProvider configuration = null;
-
- /**
- * Create a <code>TransactionContext</code> object.
- *
- * @param transactionID A unique ID for this <code>TransactionContext</code>.
- * @param clientCertificate The client certificate chain.
- * @param configuration The MOA configuration to use for this transaction.
- */
- public TransactionContext(
- String transactionID,
- X509Certificate[] clientCertificate,
- ConfigurationProvider configuration) {
-
- this.transactionID = transactionID;
- this.clientCertificate = clientCertificate;
- this.configuration = configuration;
- }
-
- /**
- * Create a <code>TransactionContext</code> object.
- *
- * @param transactionID A unique ID for this <code>TransactionContext</code>.
- * @param clientCertificate The client certificate chain.
- * @param configuration The MOA configuration to use for this transaction.
- * @param attachments to use for this transaction.
- */
- public TransactionContext(
- String transactionID,
- X509Certificate[] clientCertificate,
- ConfigurationProvider configuration,
- Element request,
- HashMap attachments) {
-
- this.transactionID = transactionID;
- this.clientCertificate = clientCertificate;
- this.configuration = configuration;
- this.request = request;
- this.attachments = attachments;
- }
-
- /**
- * Returns the client certificate.
- *
- * @return The client certificate chain, if SSL client authentication has been
- * configured in the web server and has been used by the client. The 0th
- * element of the array contains the client certificate. <code>null</code>
- * otherwise.
- */
- public X509Certificate[] getClientCertificate() {
- return clientCertificate;
- }
-
- /**
- * Returns the unique transaction ID.
- *
- * @return The transaction ID.
- */
- public String getTransactionID() {
- return transactionID;
- }
-
- /**
- * Returns the name of the request.
- *
- * @return The name of the request.
- */
- public String getRequestName() {
- return requestName;
- }
-
- /**
- * Sets the name of the request.
- *
- * @param requestName The request name to set.
- */
- public void setRequestName(String requestName) {
- this.requestName = requestName;
- }
-
- /**
- * Sets the the request.
- *
- * @param request The request to set.
- */
- public void setRequest(Element request) {
- this.request = request;
- }
-
- /**
- * Returns the request.
- *
- * @return The request.
- */
- public Element getRequest() {
- return request;
- }
-
- /**
- * Sets the the response.
- *
- * @param response The response to set.
- */
- public void setResponse(Element response) {
- this.response = response;
- }
-
- /**
- * Returns the response.
- *
- * @return The response.
- */
- public Element getResponse() {
- return response;
- }
-
- /**
- * Adds an attachment to the transactions list of SOAP attachments.
- *
- * @param referenceId Identification value for the SOAP attachment.
- * @param contentType MIME type of the SOAP attachment.
- * @param is Handle to the ManagedMemoryDataSource of the SOAP attachment.
- */
- public void addAttachment(String referenceId, String contentType, ManagedMemoryDataSource is) {
- if (this.attachments == null) this.attachments = new HashMap();
- Vector entry = new Vector(2);
- entry.add(contentType);
- entry.add(is);
- this.attachments.put(referenceId, entry);
- }
-
- /**
- * Returns the ManagedMemoryDataSource to a specific SOAP attachment identified by referenceId.
- *
- * @param referenceId Identification value for the SOAP attachment.
- */
- public ManagedMemoryDataSource getAttachment(String referenceId) {
- if (attachments==null) {
- return null;
- }
- Vector entry = (Vector) attachments.get(referenceId);
- if (entry==null) {
- return null;
- }
- //return (InputStream) ( ((ManagedMemoryDataSource)entry.get(1)).getInputStream());
- return (ManagedMemoryDataSource) entry.get(1);
- }
-
- /**
- * Returns the InputStream to a specific SOAP attachment identified by uri.
- *
- * @param uri Identification value for the SOAP attachment.
- */
- public InputStream getAttachmentInputStream(URI uri) throws MOAApplicationException {
- if (attachments==null) {
- return null;
- }
- String referenceId = uri.getPath();
- Vector entry = (Vector) attachments.get(referenceId);
- if (entry==null) {
- return null;
- }
-
- InputStream attachmentIs = null;
- try {
- attachmentIs = (InputStream) ( ((ManagedMemoryDataSource)entry.get(1)).getInputStream());
- } catch (IOException e) {
- throw new MOAApplicationException("2208", new Object[] { uri }, e);
- }
-
- return attachmentIs;
- //If we would return the whole mmds: return (ManagedMemoryDataSource) entry.get(1);
- }
-
- /**
- * Returns the content type to a specific SOAP attachment identified by referenceId.
- *
- * @param referenceId Identification value for the SOAP attachment.
- */
- public String getAttachmentContentType(String referenceId) {
- Vector entry = (Vector) attachments.get(referenceId);
- if (entry==null) {
- return null;
- }
- return (String) entry.get(0);
- }
-
- /**
- * Delete the temporary attachment files.
- */
-public void cleanAttachmentCache() {
- if (null==attachments) {
- return;
- }
- Iterator iterator = attachments.entrySet().iterator();
- while (iterator.hasNext()) {
- Entry hmEntry = (Entry) iterator.next();
- Vector entry = (Vector)hmEntry.getValue();
- ManagedMemoryDataSource mmds = (ManagedMemoryDataSource)entry.get(1);
- try {
- if (mmds!=null) {
- InputStream is = mmds.getInputStream();
- if (is!=null) is.close();
- File f = mmds.getDiskCacheFile();
- if (f!=null) f.delete();
- mmds.delete();
- }
- } catch (IOException e) {
- // ok to do nothing here
- }
- }
- }
-
- /**
- * Returns the <code>ConfigurationProvider</code> associated with this
- * transaction.
- *
- * @return The ConfigurationProvider associated with this transaction.
- */
- public ConfigurationProvider getConfiguration() {
- return configuration;
- }
-
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContextManager.java b/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContextManager.java
deleted file mode 100644
index 13127c3ae..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionContextManager.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package at.gv.egovernment.moa.spss.server.transaction;
-
-/**
- * Provides each thread with an instance of <code>TransactionContext</code>.
- *
- * The single instance of the <code>TransactionContextManager</code> should be
- * used to access contextual information for each web service transaction, e.g.
- * the transaction ID, MOA configuration, client certificate, etc.
- *
- * @author Stefan Knirsch
- * @author Patrick Peck
- */
-public class TransactionContextManager {
-
- /** The single instance of <code>TransactionContextManager</code> */
- private static TransactionContextManager instance = null;
-
- /** Contains a single <code>TransactionContext</code> for each thread. */
- private ThreadLocal context = null;
-
- /**
- * Get the single instance of <code>TransactionContextManager</code>.
- *
- * @return The single instanc of <code>TransactionContextManager</code>.
- */
- public static synchronized TransactionContextManager getInstance() {
- if (instance == null) {
- instance = new TransactionContextManager();
- }
- return instance;
- }
-
- /**
- * Creates a new <code>TransactionContextManager</code>.
- *
- * Protected to disallow direct instantiation.
- */
- protected TransactionContextManager() {
- context = new ThreadLocal();
- }
-
- /**
- * Set the <code>TransactionContext</code> for the current thread.
- *
- * @param txContext The <code>TransactionContext</code> for this thread.
- */
- public void setTransactionContext(TransactionContext txContext) {
- context.set(txContext);
- }
-
- /**
- * Get the <code>TransactionContext</code> for the current thread.
- *
- * @return The <code>TransactionContext</code> for the current thread or
- * <code>null</code>, if none has been set (or if this method is being invoked
- * outside the bounds of a transaction).
- */
- public TransactionContext getTransactionContext() {
- return (TransactionContext) context.get();
- }
-
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionIDGenerator.java b/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionIDGenerator.java
deleted file mode 100644
index 6eb07defe..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/transaction/TransactionIDGenerator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package at.gv.egovernment.moa.spss.server.transaction;
-
-
-/**
- * A generator for unique transaction IDs.
- *
- * <p>The transaction IDs are of the form "<base>-<counter>", where:
- * <ul>
- * <li><code>base</code> is initialized with the system time when this class is
- * being loaded</li>
- * <li><code>counter</code> is incremented sequentially on each call to
- * <code>nextID()</code></li>
- * </ul>
- * </p>
- *
- * <p> Assuming that it is highly unlikely that MOA servers are started at
- * exactly the same time instant, the mechanism provided by this class should
- * guarantee unique transaction IDs across multiple restarts and/or instances of
- * the server.</p>
- *
- * @author Patrick Peck
- * @author Stefan Knirsch
- */
-public class TransactionIDGenerator {
-
- /** Request sequence number. */
- private static long counter = 0;
- /** The base value to which to append the sequence number. */
- private static String base = null;
-
- /**
- * Set up the initial base value.
- */
- static {
- synchronized (TransactionIDGenerator.class) {
- base = Long.toString(System.currentTimeMillis());
- }
- }
-
- /**
- * Returns the next transaction ID.
- *
- * @return The next transaction ID.
- */
- public static synchronized String nextID() {
- counter++;
-
- return (base + "-" + counter);
- }
-
-}