Project

General

Profile

Download (3.48 KB) Statistics
| Branch: | Tag: | Revision:
1
/*
2
 * ========================================================================
3
 * Based on Jetty 6 code from Mort Bay Consulting Pty. Ltd.
4
 * Modified for CDM Server by Andreas Kohlbecker. 2010-10-24
5
 * ========================================================================
6
 * Copyright 2004-2008 Mort Bay Consulting Pty. Ltd.
7
 * ------------------------------------------------------------------------
8
 * Licensed under the Apache License, Version 2.0 (the "License");
9
 * you may not use this file except in compliance with the License.
10
 * You may obtain a copy of the License at 
11
 * http://www.apache.org/licenses/LICENSE-2.0
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 * ========================================================================
18
 */
19

    
20
package eu.etaxonomy.cdm.server.win32service;
21

    
22

    
23
import org.apache.log4j.Logger;
24
import org.eclipse.jetty.server.Server;
25
import org.tanukisoftware.wrapper.WrapperListener;
26
import org.tanukisoftware.wrapper.WrapperManager;
27
/**
28
 * @author a.kohlbecker
29
 * @date 26.10.2010
30
 *
31
 */
32
public class CDMServerWrapperListener implements WrapperListener
33
{
34
    private static Server __server = null;
35
    
36
    public static final Logger logger = Logger.getLogger(CDMServerWrapperListener.class);
37

    
38
    public CDMServerWrapperListener()
39
    {
40
    }
41

    
42
    /* (non-Javadoc)
43
     * @see org.tanukisoftware.wrapper.WrapperListener#controlEvent(int)
44
     */
45
    public void controlEvent(int event)
46
    {
47
        if (!WrapperManager.isControlledByNativeWrapper())
48
        {
49
            if ((event == WrapperManager.WRAPPER_CTRL_C_EVENT) || (event == WrapperManager.WRAPPER_CTRL_CLOSE_EVENT) || (event == WrapperManager.WRAPPER_CTRL_SHUTDOWN_EVENT))
50
            {
51
                WrapperManager.stop(0);
52
            }
53
        }
54

    
55
    }
56

    
57
    /* (non-Javadoc)
58
     * @see org.tanukisoftware.wrapper.WrapperListener#start(java.lang.String[])
59
     */
60
    public Integer start(String[] args)
61
    {
62
        for(int i=0; i<args.length; i++)
63
        {
64
        	logger.info("ARG[" + i + "] = " + args[i]);
65
        }
66
        try {
67
			eu.etaxonomy.cdm.server.Bootloader.main(args);
68
			logger.info("The CDM Server Bootloader has started.");
69
		} catch (Exception e) {
70
			logger.error(e);
71
		}
72
        return null;
73
    }
74

    
75
    /* (non-Javadoc)
76
     * @see org.tanukisoftware.wrapper.WrapperListener#stop(int)
77
     */
78
    public int stop(int code)
79
    {
80
        try
81
        {
82
        	logger.info("Stopping CDM Server!!!");
83
            __server.stop();
84
            logger.info("CDM Server Stopped!!!");
85
            return code;
86
        }
87
        catch (Exception e)
88
        {
89
        	logger.error("Stop Server Error", e);
90
            return -1;
91
        }
92

    
93
    }
94

    
95
    /**
96
     * @param server
97
     */
98
    public static void setServer(Server server)
99
    {
100
        __server = server;
101
    }
102

    
103
    /**
104
     * @return
105
     */
106
    public static Server getServer()
107
    {
108
        return __server;
109
    }
110

    
111
    public static void main(String[] args)
112
    {
113
        String newStrArgs[] = new String[args.length + 1];
114
        newStrArgs[0] = System.getProperty("jetty.home") + "etc/jetty-win32-service.xml";
115
        for(int i=0; i<args.length; i++)
116
        {
117
            newStrArgs[i+1] = args[i];
118
        }
119
        WrapperManager.start(new CDMServerWrapperListener(), newStrArgs);
120
    }
121

    
122
}
(1-1/2)