/*
* Copyright 2003 Federal Chancellery Austria
* MOA-SPSS has been developed in a cooperation between BRZ, the Federal
* Chancellery Austria - ICT staff unit, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egovernment.moa.spss.server.invoke;
import at.gv.egovernment.moa.spss.server.config.ConfigurationException;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
import at.gv.egovernment.moaspss.logging.LoggingContext;
import at.gv.egovernment.moaspss.logging.LoggingContextManager;
/**
* A utility class for setting up and tearing down thread-local context
* information needed for calling the Invoker
classes.
*
* @author Patrick Peck
* @version $Id$
*/
public class ServiceContextUtils {
/**
* Set up the thread-local context information needed for calling the various
* Invoker
classes.
*
* @throws ConfigurationException An error occurred setting up the
* configuration in the TransactionContext
.
*/
public static void setUpContexts() throws ConfigurationException {
TransactionContextManager txMgr = TransactionContextManager.getInstance();
LoggingContextManager logMgr = LoggingContextManager.getInstance();
String transactionID = Thread.currentThread().getName();
if (txMgr.getTransactionContext() == null) {
TransactionContext ctx = new TransactionContext(transactionID, null, ConfigurationProvider.getInstance());
txMgr.setTransactionContext(ctx);
}
if (logMgr.getLoggingContext() == null) {
LoggingContext ctx = new LoggingContext(transactionID);
logMgr.setLoggingContext(ctx);
}
}
/**
* Tear down thread-local context information.
*/
public static void tearDownContexts() {
TransactionContextManager.getInstance().setTransactionContext(null);
LoggingContextManager.getInstance().setLoggingContext(null);
}
}