Project

General

Profile

« Previous | Next » 

Revision a2dcdb6f

Added by Andreas Kohlbecker over 13 years ago

CDM Server as win32 service - working, installer prepared

View differences:

.gitattributes
15 15
src/main/installer/linux/postrm -text
16 16
src/main/installer/templates/.cdmLibrary/datasources.xml -text
17 17
src/main/installer/templates/copyright.txt -text
18
src/main/installer/win32/CDM-Server-win32.nsi -text
18 19
src/main/installer/win32/Launch4JavaCDMSERVER.xml -text
19 20
src/main/installer/win32/cdmserver.nsi -text
20 21
src/main/installer/win32/cdmserver/bin/cdmserver.bat -text
21 22
src/main/installer/win32/service/CDMServer.conf -text
22 23
src/main/installer/win32/service/CDMServer.exe -text
23
src/main/installer/win32/service/install-serice.bat -text
24
src/main/installer/win32/service/install-service.bat -text
24 25
src/main/installer/win32/service/remove-service.bat -text
25 26
src/main/installer/win32/service/start-service.bat -text
26 27
src/main/installer/win32/service/stop-service.bat -text
src/main/installer/win32/CDM-Server-win32.nsi
1
; Script generated by the HM NIS Edit Script Wizard.
2

  
3
;Copy a file
4
!define FileCopy `!insertmacro FileCopy`
5
!macro FileCopy FilePath TargetDir
6
  CreateDirectory `${TargetDir}`
7
  CopyFiles `${FilePath}` `${TargetDir}`
8
!macroend
9

  
10
; HM NIS Edit Wizard helper defines
11
!define PRODUCT_NAME "CDM Server"
12
!define PRODUCT_VERSION "2.5"
13
!define PRODUCT_PUBLISHER "EDIT"
14
!define PRODUCT_WEB_SITE "http://wp5.e-taxonomy.eu/"
15
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
16
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
17

  
18
!define COPYRIGHT_FILE "..\templates\copyright.txt"
19
!define DATASOURCES_DIR "..\templates\.cdmLibrary\"
20
!define JAR_FILE "..\..\..\..\target\cdm-server-${PRODUCT_VERSION}.jar"
21

  
22
!define JAR_FILE_NAME "cdm-server-${PRODUCT_VERSION}.jar"
23
!define COPYRIGHT_FILE_NAME "copyright.txt"
24

  
25
; MUI 1.67 compatible ------
26
!include "MUI.nsh"
27

  
28
; MUI Settings
29
!define MUI_ABORTWARNING
30
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
31
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
32

  
33
; Language Selection Dialog Settings
34
!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
35
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
36
!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
37

  
38
; Welcome page
39
!insertmacro MUI_PAGE_WELCOME
40
; License page
41
!insertmacro MUI_PAGE_LICENSE ${COPYRIGHT_FILE}
42
; Directory page
43
!insertmacro MUI_PAGE_DIRECTORY
44
; Instfiles page
45
!insertmacro MUI_PAGE_INSTFILES
46
; Finish page
47
!insertmacro MUI_PAGE_FINISH
48

  
49
; Uninstaller pages
50
!insertmacro MUI_UNPAGE_INSTFILES
51

  
52
; Language files
53
!insertmacro MUI_LANGUAGE "English"
54
!insertmacro MUI_LANGUAGE "French"
55
!insertmacro MUI_LANGUAGE "German"
56
!insertmacro MUI_LANGUAGE "Spanish"
57

  
58
; MUI end ------
59

  
60
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
61
OutFile "${PRODUCT_NAME}-Setup.exe"
62
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
63
ShowInstDetails show
64
ShowUnInstDetails show
65

  
66
Function .onInit
67
  !insertmacro MUI_LANGDLL_DISPLAY
68
FunctionEnd
69

  
70
Section "MainSection" SEC01
71

  
72
  SetOutPath "$INSTDIR\"
73
  SetOverwrite try
74
  File "service\"
75
  File "${DATASOURCES_DIR}"
76
  SetOutPath "$INSTDIR\lib"
77
  File ${JAR_FILE}
78
  SetOutPath "$INSTDIR\license"
79
  ;File "cdmserver\license\license.txt"
80
  File ${COPYRIGHT_FILE}
81
SectionEnd
82

  
83
Section -AdditionalIcons
84
  SetOutPath $INSTDIR
85
  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
86
  CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
87
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
88
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"
89
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\cdmserver.lnk" "$INSTDIR\bin\cdmserver.exe"
90
SectionEnd
91

  
92
Section -Post
93
  WriteUninstaller "$INSTDIR\uninst.exe"
94
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
95
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
96
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
97
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
98
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
99
SectionEnd
100

  
101

  
102
Function un.onUninstSuccess
103
  HideWindow
104
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
105
FunctionEnd
106

  
107
Function un.onInit
108
!insertmacro MUI_UNGETLANGUAGE
109
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2
110
  Abort
111
FunctionEnd
112

  
113
Section Uninstall
114
  Delete "$INSTDIR\${PRODUCT_NAME}.url"
