01: /*
02: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
04: *
05: * This program is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU General Public License version
07: * 2 only, as published by the Free Software Foundation.
08: *
09: * This program is distributed in the hope that it will be useful, but
10: * WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * General Public License version 2 for more details (a copy is
13: * included at /legal/license.txt).
14: *
15: * You should have received a copy of the GNU General Public License
16: * version 2 along with this work; if not, write to the Free Software
17: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18: * 02110-1301 USA
19: *
20: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
21: * Clara, CA 95054 or visit www.sun.com if you need additional
22: * information or have any questions.
23: */
24:
25: package com.sun.jumpimpl.module.lifecycle;
26:
27: import com.sun.jump.module.lifecycle.JUMPApplicationLifecycleModule;
28: import com.sun.jump.module.lifecycle.JUMPApplicationLifecycleModuleFactory;
29: import com.sun.jumpimpl.module.lifecycle.remote.ApplicationLifecycleModuleRemoteImpl;
30: import java.util.Map;
31:
32: public class ApplicationLifecycleModuleFactoryImpl extends
33: JUMPApplicationLifecycleModuleFactory {
34:
35: private JUMPApplicationLifecycleModule oneLiveOnly;
36: private Map config;
37:
38: public void load(Map config) {
39: this .config = config;
40:
41: boolean shouldExport = new Boolean((String) config
42: .get("lifecycle.remote.export")).booleanValue();
43:
44: if (shouldExport) {
45: JUMPApplicationLifecycleModule module = getModule(POLICY_ONE_LIVE_INSTANCE_ONLY);
46:
47: new ApplicationLifecycleModuleRemoteImpl(module);
48: }
49: }
50:
51: public void unload() {
52: synchronized (this ) {
53: if (oneLiveOnly != null) {
54: oneLiveOnly.unload();
55: }
56: }
57: }
58:
59: private synchronized JUMPApplicationLifecycleModule getOneLiveOnly() {
60: if (oneLiveOnly == null) {
61: oneLiveOnly = new OneLiveOnlyApplicationLifecycleModule();
62: oneLiveOnly.load(config);
63: }
64: return oneLiveOnly;
65: }
66:
67: public JUMPApplicationLifecycleModule getModule(String policy) {
68: if (policy
69: .equals(JUMPApplicationLifecycleModuleFactory.POLICY_ONE_LIVE_INSTANCE_ONLY))
70: return getOneLiveOnly();
71: return null;
72: }
73: }
|