Project

General

Profile

Download (3.13 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
package eu.etaxonomy.cdm.server.win32service;
20

    
21
import org.apache.logging.log4j.LogManager;
22
import org.apache.logging.log4j.Logger;
23
import org.eclipse.jetty.server.Server;
24
import org.tanukisoftware.wrapper.WrapperListener;
25
import org.tanukisoftware.wrapper.WrapperManager;
26

    
27
/**
28
 * @author a.kohlbecker
29
 * @date 26.10.2010
30
 */
31
public class CDMServerWrapperListener implements WrapperListener {
32

    
33
    private static final Logger logger = LogManager.getLogger();
34

    
35
    private static Server mServer = null;
36

    
37
    public CDMServerWrapperListener(){
38
    }
39

    
40
    @Override
41
    public void controlEvent(int event) {
42
        if (!WrapperManager.isControlledByNativeWrapper()) {
43
            if ((event == WrapperManager.WRAPPER_CTRL_C_EVENT)
44
                    || (event == WrapperManager.WRAPPER_CTRL_CLOSE_EVENT)
45
                    || (event == WrapperManager.WRAPPER_CTRL_SHUTDOWN_EVENT)){
46
                WrapperManager.stop(0);
47
            }
48
        }
49
    }
50

    
51
    @Override
52
    public Integer start(String[] args) {
53
        for(int i=0; i<args.length; i++) {
54
        	logger.info("ARG[" + i + "] = " + args[i]);
55
        }
56
        try {
57
			eu.etaxonomy.cdm.server.Bootloader.main(args);
58
			logger.info("The CDM Server Bootloader has started.");
59
		} catch (Exception e) {
60
			logger.error(e);
61
		}
62
        return null;
63
    }
64

    
65
    @Override
66
    public int stop(int code) {
67
        try {
68
        	logger.info("Stopping CDM Server!!!");
69
            mServer.stop();
70
            logger.info("CDM Server Stopped!!!");
71
            return code;
72
        }
73
        catch (Exception e) {
74
        	logger.error("Stop Server Error", e);
75
            return -1;
76
        }
77
    }
78

    
79
    public static void setServer(Server server) {
80
        mServer = server;
81
    }
82

    
83
    public static Server getServer() {
84
        return mServer;
85
    }
86

    
87
    public static void main(String[] args) {
88
        String newStrArgs[] = new String[args.length + 1];
89
        newStrArgs[0] = System.getProperty("jetty.home") + "etc/jetty-win32-service.xml";
90
        for(int i=0; i<args.length; i++) {
91
            newStrArgs[i+1] = args[i];
92
        }
93
        WrapperManager.start(new CDMServerWrapperListener(), newStrArgs);
94
    }
95
}
(1-1/2)