Update of /cvsroot/jsmooth/jsmooth/skeletons/winservice
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv10646/winservice
Modified Files:
Makefile.win WinService.cpp
Log Message:
Winservice DLL instanciation fix
Index: Makefile.win
===================================================================
RCS file: /cvsroot/jsmooth/jsmooth/skeletons/winservice/Makefile.win,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Makefile.win 9 Apr 2007 22:21:23 -0000 1.2
--- Makefile.win 30 Apr 2007 20:54:32 -0000 1.3
***************
*** 11,15 ****
LIBS = -L"/lib" -L"../commonjava" -L"../util-core" ../commonjava/CommonJava.a ../util-core/util-core.a
INCS = -I"/include" -I"../util-core" -I"../commonjava" -I"$(JDK)/include" -I"$(JDK)/include/win32"
! CXXINCS = -g -I"/include/c++" -I"/include/c++/mingw32" -I"/include/c++/backward" -I"/include" -I"../commonjava" -I"$(JDK)/include" -I"$(JDK)/include/win32" -I../util-core
BIN = winservice.exe
CXXFLAGS = $(CUSTOMFLAGS) $(CXXINCS) -DJDK="$(JDK)"
--- 11,15 ----
LIBS = -L"/lib" -L"../commonjava" -L"../util-core" ../commonjava/CommonJava.a ../util-core/util-core.a
INCS = -I"/include" -I"../util-core" -I"../commonjava" -I"$(JDK)/include" -I"$(JDK)/include/win32"
! CXXINCS = -I"/include/c++" -I"/include/c++/mingw32" -I"/include/c++/backward" -I"/include" -I"../commonjava" -I"$(JDK)/include" -I"$(JDK)/include/win32" -I../util-core
BIN = winservice.exe
CXXFLAGS = $(CUSTOMFLAGS) $(CXXINCS) -DJDK="$(JDK)"
Index: WinService.cpp
===================================================================
RCS file: /cvsroot/jsmooth/jsmooth/skeletons/winservice/WinService.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** WinService.cpp 12 Apr 2007 20:01:50 -0000 1.4
--- WinService.cpp 30 Apr 2007 20:54:32 -0000 1.5
***************
*** 30,33 ****
--- 30,35 ----
#include "JVMRegistryLookup.h"
#include "JavaMachineManager.h"
+ #include "JClassProxy.h"
+ #include "JArgs.h"
WinService* winservice_ref;
***************
*** 83,87 ****
{
if (m_jvm != 0)
! m_jvm->callDLLStaticMethodInt("java.lang.System", "exit", "(I)V", 0);
}
--- 85,98 ----
{
if (m_jvm != 0)
! {
! SunJVMDLL* runner = m_jvm->getDLL();
! log("Calling java.lang.System.exit(0)...");
!
! JClassProxy disp(runner, "java.lang.System");
! disp.invokeStatic("void exit(int)", JArgs(0));
! log("exit(0) returned successfully");
!
! // m_jvm->callDLLStaticMethodInt("java.lang.System", "exit", "(I)V", 0);
! }
}
***************
*** 161,165 ****
{
SERVICE_STATUS status;
! log("set status " + StringUtils::toString(currentState));
status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
--- 172,202 ----
{
SERVICE_STATUS status;
! std::string meaning = "";
! switch(currentState)
! {
! case SERVICE_STOPPED:
! meaning = "SERVICE_STOPPED";
! break;
! case SERVICE_START_PENDING:
! meaning = "SERVICE_START_PENDING";
! break;
! case SERVICE_STOP_PENDING:
! meaning = "SERVICE_STOP_PENDING";
! break;
! case SERVICE_RUNNING:
! meaning = "SERVICE_RUNNING";
! break;
! case SERVICE_CONTINUE_PENDING:
! meaning = "SERVICE_CONTINUE_PENDING";
! break;
! case SERVICE_PAUSE_PENDING:
! meaning = "SERVICE_PAUSE_PENDING";
! break;
! case SERVICE_PAUSED:
! meaning = "SERVICE_PAUSED";
! break;
! }
!
! log("set status " + StringUtils::toString(currentState) + " (" + meaning + ")");
status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
***************
*** 250,254 ****
--- 287,293 ----
JavaMachineManager man(*globalResMan);
+ setStatus(SERVICE_RUNNING);
SunJVMLauncher* launcher = man.runDLLFromRegistry(true);
+
if (launcher != 0)
{
***************
*** 257,266 ****
setStatus(SERVICE_RUNNING);
! if ( ! launcher->dllInstanciate(*globalResMan, "wsreg") )
{
! log("Failed to launch the service: can't instanciate the JVM DLL");
}
else
! log("Launched successfully the DLL (" + launcher->toString() + ")");
}
else
--- 296,308 ----
setStatus(SERVICE_RUNNING);
!
! SunJVMDLL* jdll = m_jvm->getDLL();
! if (jdll != 0)
{
! jdll->run( globalResMan->getProperty(ResourceManager::KEY_MAINCLASSNAME), false);
}
else
! log("ERROR: JVM is launched, but can get a DLL... ?");
!
}
else
***************
*** 274,278 ****
setStatus(SERVICE_STOPPED);
- log("stopped!");
return;
}
--- 316,319 ----
|