]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/SessionManagerSource.java
Merge commit 'ffdf837'
[simantics/platform.git] / bundles / org.simantics.db.procore / src / fi / vtt / simantics / procore / SessionManagerSource.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package fi.vtt.simantics.procore;\r
13 import java.io.IOException;\r
14 import java.util.Properties;\r
15 \r
16 import org.simantics.db.SessionManager;\r
17 import org.simantics.db.procore.protocol.Constants;\r
18 \r
19 import fi.vtt.simantics.procore.internal.SessionManagerFactory;\r
20 import fi.vtt.simantics.procore.internal.SessionManagerFactoryImpl;\r
21 \r
22 public final class SessionManagerSource {\r
23     \r
24         public static final long      NullSessionId         = Constants.NullSessionId;\r
25     public static final long      NullTransactionId     = Constants.NullTransactionId;\r
26     public static final long      NullSubjectId         = Constants.NullSubjectId;\r
27         \r
28         private static SessionManager defaultSessionManager = null;\r
29         \r
30     /**\r
31      * @param loggerProperties\r
32      * @return\r
33      * @throws IOException\r
34      */\r
35     public static synchronized SessionManager getSessionManager(Properties loggerProperties) throws IOException {\r
36         if (defaultSessionManager == null) {\r
37             SessionManagerFactory factory = SessionManagerFactoryImpl.getInstance();\r
38             defaultSessionManager = factory.createSessionManager();\r
39         }\r
40         return defaultSessionManager;\r
41     }\r
42 \r
43     /**\r
44      * @return\r
45      * @throws IOException\r
46      */\r
47     public static synchronized SessionManager getSessionManager() throws IOException {\r
48         return getSessionManager(nullProperties);\r
49     }\r
50 \r
51     /**\r
52      * \r
53      */\r
54     public static synchronized void shutdown() {\r
55         SessionManagerFactoryImpl.finish();\r
56     }\r
57 \r
58     \r
59     /**\r
60      * Properties with the default null logger settings.\r
61      */\r
62     public static Properties nullProperties = new Properties();\r
63     static {\r
64         nullProperties.put("log4j.rootCategory", "INFO, default");\r
65         nullProperties.put("log4j.appender.default", "org.apache.log4j.varia.NullAppender");\r
66     }\r
67     \r
68 }\r