115
  Delete "$INSTDIR\uninst.exe"
116
  ;Delete "$INSTDIR\logs\cdmserverLog.txt"
117
  Delete "$INSTDIR\license\${COPYRIGHT_FILE_NAME}"
118
  Delete "$INSTDIR\libs\${JAR_FILE_NAME}"
119
  Delete "$INSTDIR\libs\.cdmLibrary\datasources.xml"
120
  Delete "$INSTDIR\bin\cdmserver.bat"
121
  Delete "$INSTDIR\bin\cdmserver.exe"
122

  
123
  Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
124
  Delete "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk"
125
  Delete "$SMPROGRAMS\${PRODUCT_NAME}\cdmserver.lnk"
126

  
127
  RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
128
  RMDir "$INSTDIR\logs"
129
  RMDir "$INSTDIR\license"
130
  RMDir "$INSTDIR\libs\.cdmLibrary"
131
  RMDir "$INSTDIR\libs"
132
  RMDir "$INSTDIR\bin"
133
  
134
  Delete "$PROFILE\.cdmLibrary\datasources.xml"
135
  RMDir "$PROFILE\.cdmLibrary"
136

  
137
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
138
  SetAutoClose true
139
SectionEnd
src/main/installer/win32/service/CDMServer.conf
9 9
wrapper.java.maxmemory=1024
10 10
wrapper.java.mainclass=eu.etaxonomy.cdm.server.win32service.CDMServerWrapperListener
11 11
wrapper.app.parameter.1=-win32service
12

  
13
wrapper.ping.timeout=480
14
wrapper.startup.timeout=600
15

  
12 16
wrapper.console.format=PM
13
wrapper.console.loglevel=INFO
17
wrapper.console.loglevel=WARN
18

  
14 19
wrapper.logfile.format=LPTM
15
wrapper.logfile.loglevel=INFO
20
wrapper.logfile.loglevel=WARN
16 21
wrapper.logfile.maxsize=0
17 22
wrapper.logfile.maxfiles=0
18 23
wrapper.syslog.loglevel=ERROR
src/main/installer/win32/service/install-serice.bat
1
CDMServer.exe --install CDMServer.conf
2
pause
src/main/installer/win32/service/install-service.bat
1
CDMServer.exe --install CDMServer.conf
2
pause
src/main/installer/win32/service/start-service.bat
1
del wrapper.log
1 2
CDMServer.exe --start CDMServer.conf
2 3
pause
src/main/java/eu/etaxonomy/cdm/server/Bootloader.java
386 386
        
387 387
        logger.info("setting contexts ...");
388 388
        server.setHandler(contexts);
389
        logger.info("starting jetty ...");
390
        server.start();
389 391
        if(cmdLine.hasOption(WIN32SERVICE.getOpt())){
390
        	logger.info("jetty is waiting to be started as win32 service");
392
        	logger.info("jetty has started as win32 service");
391 393
        } else {
392
	        logger.info("starting jetty ...");
393
	        server.start();
394
	        server.join();
394
        	server.join();
395 395
	        logger.info(APPLICATION_NAME+" stopped.");
396 396
	    	System.exit(0);
397 397
        }
src/main/java/eu/etaxonomy/cdm/server/win32service/CDMServerWrapperListener.java
39 39
    {
40 40
    }
41 41

  
42
    /* (non-Javadoc)
43
     * @see org.tanukisoftware.wrapper.WrapperListener#controlEvent(int)
44
     */
42 45
    public void controlEvent(int event)
43 46
    {
44 47
        if (!WrapperManager.isControlledByNativeWrapper())
......
51 54

  
52 55
    }
53 56

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

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

  
src/main/java/eu/etaxonomy/cdm/server/win32service/Win32Service.java
19 19

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

  
22
import org.apache.log4j.Logger;
22 23
import org.eclipse.jetty.server.Server;
23 24
import org.eclipse.jetty.util.component.AbstractLifeCycle;
24 25

  
......
30 31
 */
31 32
public class Win32Service extends AbstractLifeCycle implements Runnable
32 33
{
34
	public static final Logger logger = Logger.getLogger(Win32Service.class);
35
	
33 36
    private Server server;
37
    
34 38
    public void doStart()
35 39
    {
36
        
37
        
40
    	logger.info("doStart");
38 41
        CDMServerWrapperListener.setServer(server);
39
         
40 42
    }
41 43
    
42 44
    public void doStop()
43 45
    {
44
        System.out.println("Listener is stopping CDM Server Instance!!!");
45
        
46
    	logger.info("Listener is stopping CDM Server Instance!!!"); 
46 47
    }
47 48
    
48 49
    public void run()
......
55 56
    {
56 57
        try
57 58
        {
58
            System.out.println("Thread Test Stopper!!!");
59
        	logger.info("Thread Test Stopper!!!");
59 60
            server.stop();
60 61
            //WrapperManager.stop(0);
61 62
        }

Also available in: Unified diff