You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(233) |
Sep
(199) |
Oct
(206) |
Nov
(185) |
Dec
(270) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(232) |
Feb
(426) |
Mar
(623) |
Apr
(592) |
May
(506) |
Jun
(389) |
Jul
(160) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2007 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(4) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(5) |
Oct
(9) |
Nov
(6) |
Dec
(6) |
2008 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(3) |
Jun
(5) |
Jul
(10) |
Aug
(2) |
Sep
(12) |
Oct
(10) |
Nov
(54) |
Dec
(49) |
2009 |
Jan
(19) |
Feb
(13) |
Mar
(20) |
Apr
(24) |
May
(44) |
Jun
(29) |
Jul
(32) |
Aug
(10) |
Sep
(7) |
Oct
(10) |
Nov
(4) |
Dec
(17) |
2010 |
Jan
(14) |
Feb
(5) |
Mar
(23) |
Apr
(50) |
May
(31) |
Jun
(9) |
Jul
(5) |
Aug
(4) |
Sep
(7) |
Oct
(5) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
(12) |
Feb
(5) |
Mar
(5) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jbo...@li...> - 2006-05-23 02:07:23
|
Author: mic...@jb... Date: 2006-05-22 22:07:18 -0400 (Mon, 22 May 2006) New Revision: 4357 Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java Log: test to prove nesting Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java 2006-05-22 20:45:18 UTC (rev 4356) +++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java 2006-05-23 02:07:18 UTC (rev 4357) @@ -70,5 +70,13 @@ assertEquals( "\nfor(int i=0; i < 2; i++) { /*do noithing*/ }", fixer.fix( "\nfor(int i=0; i < 2; i++) { /*do noithing*/ }" ) ); } + + public void testNestedInAMethod() { + FunctionFixer fixer = new FunctionFixer(); + assertEquals( "obj.method(Foo.foo(bar));", + fixer.fix( "obj.method(foo(bar));" ) ); + + } + } \ No newline at end of file |
From: <jbo...@li...> - 2006-05-22 20:06:56
|
Author: adamw Date: 2006-05-22 16:06:46 -0400 (Mon, 22 May 2006) New Revision: 4355 Modified: labs/jbosslabs/trunk/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java Log: Temp bug fix Modified: labs/jbosslabs/trunk/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2006-05-22 17:53:20 UTC (rev 4354) +++ labs/jbosslabs/trunk/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2006-05-22 20:06:46 UTC (rev 4355) @@ -160,11 +160,11 @@ //timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); // Enabling administration for this service. - Tools.getService().addAdministratedService(new AdministratedServiceGetter() { + /*Tools.getService().addAdministratedService(new AdministratedServiceGetter() { public AdministratedService getService() { return ForgeHelper.getForgeManagement(); } - }); + });*/ log.info("Forge service created, with timer interval: " + getTimerInterval()); } |
From: <jbo...@li...> - 2006-05-22 17:43:37
|
Author: mla...@jb... Date: 2006-05-22 13:43:12 -0400 (Mon, 22 May 2006) New Revision: 4353 Modified: labs/jbossweb/trunk/src/share/native/build/buildprep.bat labs/jbossweb/trunk/src/share/native/build/buildsvc.bat labs/jbossweb/trunk/src/share/native/build/buildworld.bat labs/jbossweb/trunk/src/share/native/build/patch/libxml2-2.6.24.patch labs/jbossweb/trunk/src/share/native/php5servlet/NMAKEmakefile labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.rc labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslamd64.bat labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslasm.bat labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslia64.bat labs/jbossweb/trunk/src/share/resources/ROOT.war/index.jsp labs/jbossweb/trunk/src/share/resources/bin/run.bat labs/jbossweb/trunk/src/windows/native/service/jbosssvc/NMAKEmakefile labs/jbossweb/trunk/src/windows/native/service/jbosssvc/jboss.rc labs/jbossweb/trunk/xdocs/install/service.xml Log: EOL Style:Native Modified: labs/jbossweb/trunk/src/share/native/build/buildprep.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/build/buildprep.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/build/buildprep.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,60 +1,60 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM -REM -REM -@if "%OS%" == "Windows_NT" setlocal -set NATIVETAG=HEAD - -REM Replace NATIVEEXT with tagged version number, like 1.1.0 -set NATIVEEXT=current - -REM Use tag or trunk -REM NATIVESVN=http://svn.apache.org/repos/asf/tomcat/connectors/trunk -set NATIVESVN=http://svn.apache.org/repos/asf/tomcat/connectors/tags/other/TOMCAT_NATIVE_1_1_3 - -set NATIVEDIST=tomcat-native-%NATIVEEXT% -@rmdir /S /Q %NATIVEDIST% 2>NUL -svn export -r %NATIVETAG% %NATIVESVN%/jni/native %NATIVEDIST% - -set APRVER=1.2.7 -set SSLVER=0.9.8b - -REM Prebuild -cd %NATIVEDIST% -mkdir srclib -cd srclib - -REM Download APR -wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/apr/apr-%APRVER%-win32-src.zip -unzip -qo apr-%APRVER%-win32-src.zip -@del /Q apr-%APRVER%-win32-src.zip - -REM Download OpenSSL -wget http://www.openssl.org/source/openssl-%SSLVER%.tar.gz -tar zxf openssl-%SSLVER%.tar.gz 2>NUL -@del /Q openssl-%SSLVER%.tar.gz -cd .. -cd .. - -cp ./buildworld.bat %NATIVEDIST%/ -cp ./buildsvc.bat %NATIVEDIST%/ -cp ./NMAKEcommon.inc %NATIVEDIST%/build/ -cp ../NMAKEmakefile %NATIVEDIST%/ -cp ../srclib/apr/NMAKEmakefile %NATIVEDIST%/srclib/apr-%APRVER%/ -cp ../srclib/openssl/*.bat %NATIVEDIST%/srclib/openssl-%SSLVER%/ - -REM zip -9rqo ../../%NATIVEDIST%.zip %NATIVEDIST% -REM tar cfz ../../%NATIVEDIST%.tar.gz %NATIVEDIST% - -REM @rmdir /S /Q %NATIVEDIST% -REM Instead packing move the prepared sources. -@rmdir /S /Q ..\..\%NATIVEDIST% 2>NUL -@mv %NATIVEDIST% ../../ +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM +REM +REM +@if "%OS%" == "Windows_NT" setlocal +set NATIVETAG=HEAD + +REM Replace NATIVEEXT with tagged version number, like 1.1.0 +set NATIVEEXT=current + +REM Use tag or trunk +REM NATIVESVN=http://svn.apache.org/repos/asf/tomcat/connectors/trunk +set NATIVESVN=http://svn.apache.org/repos/asf/tomcat/connectors/tags/other/TOMCAT_NATIVE_1_1_3 + +set NATIVEDIST=tomcat-native-%NATIVEEXT% +@rmdir /S /Q %NATIVEDIST% 2>NUL +svn export -r %NATIVETAG% %NATIVESVN%/jni/native %NATIVEDIST% + +set APRVER=1.2.7 +set SSLVER=0.9.8b + +REM Prebuild +cd %NATIVEDIST% +mkdir srclib +cd srclib + +REM Download APR +wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/apr/apr-%APRVER%-win32-src.zip +unzip -qo apr-%APRVER%-win32-src.zip +@del /Q apr-%APRVER%-win32-src.zip + +REM Download OpenSSL +wget http://www.openssl.org/source/openssl-%SSLVER%.tar.gz +tar zxf openssl-%SSLVER%.tar.gz 2>NUL +@del /Q openssl-%SSLVER%.tar.gz +cd .. +cd .. + +cp ./buildworld.bat %NATIVEDIST%/ +cp ./buildsvc.bat %NATIVEDIST%/ +cp ./NMAKEcommon.inc %NATIVEDIST%/build/ +cp ../NMAKEmakefile %NATIVEDIST%/ +cp ../srclib/apr/NMAKEmakefile %NATIVEDIST%/srclib/apr-%APRVER%/ +cp ../srclib/openssl/*.bat %NATIVEDIST%/srclib/openssl-%SSLVER%/ + +REM zip -9rqo ../../%NATIVEDIST%.zip %NATIVEDIST% +REM tar cfz ../../%NATIVEDIST%.tar.gz %NATIVEDIST% + +REM @rmdir /S /Q %NATIVEDIST% +REM Instead packing move the prepared sources. +@rmdir /S /Q ..\..\%NATIVEDIST% 2>NUL +@mv %NATIVEDIST% ../../ Property changes on: labs/jbossweb/trunk/src/share/native/build/buildprep.bat ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/build/buildsvc.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/build/buildsvc.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/build/buildsvc.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,46 +1,46 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM -REM -REM -@if "%OS%" == "Windows_NT" setlocal -set MSVS8VC=C:\opt\MSVS8\VC\bin -REM set MSVS8VC=C:\D\Microsoft\MSVS8\VC\bin - - -@if not "%1" == "d" goto checkCPU -@shift -@rmdir /S /Q jbosssvc 2>NUL -svn export http://anonsvn.labs.jboss.com/labs/jbossweb/trunk/src/windows/native/service/jbosssvc -svn export http://anonsvn.labs.jboss.com/labs/jbossweb/trunk/src/share/native/build jbosssvc/build - -:checkCPU -@if /i "%1" == "x86" goto cpuX86 -@if /i "%1" == "amd64" goto cpuAMD64 -@if /i "%1" == "ia64" goto cpuIA64 -echo Usage: buildsvc <CPU> -goto cmdEnd - -:cpuX86 -set CPU=I386 -call %MSVS8VC%\vcvars32 -goto cmdBuild - -:cpuAMD64 -set CPU=AMD64 -call %MSVS8VC%\amd64\vcvarsamd64 -goto cmdBuild - -:cmdBuild -cd jbosssvc -nmake -f NMAKEMakefile -nmake -f NMAKEMakefile install - -:cmdEnd +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM +REM +REM +@if "%OS%" == "Windows_NT" setlocal +set MSVS8VC=C:\opt\MSVS8\VC\bin +REM set MSVS8VC=C:\D\Microsoft\MSVS8\VC\bin + + +@if not "%1" == "d" goto checkCPU +@shift +@rmdir /S /Q jbosssvc 2>NUL +svn export http://anonsvn.labs.jboss.com/labs/jbossweb/trunk/src/windows/native/service/jbosssvc +svn export http://anonsvn.labs.jboss.com/labs/jbossweb/trunk/src/share/native/build jbosssvc/build + +:checkCPU +@if /i "%1" == "x86" goto cpuX86 +@if /i "%1" == "amd64" goto cpuAMD64 +@if /i "%1" == "ia64" goto cpuIA64 +echo Usage: buildsvc <CPU> +goto cmdEnd + +:cpuX86 +set CPU=I386 +call %MSVS8VC%\vcvars32 +goto cmdBuild + +:cpuAMD64 +set CPU=AMD64 +call %MSVS8VC%\amd64\vcvarsamd64 +goto cmdBuild + +:cmdBuild +cd jbosssvc +nmake -f NMAKEMakefile +nmake -f NMAKEMakefile install + +:cmdEnd Property changes on: labs/jbossweb/trunk/src/share/native/build/buildsvc.bat ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/build/buildworld.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/build/buildworld.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/build/buildworld.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,83 +1,83 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM -REM -REM -@if "%OS%" == "Windows_NT" setlocal -set MSVS8VC=C:\opt\msvs8\VC\bin -REM set MSVS8VC=C:\D\Microsoft\MSVS8\VC\bin -set PSDK5=C:\opt\psdk5 -REM PSDK5=C:\D\PSDK05 - -set OPENSSLBIN=buildssl -set OPENSSLVER=0.9.8b -set APRVER=1.2.7 -set FLAVOR=DLL - -@if not "%1" == "sdk" goto checkFLAVOR -shift -set usesdk=1 - -:checkFLAVOR -@if /i "%1" == "dll" goto makeDLL -set FLAVOR=STATIC -goto checkCPU -:makeDLL -set FLAVOR=DLL - -:checkCPU -@if /i "%2" == "x86" goto cpuX86 -@if /i "%2" == "amd64" goto cpuAMD64 -@if /i "%2" == "ia64" goto cpuIA64 -echo Usage: buildworld <CPU> -goto cmdEnd - -:cpuX86 -set CPU=I386 -set OPENSSLBIN=buildsslasm %1 -@if "%usesdk%" == "1" ( - call %PSDK5%\SetEnv /XP32 /RETAIL -) else ( - call %MSVS8VC%\vcvars32 -) -goto cmdBuild - -:cpuAMD64 -set CPU=AMD64 -set OPENSSLBIN=buildsslamd64 %1 -@if "%usesdk%" == "1" ( - call %PSDK5%\SetEnv /X64 /RETAIL -) else ( - call %MSVS8VC%\amd64\vcvarsamd64 -) -goto cmdBuild - -:cpuIA64 -set CPU=IA64 -set OPENSSLBIN=buildsslia64 %1 -@if "%usesdk%" == "1" ( - call %PSDK5%\SetEnv /SRV64 /RETAIL -) else ( - call %MSVS8VC%\amd64\vcvarsamd64 -) -goto cmdBuild - -:cmdBuild -cd srclib/openssl-%OPENSSLVER% -call %OPENSSLBIN% %1 -cd .. -cd apr-%APRVER% -nmake -f NMAKEMakefile %FLAVOR%=1 -cd .. -cd .. -nmake -f NMAKEMakefile %FLAVOR%=1 -nmake -f NMAKEMakefile %FLAVOR%=1 install - -:cmdEnd +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM +REM +REM +@if "%OS%" == "Windows_NT" setlocal +set MSVS8VC=C:\opt\msvs8\VC\bin +REM set MSVS8VC=C:\D\Microsoft\MSVS8\VC\bin +set PSDK5=C:\opt\psdk5 +REM PSDK5=C:\D\PSDK05 + +set OPENSSLBIN=buildssl +set OPENSSLVER=0.9.8b +set APRVER=1.2.7 +set FLAVOR=DLL + +@if not "%1" == "sdk" goto checkFLAVOR +shift +set usesdk=1 + +:checkFLAVOR +@if /i "%1" == "dll" goto makeDLL +set FLAVOR=STATIC +goto checkCPU +:makeDLL +set FLAVOR=DLL + +:checkCPU +@if /i "%2" == "x86" goto cpuX86 +@if /i "%2" == "amd64" goto cpuAMD64 +@if /i "%2" == "ia64" goto cpuIA64 +echo Usage: buildworld <CPU> +goto cmdEnd + +:cpuX86 +set CPU=I386 +set OPENSSLBIN=buildsslasm %1 +@if "%usesdk%" == "1" ( + call %PSDK5%\SetEnv /XP32 /RETAIL +) else ( + call %MSVS8VC%\vcvars32 +) +goto cmdBuild + +:cpuAMD64 +set CPU=AMD64 +set OPENSSLBIN=buildsslamd64 %1 +@if "%usesdk%" == "1" ( + call %PSDK5%\SetEnv /X64 /RETAIL +) else ( + call %MSVS8VC%\amd64\vcvarsamd64 +) +goto cmdBuild + +:cpuIA64 +set CPU=IA64 +set OPENSSLBIN=buildsslia64 %1 +@if "%usesdk%" == "1" ( + call %PSDK5%\SetEnv /SRV64 /RETAIL +) else ( + call %MSVS8VC%\amd64\vcvarsamd64 +) +goto cmdBuild + +:cmdBuild +cd srclib/openssl-%OPENSSLVER% +call %OPENSSLBIN% %1 +cd .. +cd apr-%APRVER% +nmake -f NMAKEMakefile %FLAVOR%=1 +cd .. +cd .. +nmake -f NMAKEMakefile %FLAVOR%=1 +nmake -f NMAKEMakefile %FLAVOR%=1 install + +:cmdEnd Property changes on: labs/jbossweb/trunk/src/share/native/build/buildworld.bat ___________________________________________________________________ Name: svn:eol-style + native Property changes on: labs/jbossweb/trunk/src/share/native/build/patch/libxml2-2.6.24.patch ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/php5servlet/NMAKEmakefile =================================================================== --- labs/jbossweb/trunk/src/share/native/php5servlet/NMAKEmakefile 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/php5servlet/NMAKEmakefile 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,87 +1,87 @@ -# Copyright 2001-2006 The Apache Software Foundation or its licensors, as -# applicable. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ==================================================================== -# -# NMAKEmakefile Master PHP5 Servlet SAPI makefile. -# Usage: -# DEBUG=1 Build DEBUG version of TCN -# -# Originally contributed by Mladen Turk <mturk jboss.com> -# -# ==================================================================== -# - -TARGET = DLL -BUILDIR_EXT = DLL -PROJECT = php5servlet -PHP5_LIB = php5ts.lib - -!include <../build/NMAKEcommon.inc> - -CFLAGS = $(CFLAGS) -DPHP5SERVLET_EXPORTS -DZTS -DZEND_WIN32 -DPHP_WIN32 - -!IFDEF DEBUG -CFLAGS = $(CFLAGS) -DZEND_DEBUG=1 -!ELSE -CFLAGS = $(CFLAGS) -DZEND_DEBUG=0 -!ENDIF - -!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == "" -SRCDIR = . -!ENDIF - -INCLUDES = -I$(SRCDIR)/include $(JAVA_INCLUDES) - -!IFNDEF WITH_PHP5 -WITH_PHP5 = ../srclib/php -!ENDIF - -INCLUDES = $(INCLUDES) -I$(WITH_PHP5)/include/php -I$(WITH_PHP5)/include/php/win32 \ - -I$(WITH_PHP5)/include/php/Zend -I$(WITH_PHP5)/include/php/main -I$(WITH_PHP5)/include/php/TSRM - -LDIRS = /libpath:"$(WITH_PHP5)/dev" -LFLAGS = $(LFLAGS) $(PHP5_LIB) -LFLAGS = $(LFLAGS) user32.lib - -PDBFLAGS = -Fo$(BUILDIR)\ -Fd$(BUILDIR)\$(PROJECT)-src -OBJECTS = \ - $(BUILDIR)\php5servlet.obj - -BUILDLIB = $(BUILDIR)\$(PROJECT).dll -BUILDPDB = $(BUILDIR)\$(PROJECT).pdb -BUILDRES = $(BUILDIR)\$(PROJECT).res -BUILDMAN = $(BUILDLIB).manifest - -all : $(BUILDIR) $(BUILDLIB) - -$(BUILDIR) : - @$(MAKETARGET) - -{$(SRCDIR)}.c{$(BUILDIR)}.obj: - $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< - -$(OBJECTS): $(SRCDIR)/*.c - -$(BUILDRES): $(SRCDIR)/php5servlet.rc - $(RC) $(RCFLAGS) /fo $(BUILDRES) $(SRCDIR)/php5servlet.rc - -$(BUILDLIB): $(BUILDIR) $(OBJECTS) $(BUILDRES) - $(LINK) $(LFLAGS) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDLIB) - IF EXIST $(BUILDMAN) \ - mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDLIB);2 - -clean: - @$(CLEANTARGET) +# Copyright 2001-2006 The Apache Software Foundation or its licensors, as +# applicable. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ==================================================================== +# +# NMAKEmakefile Master PHP5 Servlet SAPI makefile. +# Usage: +# DEBUG=1 Build DEBUG version of TCN +# +# Originally contributed by Mladen Turk <mturk jboss.com> +# +# ==================================================================== +# + +TARGET = DLL +BUILDIR_EXT = DLL +PROJECT = php5servlet +PHP5_LIB = php5ts.lib + +!include <../build/NMAKEcommon.inc> + +CFLAGS = $(CFLAGS) -DPHP5SERVLET_EXPORTS -DZTS -DZEND_WIN32 -DPHP_WIN32 + +!IFDEF DEBUG +CFLAGS = $(CFLAGS) -DZEND_DEBUG=1 +!ELSE +CFLAGS = $(CFLAGS) -DZEND_DEBUG=0 +!ENDIF + +!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == "" +SRCDIR = . +!ENDIF + +INCLUDES = -I$(SRCDIR)/include $(JAVA_INCLUDES) + +!IFNDEF WITH_PHP5 +WITH_PHP5 = ../srclib/php +!ENDIF + +INCLUDES = $(INCLUDES) -I$(WITH_PHP5)/include/php -I$(WITH_PHP5)/include/php/win32 \ + -I$(WITH_PHP5)/include/php/Zend -I$(WITH_PHP5)/include/php/main -I$(WITH_PHP5)/include/php/TSRM + +LDIRS = /libpath:"$(WITH_PHP5)/dev" +LFLAGS = $(LFLAGS) $(PHP5_LIB) +LFLAGS = $(LFLAGS) user32.lib + +PDBFLAGS = -Fo$(BUILDIR)\ -Fd$(BUILDIR)\$(PROJECT)-src +OBJECTS = \ + $(BUILDIR)\php5servlet.obj + +BUILDLIB = $(BUILDIR)\$(PROJECT).dll +BUILDPDB = $(BUILDIR)\$(PROJECT).pdb +BUILDRES = $(BUILDIR)\$(PROJECT).res +BUILDMAN = $(BUILDLIB).manifest + +all : $(BUILDIR) $(BUILDLIB) + +$(BUILDIR) : + @$(MAKETARGET) + +{$(SRCDIR)}.c{$(BUILDIR)}.obj: + $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< + +$(OBJECTS): $(SRCDIR)/*.c + +$(BUILDRES): $(SRCDIR)/php5servlet.rc + $(RC) $(RCFLAGS) /fo $(BUILDRES) $(SRCDIR)/php5servlet.rc + +$(BUILDLIB): $(BUILDIR) $(OBJECTS) $(BUILDRES) + $(LINK) $(LFLAGS) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDLIB) + IF EXIST $(BUILDMAN) \ + mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDLIB);2 + +clean: + @$(CLEANTARGET) Property changes on: labs/jbossweb/trunk/src/share/native/php5servlet/NMAKEmakefile ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.rc =================================================================== --- labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.rc 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.rc 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,80 +1,80 @@ -/* - * JBoss, the OpenSource webOS - * - * Distributable under LGPL license. - * See terms of license at gnu.org. - */ - -#include <windows.h> - -#define PRODUCT_VER_STRING "1.0.1.0\0" - -#define STR_COPYRIGHT "Copyright 2006 JBoss inc. " \ - "or its licensors, as applicable." - -#define STR_LICENSE "Distributable under LGPL license. " \ - "See terms of license at gnu.org." - -#define STR_COMPANY "JBoss, Inc." -#define STR_TRADEMARK " JBoss Inc." -#define STR_PRODUCT "PHP5 Servlet SAPI" -#define STR_VERISON "1.0.1.0" -#define CSV_VERISON 1,0,1,0 - -#define PRIVATE_BUILD 0 -#define PRERELEASE_BUILD 0 - -#if PRIVATE_BUILD -#define STR_PRIVATE "Initial Prerelease" -#define STR_SPECIAL "Basic functionality" -#define STD_FILEFLAGS VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD -#else -#define STD_FILEFLAGS 0x0L -#endif - -#if RERELEASE_BUILD -#define PSTD_FILEFLAGS STD_FILEFLAGS | VS_FF_PRERELEASE -#else -#define PSTD_FILEFLAGS STD_FILEFLAGS -#endif - -#ifdef _DEBUG -#define APP_FILEFLAGS STD_FILEFLAGS | VS_FF_DEBUG -#else -#define APP_FILEFLAGS STD_FILEFLAGS -#endif - -1 VERSIONINFO - FILEVERSION CSV_VERISON - PRODUCTVERSION CSV_VERISON - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK - FILEFLAGS APP_FILEFLAGS - FILEOS VOS_NT - FILETYPE VFT_DLL - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", STR_LICENSE "\0" - VALUE "CompanyName", STR_COMPANY "\0" - VALUE "FileDescription", "PHP5 Servlet SAPI Module\0" - VALUE "FileVersion", STR_VERISON "\0" - VALUE "InternalName", "php5servlet" - VALUE "LegalCopyright", STR_COPYRIGHT "\0" - VALUE "LegalTrademarks", STR_TRADEMARK "\0" - VALUE "OriginalFilename", "php5servlet.dll" - VALUE "ProductName", STR_PRODUCT "\0" - VALUE "ProductVersion", STR_VERISON "\0" -#if PRIVATE_BUILD - VALUE "PrivateBuild", STR_PRIVATE "\0" - VALUE "SpecialBuild", STR_SPECIAL "\0" -#endif - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END +/* + * JBoss, the OpenSource webOS + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ + +#include <windows.h> + +#define PRODUCT_VER_STRING "1.0.1.0\0" + +#define STR_COPYRIGHT "Copyright 2006 JBoss inc. " \ + "or its licensors, as applicable." + +#define STR_LICENSE "Distributable under LGPL license. " \ + "See terms of license at gnu.org." + +#define STR_COMPANY "JBoss, Inc." +#define STR_TRADEMARK " JBoss Inc." +#define STR_PRODUCT "PHP5 Servlet SAPI" +#define STR_VERISON "1.0.1.0" +#define CSV_VERISON 1,0,1,0 + +#define PRIVATE_BUILD 0 +#define PRERELEASE_BUILD 0 + +#if PRIVATE_BUILD +#define STR_PRIVATE "Initial Prerelease" +#define STR_SPECIAL "Basic functionality" +#define STD_FILEFLAGS VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD +#else +#define STD_FILEFLAGS 0x0L +#endif + +#if RERELEASE_BUILD +#define PSTD_FILEFLAGS STD_FILEFLAGS | VS_FF_PRERELEASE +#else +#define PSTD_FILEFLAGS STD_FILEFLAGS +#endif + +#ifdef _DEBUG +#define APP_FILEFLAGS STD_FILEFLAGS | VS_FF_DEBUG +#else +#define APP_FILEFLAGS STD_FILEFLAGS +#endif + +1 VERSIONINFO + FILEVERSION CSV_VERISON + PRODUCTVERSION CSV_VERISON + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS APP_FILEFLAGS + FILEOS VOS_NT + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", STR_LICENSE "\0" + VALUE "CompanyName", STR_COMPANY "\0" + VALUE "FileDescription", "PHP5 Servlet SAPI Module\0" + VALUE "FileVersion", STR_VERISON "\0" + VALUE "InternalName", "php5servlet" + VALUE "LegalCopyright", STR_COPYRIGHT "\0" + VALUE "LegalTrademarks", STR_TRADEMARK "\0" + VALUE "OriginalFilename", "php5servlet.dll" + VALUE "ProductName", STR_PRODUCT "\0" + VALUE "ProductVersion", STR_VERISON "\0" +#if PRIVATE_BUILD + VALUE "PrivateBuild", STR_PRIVATE "\0" + VALUE "SpecialBuild", STR_SPECIAL "\0" +#endif + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END Property changes on: labs/jbossweb/trunk/src/share/native/php5servlet/php5servlet.rc ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslamd64.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslamd64.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslamd64.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,31 +1,31 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ -REM -REM -REM call vsvars32 -REM -@if "%OS%" == "Windows_NT" setlocal -@rmdir /S /Q out32 -@rmdir /S /Q out32dll -@rmdir /S /Q tmp32 -@rmdir /S /Q tmp32dll - -perl Configure VC-WIN64A -call ms\do_win64a - -@if "%1" == "dll" goto DLL -@goto LIB -:DLL -nmake -f ms\ntdll.mak -@goto END -:LIB -nmake -f ms\nt.mak -:END +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ +REM +REM +REM call vsvars32 +REM +@if "%OS%" == "Windows_NT" setlocal +@rmdir /S /Q out32 +@rmdir /S /Q out32dll +@rmdir /S /Q tmp32 +@rmdir /S /Q tmp32dll + +perl Configure VC-WIN64A +call ms\do_win64a + +@if "%1" == "dll" goto DLL +@goto LIB +:DLL +nmake -f ms\ntdll.mak +@goto END +:LIB +nmake -f ms\nt.mak +:END Property changes on: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslamd64.bat ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslasm.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslasm.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslasm.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,31 +1,31 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ -REM -REM -REM call vsvars32 -REM -@if "%OS%" == "Windows_NT" setlocal -@rmdir /S /Q out32 -@rmdir /S /Q out32dll -@rmdir /S /Q tmp32 -@rmdir /S /Q tmp32dll - -perl Configure VC-NT -call ms\do_masm - -@if "%1" == "dll" goto DLL -@goto LIB -:DLL -nmake -f ms\ntdll.mak -@goto END -:LIB -nmake -f ms\nt.mak -:END +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ +REM +REM +REM call vsvars32 +REM +@if "%OS%" == "Windows_NT" setlocal +@rmdir /S /Q out32 +@rmdir /S /Q out32dll +@rmdir /S /Q tmp32 +@rmdir /S /Q tmp32dll + +perl Configure VC-NT +call ms\do_masm + +@if "%1" == "dll" goto DLL +@goto LIB +:DLL +nmake -f ms\ntdll.mak +@goto END +:LIB +nmake -f ms\nt.mak +:END Property changes on: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslasm.bat ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslia64.bat =================================================================== --- labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslia64.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslia64.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,31 +1,31 @@ -@echo off -REM -REM JBoss, the OpenSource J2EE webOS -REM -REM Distributable under LGPL license. -REM See terms of license at gnu.org. -REM -REM -REM @author Mladen Turk -REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ -REM -REM -REM call vsvars32 -REM -@if "%OS%" == "Windows_NT" setlocal -@rmdir /S /Q out32 -@rmdir /S /Q out32dll -@rmdir /S /Q tmp32 -@rmdir /S /Q tmp32dll - -perl Configure VC-WIN64I -call ms\do_win64i - -@if "%1" == "dll" goto DLL -@goto LIB -:DLL -nmake -f ms\ntdll.mak -@goto END -:LIB -nmake -f ms\nt.mak -:END +@echo off +REM +REM JBoss, the OpenSource J2EE webOS +REM +REM Distributable under LGPL license. +REM See terms of license at gnu.org. +REM +REM +REM @author Mladen Turk +REM @version $Revision: 1.0 $, $Date: 2005/07/12 14:56:09 $ +REM +REM +REM call vsvars32 +REM +@if "%OS%" == "Windows_NT" setlocal +@rmdir /S /Q out32 +@rmdir /S /Q out32dll +@rmdir /S /Q tmp32 +@rmdir /S /Q tmp32dll + +perl Configure VC-WIN64I +call ms\do_win64i + +@if "%1" == "dll" goto DLL +@goto LIB +:DLL +nmake -f ms\ntdll.mak +@goto END +:LIB +nmake -f ms\nt.mak +:END Property changes on: labs/jbossweb/trunk/src/share/native/srclib/openssl/buildsslia64.bat ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/resources/ROOT.war/index.jsp =================================================================== --- labs/jbossweb/trunk/src/share/resources/ROOT.war/index.jsp 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/resources/ROOT.war/index.jsp 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,81 +1,81 @@ -<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <title><%= application.getServerInfo() %></title> - <meta name="author" value="Mladen Turk"> - <link href="style.css" type="text/css" rel="stylesheet"> - </head> -<body> - <table border="0" width="100%" cellspacing="4"> - <tr> - <td colspan="2"> - <a href="http://www.jboss.com/"><img src="images/jbosslogo.gif" align="left" alt="JBoss Inc." border="0"></a> - <a href="http://labs.jboss.com/portal/index.html?ctrl:id=page.default.info&project=jbossweb"><img src="images/jbossweblogo.gif" align="right" alt="JBossWeb @ JBoss labs" border="0"></a> - </td> - </tr> - <tr> - <td colspan="2"><hr noshade="noshade" size="1"> - </td> - </tr> - <tr> - <td width="80%" valign="top" align="left"> - <table border="0" cellspacing="0" cellpadding="0" width="100%"> - <tr> - <td class="section" colspan="2"><a name="Version"><%= application.getServerInfo() %></a></td></tr><tr><td width="20px"> - </td> - <td><br> -<p><div align="center"><h1>It works!</h1></div> -</p> -<br> -<p> -JBoss Web Server is an enterprise ready web server designed for medium -and large applications, based on the -<a href="http://tomcat.apache.org">Apache Tomcat</a>. It is meant to -be used as a replacement for the standard Web servers on all major -platforms. JBoss Web Server provides organizations with a single -deployment platform for Java Server Pages (JSP) and Java Servlet -technologies, Microsoft .NET, PHP, and CGI. It uses a genuine high -performance hybrid technology that incorporates the best of the most -recent OS technologies for processing high volume data, while keeping -all the reference Java specifications. It supports both in and out of -the process execution of CGI and PHP scripts, as well as .NET applications. -The hybrid technology model offers the best from threading and event -processing models, and that makes the JBoss Web Server one of the fastest -and most scalable web servers in the market. -</p> -<br> -<br> -<p> - <ul> - <li><a href="/status">Server Status</a></li> - <li><a href="/status?full=true">Full Server Status</a></li> - <li><a href="/jmx-console/">JMX Console</a></li> - <li><a href="/web-console/">JBoss Web Console</a></li> - </ul> -</p> -<br> -<br> -<p> -<div align="center"> -<img src="images/jboss_ics.gif" alt="" border="0"> -<img src="images/tomcat_pb.gif" alt="" border="0"> -<img src="images/openssl_ics.gif" alt="" border="0"> -<img src="images/jbweb_pb.gif" alt="" border="0"> -</div> -</p> -</td> -</tr> -</table> -</td> -</tr> -<tr> - <td colspan="2"><hr noshade="noshade" size="1"> - </td> -</tr> -<tr> - <td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>Copyright © 2006, JBoss Inc.</em></font></div> - </td> -</tr> -</table> -</body> +<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title><%= application.getServerInfo() %></title> + <meta name="author" value="Mladen Turk"> + <link href="style.css" type="text/css" rel="stylesheet"> + </head> +<body> + <table border="0" width="100%" cellspacing="4"> + <tr> + <td colspan="2"> + <a href="http://www.jboss.com/"><img src="images/jbosslogo.gif" align="left" alt="JBoss Inc." border="0"></a> + <a href="http://labs.jboss.com/portal/index.html?ctrl:id=page.default.info&project=jbossweb"><img src="images/jbossweblogo.gif" align="right" alt="JBossWeb @ JBoss labs" border="0"></a> + </td> + </tr> + <tr> + <td colspan="2"><hr noshade="noshade" size="1"> + </td> + </tr> + <tr> + <td width="80%" valign="top" align="left"> + <table border="0" cellspacing="0" cellpadding="0" width="100%"> + <tr> + <td class="section" colspan="2"><a name="Version"><%= application.getServerInfo() %></a></td></tr><tr><td width="20px"> + </td> + <td><br> +<p><div align="center"><h1>It works!</h1></div> +</p> +<br> +<p> +JBoss Web Server is an enterprise ready web server designed for medium +and large applications, based on the +<a href="http://tomcat.apache.org">Apache Tomcat</a>. It is meant to +be used as a replacement for the standard Web servers on all major +platforms. JBoss Web Server provides organizations with a single +deployment platform for Java Server Pages (JSP) and Java Servlet +technologies, Microsoft .NET, PHP, and CGI. It uses a genuine high +performance hybrid technology that incorporates the best of the most +recent OS technologies for processing high volume data, while keeping +all the reference Java specifications. It supports both in and out of +the process execution of CGI and PHP scripts, as well as .NET applications. +The hybrid technology model offers the best from threading and event +processing models, and that makes the JBoss Web Server one of the fastest +and most scalable web servers in the market. +</p> +<br> +<br> +<p> + <ul> + <li><a href="/status">Server Status</a></li> + <li><a href="/status?full=true">Full Server Status</a></li> + <li><a href="/jmx-console/">JMX Console</a></li> + <li><a href="/web-console/">JBoss Web Console</a></li> + </ul> +</p> +<br> +<br> +<p> +<div align="center"> +<img src="images/jboss_ics.gif" alt="" border="0"> +<img src="images/tomcat_pb.gif" alt="" border="0"> +<img src="images/openssl_ics.gif" alt="" border="0"> +<img src="images/jbweb_pb.gif" alt="" border="0"> +</div> +</p> +</td> +</tr> +</table> +</td> +</tr> +<tr> + <td colspan="2"><hr noshade="noshade" size="1"> + </td> +</tr> +<tr> + <td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>Copyright © 2006, JBoss Inc.</em></font></div> + </td> +</tr> +</table> +</body> </html> \ No newline at end of file Property changes on: labs/jbossweb/trunk/src/share/resources/ROOT.war/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/share/resources/bin/run.bat =================================================================== --- labs/jbossweb/trunk/src/share/resources/bin/run.bat 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/share/resources/bin/run.bat 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,108 +1,108 @@ -@echo off -rem ------------------------------------------------------------------------- -rem JBoss Bootstrap Script for Win32 -rem ------------------------------------------------------------------------- - -rem $Id: run.bat,v 1.13.4.2 2005/05/04 23:05:42 starksm Exp $ - -@if not "%ECHO%" == "" echo %ECHO% -@if "%OS%" == "Windows_NT" setlocal - -set DIRNAME=.\ -if "%OS%" == "Windows_NT" set DIRNAME=%~dp0% -set PROGNAME=run.bat -if "%OS%" == "Windows_NT" set PROGNAME=%~nx0% - -set PATH=%DIRNAME%\native;%PATH% -rem Read all command line arguments - -REM -REM The %ARGS% env variable commented out in favor of using %* to include -REM all args in java command line. See bug #840239. [jpl] -REM -REM set ARGS= -REM :loop -REM if [%1] == [] goto endloop -REM set ARGS=%ARGS% %1 -REM shift -REM goto loop -REM :endloop - -rem Find run.jar, or we can't continue - -set RUNJAR=%DIRNAME%\run.jar -if exist "%RUNJAR%" goto FOUND_RUN_JAR -echo Could not locate %RUNJAR%. Please check that you are in the -echo bin directory when running this script. -goto END - -:FOUND_RUN_JAR - -if not "%JAVA_HOME%" == "" goto ADD_TOOLS - -set JAVA=java - -echo JAVA_HOME is not set. Unexpected results may occur. -echo Set JAVA_HOME to the directory of your local JDK to avoid this message. -goto SKIP_TOOLS - -:ADD_TOOLS - -set JAVA=%JAVA_HOME%\bin\java - -if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS -echo Could not locate %JAVA_HOME%\lib\tools.jar. Unexpected results may occur. -echo Make sure that JAVA_HOME points to a JDK and not a JRE. - -:SKIP_TOOLS - -rem Include the JDK javac compiler for JSP pages. The default is for a Sun JDK -rem compatible distribution to which JAVA_HOME points - -set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar - -rem If JBOSS_CLASSPATH is empty, don't include it, as this will -rem result in including the local directory, which makes error tracking -rem harder. -if "%JBOSS_CLASSPATH%" == "" ( - set JBOSS_CLASSPATH=%JAVAC_JAR%;%RUNJAR% -) ELSE ( - set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JAVAC_JAR%;%RUNJAR% -) - -rem Setup JBoss specific properties -set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% -set JBOSS_HOME=%DIRNAME%\.. - -rem Sun JVM memory allocation pool parameters. Modify as appropriate. -set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m - -rem JPDA options. Uncomment and modify as appropriate to enable remote debugging. -rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% - -rem Setup the java endorsed dirs -set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed - -echo =============================================================================== -echo . -echo JBoss Bootstrap Environment -echo . -echo JBOSS_HOME: %JBOSS_HOME% -echo . -echo JAVA: %JAVA% -echo . -echo JAVA_OPTS: %JAVA_OPTS% -echo . -echo CLASSPATH: %JBOSS_CLASSPATH% -echo . -echo =============================================================================== -echo . - -:RESTART -"%JAVA%" %JAVA_OPTS% "-Djava.endorsed.dirs=%JBOSS_ENDORSED_DIRS%" -classpath "%JBOSS_CLASSPATH%" org.jboss.Main %* -IF ERRORLEVEL 10 GOTO RESTART - -:END -if "%NOPAUSE%" == "" pause - -:END_NO_PAUSE +@echo off +rem ------------------------------------------------------------------------- +rem JBoss Bootstrap Script for Win32 +rem ------------------------------------------------------------------------- + +rem $Id: run.bat,v 1.13.4.2 2005/05/04 23:05:42 starksm Exp $ + +@if not "%ECHO%" == "" echo %ECHO% +@if "%OS%" == "Windows_NT" setlocal + +set DIRNAME=.\ +if "%OS%" == "Windows_NT" set DIRNAME=%~dp0% +set PROGNAME=run.bat +if "%OS%" == "Windows_NT" set PROGNAME=%~nx0% + +set PATH=%DIRNAME%\native;%PATH% +rem Read all command line arguments + +REM +REM The %ARGS% env variable commented out in favor of using %* to include +REM all args in java command line. See bug #840239. [jpl] +REM +REM set ARGS= +REM :loop +REM if [%1] == [] goto endloop +REM set ARGS=%ARGS% %1 +REM shift +REM goto loop +REM :endloop + +rem Find run.jar, or we can't continue + +set RUNJAR=%DIRNAME%\run.jar +if exist "%RUNJAR%" goto FOUND_RUN_JAR +echo Could not locate %RUNJAR%. Please check that you are in the +echo bin directory when running this script. +goto END + +:FOUND_RUN_JAR + +if not "%JAVA_HOME%" == "" goto ADD_TOOLS + +set JAVA=java + +echo JAVA_HOME is not set. Unexpected results may occur. +echo Set JAVA_HOME to the directory of your local JDK to avoid this message. +goto SKIP_TOOLS + +:ADD_TOOLS + +set JAVA=%JAVA_HOME%\bin\java + +if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS +echo Could not locate %JAVA_HOME%\lib\tools.jar. Unexpected results may occur. +echo Make sure that JAVA_HOME points to a JDK and not a JRE. + +:SKIP_TOOLS + +rem Include the JDK javac compiler for JSP pages. The default is for a Sun JDK +rem compatible distribution to which JAVA_HOME points + +set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar + +rem If JBOSS_CLASSPATH is empty, don't include it, as this will +rem result in including the local directory, which makes error tracking +rem harder. +if "%JBOSS_CLASSPATH%" == "" ( + set JBOSS_CLASSPATH=%JAVAC_JAR%;%RUNJAR% +) ELSE ( + set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JAVAC_JAR%;%RUNJAR% +) + +rem Setup JBoss specific properties +set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% +set JBOSS_HOME=%DIRNAME%\.. + +rem Sun JVM memory allocation pool parameters. Modify as appropriate. +set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m + +rem JPDA options. Uncomment and modify as appropriate to enable remote debugging. +rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS% + +rem Setup the java endorsed dirs +set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed + +echo =============================================================================== +echo . +echo JBoss Bootstrap Environment +echo . +echo JBOSS_HOME: %JBOSS_HOME% +echo . +echo JAVA: %JAVA% +echo . +echo JAVA_OPTS: %JAVA_OPTS% +echo . +echo CLASSPATH: %JBOSS_CLASSPATH% +echo . +echo =============================================================================== +echo . + +:RESTART +"%JAVA%" %JAVA_OPTS% "-Djava.endorsed.dirs=%JBOSS_ENDORSED_DIRS%" -classpath "%JBOSS_CLASSPATH%" org.jboss.Main %* +IF ERRORLEVEL 10 GOTO RESTART + +:END +if "%NOPAUSE%" == "" pause + +:END_NO_PAUSE Property changes on: labs/jbossweb/trunk/src/share/resources/bin/run.bat ___________________________________________________________________ Name: svn:eol-style - CRLF + native Modified: labs/jbossweb/trunk/src/windows/native/service/jbosssvc/NMAKEmakefile =================================================================== --- labs/jbossweb/trunk/src/windows/native/service/jbosssvc/NMAKEmakefile 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/windows/native/service/jbosssvc/NMAKEmakefile 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,71 +1,71 @@ -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as -# applicable. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ==================================================================== -# -# NMAKEmakefile JBoss Service Make file. -# Usage: -# DEBUG=1 Build DEBUG version -# -# Originally contributed by Mladen Turk <mturk jboss.com> -# -# ==================================================================== -# - -TARGET = EXE -PROJECT = jbosssvc -!include <build/NMAKEcommon.inc> - -!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == "" -SRCDIR = . -!ENDIF - -LFLAGS = $(LFLAGS) user32.lib - -PDBFLAGS = -Fo$(BUILDIR)\ -Fd$(BUILDIR)\$(PROJECT)-src -OBJECTS = \ - $(BUILDIR)\jboss.obj - -BUILDEXE = $(BUILDIR)\$(PROJECT).exe -BUILDPDB = $(BUILDIR)\$(PROJECT).pdb -BUILDRES = $(BUILDIR)\$(PROJECT).res -BUILDMAN = $(BUILDLIB).manifest - -all : $(BUILDIR) $(BUILDEXE) - -$(BUILDIR) : - @$(MAKETARGET) - -{$(SRCDIR)}.c{$(BUILDIR)}.obj: - $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< - -$(BUILDRES): $(SRCDIR)/jboss.rc - $(RC) $(RCFLAGS) /fo $(BUILDRES) $(SRCDIR)/jboss.rc - -$(BUILDEXE): $(BUILDIR) $(OBJECTS) $(BUILDRES) - $(LINK) $(LFLAGS) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDEXE) - IF EXIST $(BUILDMAN) \ - mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDLIB);1 - -clean: - @$(CLEANTARGET) - -!IFNDEF INSTALLDIR -INSTALLDIR = ../../native-builds/windows-%CPU%/bin -!ENDIF - -install: all - @gmkdir -p $(INSTALLDIR) - @cp -f -t $(INSTALLDIR) $(BUILDEXE) +# Copyright 2001-2005 The Apache Software Foundation or its licensors, as +# applicable. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ==================================================================== +# +# NMAKEmakefile JBoss Service Make file. +# Usage: +# DEBUG=1 Build DEBUG version +# +# Originally contributed by Mladen Turk <mturk jboss.com> +# +# ==================================================================== +# + +TARGET = EXE +PROJECT = jbosssvc +!include <build/NMAKEcommon.inc> + +!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == "" +SRCDIR = . +!ENDIF + +LFLAGS = $(LFLAGS) user32.lib + +PDBFLAGS = -Fo$(BUILDIR)\ -Fd$(BUILDIR)\$(PROJECT)-src +OBJECTS = \ + $(BUILDIR)\jboss.obj + +BUILDEXE = $(BUILDIR)\$(PROJECT).exe +BUILDPDB = $(BUILDIR)\$(PROJECT).pdb +BUILDRES = $(BUILDIR)\$(PROJECT).res +BUILDMAN = $(BUILDLIB).manifest + +all : $(BUILDIR) $(BUILDEXE) + +$(BUILDIR) : + @$(MAKETARGET) + +{$(SRCDIR)}.c{$(BUILDIR)}.obj: + $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< + +$(BUILDRES): $(SRCDIR)/jboss.rc + $(RC) $(RCFLAGS) /fo $(BUILDRES) $(SRCDIR)/jboss.rc + +$(BUILDEXE): $(BUILDIR) $(OBJECTS) $(BUILDRES) + $(LINK) $(LFLAGS) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDEXE) + IF EXIST $(BUILDMAN) \ + mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDLIB);1 + +clean: + @$(CLEANTARGET) + +!IFNDEF INSTALLDIR +INSTALLDIR = ../../native-builds/windows-%CPU%/bin +!ENDIF + +install: all + @gmkdir -p $(INSTALLDIR) + @cp -f -t $(INSTALLDIR) $(BUILDEXE) Property changes on: labs/jbossweb/trunk/src/windows/native/service/jbosssvc/NMAKEmakefile ___________________________________________________________________ Name: svn:eol-style + native Modified: labs/jbossweb/trunk/src/windows/native/service/jbosssvc/jboss.rc =================================================================== --- labs/jbossweb/trunk/src/windows/native/service/jbosssvc/jboss.rc 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/src/windows/native/service/jbosssvc/jboss.rc 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,86 +1,86 @@ -/* - * JBoss, the OpenSource webOS - * - * Distributable under LGPL license. - * See terms of license at gnu.org. - */ - -#include <windows.h> - -#define PRODUCT_VER_STRING "1.0.1.0\0" - -#define STR_COPYRIGHT "Copyright 2006 JBoss inc. " \ - "or its licensors, as applicable." - -#define STR_LICENSE "Distributable under LGPL license. " \ - "See terms of license at gnu.org." - -#define STR_COMPANY "JBoss, Inc." -#define STR_TRADEMARK " JBoss Inc." -#define STR_PRODUCT "JBoss Service" -#define STR_VERISON "1.0.1.0" -#define CSV_VERISON 1,0,1,0 - -#define PRIVATE_BUILD 0 -#define PRERELEASE_BUILD 0 - -#if PRIVATE_BUILD -#define STR_PRIVATE "Initial Prerelease" -#define STR_SPECIAL "Basic functionality" -#define STD_FILEFLAGS VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD -#else -#define STD_FILEFLAGS 0x0L -#endif - -#if RERELEASE_BUILD -#define PSTD_FILEFLAGS STD_FILEFLAGS | VS_FF_PRERELEASE -#else -#define PSTD_FILEFLAGS STD_FILEFLAGS -#endif - -#ifdef _DEBUG -#define APP_FILEFLAGS STD_FILEFLAGS | VS_FF_DEBUG -#else -#define APP_FILEFLAGS STD_FILEFLAGS -#endif - - -IDI_MAINICON ICON "jboss.ico" - -LANGUAGE 0x9,0x1 -1 11 MSG00001.bin - - 1 VERSIONINFO - FILEVERSION CSV_VERISON - PRODUCTVERSION CSV_VERISON - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK - FILEFLAGS APP_FILEFLAGS - FILEOS VOS_NT - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", STR_LICENSE "\0" - VALUE "CompanyName", STR_COMPANY "\0" - VALUE "FileDescription", "JBoss NT service runner\0" - VALUE "FileVersion", STR_VERISON "\0" - VALUE "InternalName", "jbosssvc" - VALUE "LegalCopyright", STR_COPYRIGHT "\0" - VALUE "LegalTrademarks", STR_TRADEMARK "\0" - VALUE "OriginalFilename", "jbosssvc.exe" - VALUE "ProductName", STR_PRODUCT "\0" - VALUE "ProductVersion", STR_VERISON "\0" -#if PRIVATE_BUILD - VALUE "PrivateBuild", STR_PRIVATE "\0" - VALUE "SpecialBuild", STR_SPECIAL "\0" -#endif - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END +/* + * JBoss, the OpenSource webOS + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ + +#include <windows.h> + +#define PRODUCT_VER_STRING "1.0.1.0\0" + +#define STR_COPYRIGHT "Copyright 2006 JBoss inc. " \ + "or its licensors, as applicable." + +#define STR_LICENSE "Distributable under LGPL license. " \ + "See terms of license at gnu.org." + +#define STR_COMPANY "JBoss, Inc." +#define STR_TRADEMARK " JBoss Inc." +#define STR_PRODUCT "JBoss Service" +#define STR_VERISON "1.0.1.0" +#define CSV_VERISON 1,0,1,0 + +#define PRIVATE_BUILD 0 +#define PRERELEASE_BUILD 0 + +#if PRIVATE_BUILD +#define STR_PRIVATE "Initial Prerelease" +#define STR_SPECIAL "Basic functionality" +#define STD_FILEFLAGS VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD +#else +#define STD_FILEFLAGS 0x0L +#endif + +#if RERELEASE_BUILD +#define PSTD_FILEFLAGS STD_FILEFLAGS | VS_FF_PRERELEASE +#else +#define PSTD_FILEFLAGS STD_FILEFLAGS +#endif + +#ifdef _DEBUG +#define APP_FILEFLAGS STD_FILEFLAGS | VS_FF_DEBUG +#else +#define APP_FILEFLAGS STD_FILEFLAGS +#endif + + +IDI_MAINICON ICON "jboss.ico" + +LANGUAGE 0x9,0x1 +1 11 MSG00001.bin + + 1 VERSIONINFO + FILEVERSION CSV_VERISON + PRODUCTVERSION CSV_VERISON + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS APP_FILEFLAGS + FILEOS VOS_NT + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", STR_LICENSE "\0" + VALUE "CompanyName", STR_COMPANY "\0" + VALUE "FileDescription", "JBoss NT service runner\0" + VALUE "FileVersion", STR_VERISON "\0" + VALUE "InternalName", "jbosssvc" + VALUE "LegalCopyright", STR_COPYRIGHT "\0" + VALUE "LegalTrademarks", STR_TRADEMARK "\0" + VALUE "OriginalFilename", "jbosssvc.exe" + VALUE "ProductName", STR_PRODUCT "\0" + VALUE "ProductVersion", STR_VERISON "\0" +#if PRIVATE_BUILD + VALUE "PrivateBuild", STR_PRIVATE "\0" + VALUE "SpecialBuild", STR_SPECIAL "\0" +#endif + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END Property changes on: labs/jbossweb/trunk/src/windows/native/service/jbosssvc/jboss.rc ___________________________________________________________________ Name: svn:eol-style - CRLF + native Modified: labs/jbossweb/trunk/xdocs/install/service.xml =================================================================== --- labs/jbossweb/trunk/xdocs/install/service.xml 2006-05-22 17:40:21 UTC (rev 4352) +++ labs/jbossweb/trunk/xdocs/install/service.xml 2006-05-22 17:43:12 UTC (rev 4353) @@ -1,92 +1,92 @@ -<?xml version="1.0"?> -<!DOCTYPE document [ - <!ENTITY project SYSTEM "project.xml"> -]> -<document url="service.html"> - &project; - <properties> - <author email="mla...@jb...">Mladen Turk</author> - <title>Windows service</title> - </properties> - - <body> - <section name="Overview"> - <br/> - <p>JBoss Web comes with Windows service executable that can run JBoss Web Server - as service. - </p> - <p>The service executable <code>jbosssvc.exe</code> transforms the <code>run.bat</code> - and <code>shutdown.bat</code> batch scripts to services. This means that any change - made to those scripts will be used both in service and command line mode. - </p> - <subsection name="Installing service"> - <p>To install the JBoss Web server as Windows service use the provided - <code>service.bat</code> batch file - </p> - <screen> - <note>Change directory to the JBossWeb bin directory</note> - <typedos>cd c:\jbossweb-4.0.4RC1-windows-i586\bin</typedos> - <note>Install the service</note> - <typedos>service.bat install</typedos> - </screen> - </subsection> - - <subsection name="Starting the service"> - <p>To start the JBoss Web server as Windows service use Control pannel or - <code>net start</code> command. - </p> - <screen> - <note>Start the service</note> - <typedos>net start JBossWebServer</typedos> - <note>The JBoss Web Server 4 service is starting.</note> - <note>The JBoss Web Server 4 service was started successfully.</note> - </screen> - <p>When running in service mode the console output is redirected to the - file <code>run.log</code>. You can inspect the file for any errors during - service startup. - </p> - </subsection> - - <subsection name="Stopping the service"> - <p>To stop the JBoss Web server as Windows service use Control pannel or - <code>net stop</code> command. - </p> - <screen> - <note>Stop the service</note> - <typedos>net stop JBossWebServer</typedos> - <note>The JBoss Web Server 4 service was stopped successfully.</note> - </screen> - <p>When running in service mode the console output is redirected to the - file <code>shutdown.log</code>. You can inspect the file for any errors during - service shutdown. - </p> - </subsection> - - <subsection name="Restarting the service"> - <p>To restart the JBoss Web server as Windows service use Control pannel. - </p> - </subsection> - - <subsection name="Removing service"> - <p>To remove the JBoss Web server as Windows service use the provided - <code>service.bat</code> batch file. - </p> - <screen> - <note>Change directory to the JBossWeb bin directory</note> - <typedos>cd c:\jbossweb-4.0.4RC1-windows-i586\bin</typedos> - <note>Remove the service</note> - <typedos>service.bat uninstall</typedos> - </screen> - </subsection> - - </section> - <section name="Customization"> - <br/> - <p>Service customization is done by editing the service.bat script. - Each command has a separate section that you can customize. The most - common customization task would be changing service names if more then - one service instances per box are required. - </p> - </section> - </body> -</document> +<?xml version="1.0"?> +<!DOCTYPE document [ + <!ENTITY project SYSTEM "project.xml"> +]> +<document url="service.html"> + &project; + <properties> + <author email="mla...@jb...">Mladen Turk</author> + <title>Windows service</title> + </properties> + + <body> + <section name="Overview"> + <br/> + <p>JBoss Web comes with Windows service executable that can run JBoss Web Server + as service. + </p> + <p>The service executable <code>jbosssvc.exe</code> transforms the <code>run.bat</code> + and <code>shutdown.bat</code> batch scripts to services. This means that any change + made to those scripts will be used both in service and command line mode. + </p> + <subsection name="Installing service"> + <p>To install the JBoss Web server as Windows service use the provided + <code>service.bat</code> batch file + </p> + <screen> + <note>Change directory to the JBossWeb bin directory</note> + <typedos>cd c:\jbossweb-4.0.4RC1-windows-i586\bin</typedos> + <note>Install the service</note> + <typedos>service.bat install</typedos> + </screen> + </subsection> + + <subsection name="Starting the service"> + <p>To start the JBoss Web server as Windows service use Control pannel or + <code>net start</code> command. + </p> + <screen> + <note>Start the service</note> + <typedos>net start JBossWebServer</typedos> + <note>The JBoss Web Server 4 service is starting.</note> + <note>The JBoss Web Server 4 service was started successfully.</note> + </screen> + <p>When running in service mode the console output is redirected to the + file <code>run.log</code>. You can inspect the file for any errors during + service startup. + </p> + </subsection> + + <subsection name="Stopping the service"> + <p>To stop the JBoss Web server as Windows service use Control pannel or + <code>net stop</code> command. + </p> + <screen> + <note>Stop the service</note> + <typedos>net stop JBossWebServer</typedos> + <note>The JBoss Web Server 4 service was stopped successfully.</note> + </screen> + <p>When running in service mode the console output is redirected to the + file <code>shutdown.log</code>. You can inspect the file for any errors during + service shutdown. + </p> + </subsection> + + <subsection name="Restarting the service"> + <p>To restart the JBoss Web server as Windows service use Control pannel. + </p> + </subsection> + + <subsection name="Removing service"> + <p>To remove the JBoss Web server as Windows service use the provided + <code>service.bat</code> batch file. + </p> + <screen> + <note>Change directory to the JBossWeb bin directory</note> + <typedos>cd c:\jbossweb-4.0.4RC1-windows-i586\bin</typedos> + <note>Remove the service</note> + <typedos>service.bat uninstall</typedos> + </screen> + </subsection> + + </section> + <section name="Customization"> + <br/> + <p>Service customization is done by editing the service.bat script. + Each command has a separate section that you can customize. The most + common customization task would be changing service names if more then + one service instances per box are required. + </p> + </section> + </body> +</document> Property changes on: labs/jbossweb/trunk/xdocs/install/service.xml ___________________________________________________________________ Name: svn:eol-style + native |
From: <jbo...@li...> - 2006-05-22 17:40:28
|
Author: mla...@jb... Date: 2006-05-22 13:40:21 -0400 (Mon, 22 May 2006) New Revision: 4352 Modified: labs/jbossweb/branches/dotnet/README Log: EOL Native Modified: labs/jbossweb/branches/dotnet/README =================================================================== --- labs/jbossweb/branches/dotnet/README 2006-05-22 17:39:28 UTC (rev 4351) +++ labs/jbossweb/branches/dotnet/README 2006-05-22 17:40:21 UTC (rev 4352) @@ -1 +1 @@ -JBoss Web Server .NET Module repository +JBoss Web Server .NET Module repository Property changes on: labs/jbossweb/branches/dotnet/README ___________________________________________________________________ Name: svn:eol-style + native |
From: <jbo...@li...> - 2006-05-22 17:39:39
|
Author: mla...@jb... Date: 2006-05-22 13:39:28 -0400 (Mon, 22 May 2006) New Revision: 4351 Added: labs/jbossweb/branches/sandbox/README Log: Init sandbox Added: labs/jbossweb/branches/sandbox/README =================================================================== --- labs/jbossweb/branches/sandbox/README 2006-05-22 17:38:55 UTC (rev 4350) +++ labs/jbossweb/branches/sandbox/README 2006-05-22 17:39:28 UTC (rev 4351) @@ -0,0 +1 @@ +JBoss Web Server Sandbox |
From: <jbo...@li...> - 2006-05-22 17:39:09
|
Author: mla...@jb... Date: 2006-05-22 13:38:55 -0400 (Mon, 22 May 2006) New Revision: 4350 Added: labs/jbossweb/branches/dotnet/README Log: Init dotnet. Added: labs/jbossweb/branches/dotnet/README =================================================================== --- labs/jbossweb/branches/dotnet/README 2006-05-22 17:37:27 UTC (rev 4349) +++ labs/jbossweb/branches/dotnet/README 2006-05-22 17:38:55 UTC (rev 4350) @@ -0,0 +1 @@ +JBoss Web Server .NET Module repository |
From: <jbo...@li...> - 2006-05-22 17:37:32
|
Author: mla...@jb... Date: 2006-05-22 13:37:27 -0400 (Mon, 22 May 2006) New Revision: 4349 Removed: labs/jbossweb/branches/dotnet/README.txt Log: Rearange dotnet. Deleted: labs/jbossweb/branches/dotnet/README.txt =================================================================== --- labs/jbossweb/branches/dotnet/README.txt 2006-05-22 17:36:54 UTC (rev 4348) +++ labs/jbossweb/branches/dotnet/README.txt 2006-05-22 17:37:27 UTC (rev 4349) @@ -1 +0,0 @@ -JBoss Web Server Sandbox |
From: <jbo...@li...> - 2006-05-22 17:36:59
|
Author: mla...@jb... Date: 2006-05-22 13:36:54 -0400 (Mon, 22 May 2006) New Revision: 4348 Removed: labs/jbossweb/branches/sandbox/README.txt Log: Rearange sandbox. Deleted: labs/jbossweb/branches/sandbox/README.txt =================================================================== --- labs/jbossweb/branches/sandbox/README.txt 2006-05-22 17:35:33 UTC (rev 4347) +++ labs/jbossweb/branches/sandbox/README.txt 2006-05-22 17:36:54 UTC (rev 4348) @@ -1,58 +0,0 @@ -Install Rewrite Valve in Tomcat -------------------------------- - -Copy jbossweb-rewrite.jar to $CATALINA_BASE/server/lib - -server.xml (on context.xml files) -Add (to either Engine, Host or Context elements depending on the desired -rewrite scope): - <Valve className="org.jboss.web.rewrite.RewriteValve"/> - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/rewrite/index.html - -Install PHP Servlet in Tomcat ------------------------------ - -Install PHP 5.1.x -Add PHP dir to PATH -Compile and copy php5servlet to PHP dir. -Copy servlets-php.jar to $CATALINA_BASE/server/lib - -server.xml -Add (to the main Server element): - <Listener className="org.apache.catalina.servlets.php.LifecycleListener"/> - -web.xml: -Add: - <servlet> - <servlet-name>php</servlet-name> - <servlet-class>org.apache.catalina.servlets.php.Handler</servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <load-on-startup>6</load-on-startup> - </servlet> - <servlet> - <servlet-name>phps</servlet-name> - <servlet-class>org.apache.catalina.servlets.php.Highlight</servlet-class> - </servlet> - - <servlet-mapping> - <servlet-name>php</servlet-name> - <url-pattern>*.php</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>phps</servlet-name> - <url-pattern>*.phps</url-pattern> - </servlet-mapping> - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/php/index.html - -Install .NET support in Tomcat ------------------------------- - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/dotnet/index.html |
From: <jbo...@li...> - 2006-05-22 17:35:41
|
Author: mla...@jb... Date: 2006-05-22 13:35:33 -0400 (Mon, 22 May 2006) New Revision: 4347 Removed: labs/jbossweb/branches/sandbox/BUILDING.txt labs/jbossweb/branches/sandbox/build.properties.default labs/jbossweb/branches/sandbox/build.xml labs/jbossweb/branches/sandbox/jboss/ labs/jbossweb/branches/sandbox/src/ labs/jbossweb/branches/sandbox/xdocs/ Log: InitRearange sandbox. Deleted: labs/jbossweb/branches/sandbox/BUILDING.txt =================================================================== --- labs/jbossweb/branches/sandbox/BUILDING.txt 2006-05-22 17:27:46 UTC (rev 4346) +++ labs/jbossweb/branches/sandbox/BUILDING.txt 2006-05-22 17:35:33 UTC (rev 4347) @@ -1,7 +0,0 @@ -How to build ------------- - -- Install Ant 1.6.5 -- put a JBoss AS binary distribution in the "jboss" folder (the version number must match what is in build.properties.default) -- Alternatively type "and download" to download the JBoss AS binary matching the build.properties.default defined version -- type "ant"; the result is in "output/jbossweb-versionnumber" Deleted: labs/jbossweb/branches/sandbox/build.properties.default =================================================================== --- labs/jbossweb/branches/sandbox/build.properties.default 2006-05-22 17:27:46 UTC (rev 4346) +++ labs/jbossweb/branches/sandbox/build.properties.default 2006-05-22 17:35:33 UTC (rev 4347) @@ -1,69 +0,0 @@ -# ----------------------------------------------------------------------------- -# build.properties.default -# -# This is an example "build.properties" file, used to customize building Tomcat -# for your local environment. It defines the location of all external -# modules that Tomcat depends on. Copy this file to "build.properties" -# in the top-level source directory, and customize it as needed. -# -# $Id: build.properties.default,v 1.147 2005/06/24 17:18:36 remm Exp $ -# ----------------------------------------------------------------------------- - -# ----- Vesion Control Flags ----- -version.major=1 -version.minor=0 -version.build=0 -version.patch=CR1 - -# ----- Vesion Control Flags ----- -jboss.version.major=4 -jboss.version.minor=0 -jboss.version.build=4 -jboss.version.patch=GA - -# ----- Compile Control Flags ----- -compile.debug=on -compile.deprecation=off -compile.optimize=off - - -# ----- Build Control Flags - -#Build all components -#full.dist=on - -#Hide configuration flags display -#flags.hide=on - - -# ----- Proxy setup ----- -#proxy.host=proxy.domain -#proxy.port=8080 -#proxy.use=on - - -# ----- Default Base Path for Dependent Packages ----- -base.path=/usr/share/java -#base.path=C:/path/to/the/repository -#base.path=/usr/local - -# ----- Jakarta files base location ----- -base-jakarta.loc=http://archive.apache.org/dist/jakarta - -# ----- Logging files base location ----- -base-logging.loc=http://archive.apache.org/dist/logging - -# ----- XML files base location ----- -base-xml.loc=http://archive.apache.org/dist/xml - -# ----- Struts files base location ----- -base-struts.loc=http://archive.apache.org/dist/struts - -# ----- Tomcat files base location ----- -base-tomcat.loc=http://archive.apache.org/dist/tomcat - -# ----- Sourceforge files base location ----- -#base-sf.loc=http://switch.dl.sourceforge.net/sourceforge -base-sf.loc=http://heanet.dl.sourceforge.net/sourceforge -#base-sf.loc=http://internap.dl.sourceforge.net/sourceforge - Deleted: labs/jbossweb/branches/sandbox/build.xml =================================================================== --- labs/jbossweb/branches/sandbox/build.xml 2006-05-22 17:27:46 UTC (rev 4346) +++ labs/jbossweb/branches/sandbox/build.xml 2006-05-22 17:35:33 UTC (rev 4347) @@ -1,437 +0,0 @@ -<project name="JBoss Web" default="deploy" basedir="."> - - - <!-- ===================== Initialize Property Values =================== --> - - <!-- See "build.properties.sample" in the top level directory for all --> - <!-- property values you must customize for successful building!!! --> - <property file="${user.home}/build.properties"/> - <property file="build.properties"/> - - <property file="build.properties.default"/> - - <!-- Project Properties --> - <property name="name" value="JBoss Web" /> - <property name="year" value="2006" /> - <property name="version.major" value="4" /> - <property name="version.minor" value="0" /> - <property name="version.build" value="0" /> - <property name="version.patch" value="DR" /> - <property name="version.flag" value="" /> - <property name="version.number" value="${version.major}.${version.minor}.${version.build}.${version.patch}" /> - <property name="version" value="${version.major}.${version.minor}.${version.build}.${version.patch}${version.flag}" /> - - <property name="jboss.version.major" value="4" /> - <property name="jboss.version.minor" value="0" /> - <property name="jboss.version.build" value="0" /> - <property name="jboss.version.patch" value="DR" /> - <property name="jboss.version.flag" value="" /> - <property name="jboss.version.number" value="${jboss.version.major}.${jboss.version.minor}.${jboss.version.build}.${jboss.version.patch}" /> - <property name="jboss.version" value="${jboss.version.major}.${jboss.version.minor}.${jboss.version.build}.${jboss.version.patch}${jboss.version.flag}" /> - - <property name="project" value="jbossweb" /> - <property name="final.name" value="${project}-${version}" /> - <property name="final-src.name" value="${project}-${version}-src" /> - - <!-- Subprojects --> - <property name="cvstag" value="" /> - <property name="cvs.base" - value="${basedir}/.."/> - - <!-- Build Defaults --> - <property name="jboss.build" value="${basedir}/jboss/jboss-${jboss.version}"/> - <property name="jbossweb.build" value="${basedir}/output"/> - <property name="jbossweb.release" value="${basedir}/release"/> - - <!-- Some compilers will disable debugging if true. And it doesn't do anything - in most cases --> - <property name="compile.optimize" value="false"/> - <property name="compile.debug" value="true" /> - <property name="compile.deprecation" value="false" /> - <property name="compile.source" value="1.4" /> - - <path id="catalina.classpath"> - <fileset dir="${jboss.build}/server/all"> - <include name="deploy/jbossweb-tomcat55.sar/commons-el.jar"/> - <include name="deploy/jbossweb-tomcat55.sar/commons-modeler.jar"/> - <include name="deploy/jbossweb-tomcat55.sar/jasper-compiler-jdt.jar"/> - <include name="lib/commons-logging.jar" /> - <include name="lib/javax.servlet.jar" /> - <include name="lib/javax.servlet.jsp.jar" /> - </fileset> - <fileset dir="${jboss.build}/lib"> - <include name="jboss-jmx.jar" /> - </fileset> - </path> - - <!-- ===================== DEPLOY: Create Directories =================== --> - <target name="init"> - - <mkdir dir="${jbossweb.build}/${final.name}" /> - <mkdir dir="${jbossweb.build}/${final.name}/server/default" /> - <mkdir dir="${jbossweb.release}" /> - - </target> - - <!-- ===================== DEPLOY: Download JBoss ======================= --> - <target name="direxist"> - <echo message="Testing for ${destfile}"/> - <available file="${destfile}" type="dir" property="exist"/> - </target> - - <target name="downloadzip" unless="exist" depends="direxist"> - <!-- Download and extract the package --> - <get src="${sourcefile}" dest="${basedir}/file.zip" /> - <mkdir dir="${destdir}" /> - <unzip src="${basedir}/file.zip" dest="${destdir}"/> - <delete file="${basedir}/file.zip"/> - </target> - - <target name="download" - description="Download binary packages" > - <antcall target="downloadzip"> - <param name="sourcefile" value="${base-sf.loc}/jboss/jboss-${jboss.version}.zip"/> - <param name="destfile" value="${jboss.build}"/> - <param name="destdir" value="${basedir}/jboss"/> - </antcall> - </target> - - - <!-- ====================== DEPLOY: Copy Static Files =================== --> - <target name="deploy-static" depends="init"> - - <copy todir="${jbossweb.build}/${final.name}"> - <fileset dir="${jboss.build}"> - <include name="copyright.txt" /> - <include name="bin/**" /> - <include name="lib/**" /> - <include name="client/jbossall-client.jar" /> - <include name="docs/dtd/**" /> - <include name="docs/licenses/**" /> - <include name="docs/schema/**" /> - </fileset> - </copy> - - <copy todir="${jbossweb.build}/${final.name}/server/default"> - <fileset dir="${jboss.build}/server/all"> - - <include name="conf/**" /> - - <include name="lib/bindingservice-plugin.jar" /> - <include name="lib/bsh-1.3.0.jar" /> - <include name="lib/commons-logging.jar" /> - <include name="lib/hsqldb.jar" /> - <include name="lib/hsqldb-plugin.jar" /> - <include name="lib/javassist.jar" /> - <include name="lib/javax.servlet.jar" /> - <include name="lib/javax.servlet.jsp.jar" /> - <include name="lib/jboss.jar" /> - <include name="lib/jboss-cache.jar" /> - <include name="lib/jboss-common-jdbc-wrapper.jar" /> - <include name="lib/jbossha.jar" /> - <include name="lib/jboss-j2ee.jar" /> - <include name="lib/jboss-jca.jar" /> - <include name="lib/jboss-jsr77.jar" /> - <include name="lib/jboss-jsr88.jar" /> - <include name="lib/jboss-management.jar" /> - <include name="lib/jboss-monitoring.jar" /> - <include name="lib/jboss-remoting.jar" /> - <include name="lib/jboss-serialization.jar" /> - <include name="lib/jbosssx.jar" /> - <include name="lib/jboss-transaction.jar" /> - <include name="lib/jgroups.jar" /> - <include name="lib/jmx-adaptor-plugin.jar" /> - <include name="lib/jnpserver.jar" /> - <include name="lib/log4j.jar" /> - <include name="lib/properties-plugin.jar" /> - - <include name="deploy/jboss-aop.deployer/**" /> - <include name="deploy/jmx-console.war/**" /> - <include name="deploy/tc5-cluster.sar/**" /> - <include name="deploy/management/**" /> - <include name="deploy/cache-invalidation-service.xml" /> - <include name="deploy/hsqldb-ds.xml" /> - <include name="deploy/jboss-ha-local-jdbc.rar" /> - <include name="deploy/jboss-ha-xa-jdbc.rar" /> - <include name="deploy/jbossjca-service.xml" /> - <include name="deploy/jboss-local-jdbc.rar" /> - <include name="deploy/jboss-xa-jdbc.rar" /> - <include name="deploy/jmx-invoker-service.xml" /> - <include name="deploy/monitoring-service.xml" /> - <include name="deploy/properties-service.xml" /> - <include name="deploy/tc5-cluster-service.xml" /> - - <exclude name="deploy/jbossweb-tomcat55.sar/**" /> - - </fileset> - - </copy> - - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar"> - <fileset dir="${jboss.build}/server/all/deploy/jbossweb-tomcat55.sar"> - - <exclude name="catalina.jar" /> - <exclude name="catalina-manager.jar" /> - <exclude name="catalina-optional.jar" /> - <exclude name="jasper-compiler.jar" /> - <exclude name="jasper-runtime.jar" /> - <exclude name="servlets-default.jar" /> - <exclude name="servlets-invoker.jar" /> - <exclude name="servlets-webdav.jar" /> - <exclude name="naming-resources.jar" /> - <exclude name="tomcat-ajp.jar" /> - <exclude name="tomcat-apr.jar" /> - <exclude name="tomcat-coyote.jar" /> - <exclude name="tomcat-http.jar" /> - <exclude name="tomcat-util.jar" /> - - <exclude name="server.xml" /> - <exclude name="conf/**" /> - <exclude name="ROOT.war/**" /> - - </fileset> - - </copy> - - </target> - - <target name="deploy" depends="deploy-static"> - - <mkdir dir="${jbossweb.build}/classes" /> - <mkdir dir="${jbossweb.build}/native" /> - - <javac srcdir="src/share/classes" destdir="${jbossweb.build}/classes" - debug="${compile.debug}" - deprecation="${compile.deprecation}" - source="${compile.source}" - optimize="${compile.optimize}" - excludes="**/CVS/**,**/.svn/**"> - <classpath refid="catalina.classpath" /> - <exclude name="**/*TestCase.java" /> - <!-- Uses Java 5 --> - <exclude name="**/SemaphoreValve.java" /> - </javac> - - <tstamp> - <format property="TODAY" pattern="MMM d yyyy" locale="en"/> - <format property="TSTAMP" pattern="hh:mm:ss"/> - </tstamp> - - <!-- Copy static resource files --> - <filter token="VERSION" value="${version}"/> - <filter token="VERSION_NUMBER" value="${version.number}"/> - <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/> - <copy todir="${jbossweb.build}/classes" filtering="yes"> - <fileset dir="src/share/classes"> - <include name="**/*.xml"/> - <include name="**/*.properties"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}" filtering="yes"> - <fileset dir=""> - <include name="README.txt"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/native"> - <fileset dir="src/share/native"> - <include name="php5servlet/php5servlet.*"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" filtering="yes"> - <fileset dir="src/share/resources"> - <include name="**/*.xml"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/ROOT.war" overwrite="yes"> - <fileset dir="src/share/resources/ROOT.war"> - <include name="**/*"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/bin" filtering="yes" overwrite="yes"> - <fileset dir="src/share/resources/bin"> - <include name="**.*"/> - </fileset> - </copy> - <chmod dir="${jbossweb.build}/${final.name}/bin" includes="*.sh" perm="+x"/> - - <!-- JBoss Web Main --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/jbossweb.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <exclude name="org/apache/catalina/servlets/CGI*" /> - <exclude name="org/apache/catalina/servlets/Invoker*" /> - <exclude name="org/apache/catalina/ssi/**" /> - <exclude name="org/apache/catalina/servlets/Webdav*" /> - <exclude name="org/apache/catalina/servlets/php/**" /> - <exclude name="org/jboss/web/rewrite/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- Servlets - CGI Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-cgi.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/CGI*" /> - </fileset> - </jar> - - <!-- Servlets - Invoker Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-invoker.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/Invoker*" /> - </fileset> - </jar> - - <!-- Servlets - SSI Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-ssi.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/ssi/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- Servlets - Webdav Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-webdav.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/Webdav*" /> - </fileset> - </jar> - - <!-- JBoss Web - PHP Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-php.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/php/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- JBoss Web - Rewrite Valve --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/jbossweb-rewrite.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/jboss/web/rewrite/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - -</target> - - <target name="clean"> - - <delete dir="${jbossweb.build}"/> - - </target> - - <target name="release" depends="clean,deploy"> - - <fixcrlf srcdir="${jbossweb.build}/${final.name}" includes="**/*.bat,**/*.txt,**/*.sh,**/*.bat,**/*.dtd,**/*.xsd,**/*.conf,**/*.properties,**/*.xml,**/*.html,**/*.jsp,**/*.css,**/MANIFEST.MF" eol="dos"/> - - <zip zipfile="${jbossweb.release}/${final.name}.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}" prefix="${final.name}"> - </zipfileset> - </zip> - - <zip zipfile="${jbossweb.release}/${final.name}-sar.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="${final.name}.sar"> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="epl.txt" /> - <include name="lgpl.txt" /> - <include name="apache-2.0.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </zipfileset> - </zip> - - <zip zipfile="${jbossweb.release}/${final.name}-tomcat.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="tomcat/server/lib"> - <include name="jbossweb-rewrite.jar" /> - <include name="servlets-php.jar" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/native" prefix="native"> - <include name="**" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}"> - <include name="README.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="lgpl.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </zipfileset> - </zip> - - <fixcrlf srcdir="${jbossweb.build}/${final.name}" includes="**/*.bat,**/*.txt,**/*.sh,**/*.bat,**/*.dtd,**/*.xsd,**/*.conf,**/*.properties,**/*.xml,**/*.html,**/*.jsp,**/*.css,**/MANIFEST.MF" eol="unix"/> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}" mode="755" prefix="${final.name}"> - <include name="**/*.sh" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}" mode="600" prefix="${final.name}"> - <include name="**/*.conf" /> - <include name="**/*.xml" /> - <include name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}" prefix="${final.name}"> - <exclude name="**/*.sh" /> - <exclude name="**/*.conf" /> - <exclude name="**/*.xml" /> - <exclude name="**/*.properties" /> - </tarfileset> - </tar> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}-sar.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" mode="600" prefix="${final.name}.sar"> - <include name="**/*.conf" /> - <include name="**/*.xml" /> - <include name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="${final.name}.sar"> - <exclude name="**/*.sh" /> - <exclude name="**/*.conf" /> - <exclude name="**/*.xml" /> - <exclude name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="epl.txt" /> - <include name="lgpl.txt" /> - <include name="apache-2.0.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </tarfileset> - </tar> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}-tomcat.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="tomcat/server/lib"> - <include name="jbossweb-rewrite.jar" /> - <include name="servlets-php.jar" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}"> - <include name="README.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/native" prefix="native"> - <include name="**" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="lgpl.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </tarfileset> - </tar> - - </target> - -</project> |
From: <jbo...@li...> - 2006-05-22 17:27:52
|
Author: mla...@jb... Date: 2006-05-22 13:27:46 -0400 (Mon, 22 May 2006) New Revision: 4346 Removed: labs/jbossweb/branches/dotnet/BUILDING.txt labs/jbossweb/branches/dotnet/build.properties.default labs/jbossweb/branches/dotnet/build.xml labs/jbossweb/branches/dotnet/jboss/ labs/jbossweb/branches/dotnet/src/ labs/jbossweb/branches/dotnet/xdocs/ Modified: labs/jbossweb/branches/dotnet/README.txt Log: Rearange sandbox. Deleted: labs/jbossweb/branches/dotnet/BUILDING.txt =================================================================== --- labs/jbossweb/branches/dotnet/BUILDING.txt 2006-05-22 17:21:47 UTC (rev 4345) +++ labs/jbossweb/branches/dotnet/BUILDING.txt 2006-05-22 17:27:46 UTC (rev 4346) @@ -1,7 +0,0 @@ -How to build ------------- - -- Install Ant 1.6.5 -- put a JBoss AS binary distribution in the "jboss" folder (the version number must match what is in build.properties.default) -- Alternatively type "and download" to download the JBoss AS binary matching the build.properties.default defined version -- type "ant"; the result is in "output/jbossweb-versionnumber" Modified: labs/jbossweb/branches/dotnet/README.txt =================================================================== --- labs/jbossweb/branches/dotnet/README.txt 2006-05-22 17:21:47 UTC (rev 4345) +++ labs/jbossweb/branches/dotnet/README.txt 2006-05-22 17:27:46 UTC (rev 4346) @@ -1,58 +1 @@ -Install Rewrite Valve in Tomcat -------------------------------- - -Copy jbossweb-rewrite.jar to $CATALINA_BASE/server/lib - -server.xml (on context.xml files) -Add (to either Engine, Host or Context elements depending on the desired -rewrite scope): - <Valve className="org.jboss.web.rewrite.RewriteValve"/> - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/rewrite/index.html - -Install PHP Servlet in Tomcat ------------------------------ - -Install PHP 5.1.x -Add PHP dir to PATH -Compile and copy php5servlet to PHP dir. -Copy servlets-php.jar to $CATALINA_BASE/server/lib - -server.xml -Add (to the main Server element): - <Listener className="org.apache.catalina.servlets.php.LifecycleListener"/> - -web.xml: -Add: - <servlet> - <servlet-name>php</servlet-name> - <servlet-class>org.apache.catalina.servlets.php.Handler</servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <load-on-startup>6</load-on-startup> - </servlet> - <servlet> - <servlet-name>phps</servlet-name> - <servlet-class>org.apache.catalina.servlets.php.Highlight</servlet-class> - </servlet> - - <servlet-mapping> - <servlet-name>php</servlet-name> - <url-pattern>*.php</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>phps</servlet-name> - <url-pattern>*.phps</url-pattern> - </servlet-mapping> - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/php/index.html - -Install .NET support in Tomcat ------------------------------- - -Documentation: -http://labs.jboss.com/file-access/default/members/jbossweb/freezone/modules/dotnet/index.html +JBoss Web Server Sandbox Deleted: labs/jbossweb/branches/dotnet/build.properties.default =================================================================== --- labs/jbossweb/branches/dotnet/build.properties.default 2006-05-22 17:21:47 UTC (rev 4345) +++ labs/jbossweb/branches/dotnet/build.properties.default 2006-05-22 17:27:46 UTC (rev 4346) @@ -1,69 +0,0 @@ -# ----------------------------------------------------------------------------- -# build.properties.default -# -# This is an example "build.properties" file, used to customize building Tomcat -# for your local environment. It defines the location of all external -# modules that Tomcat depends on. Copy this file to "build.properties" -# in the top-level source directory, and customize it as needed. -# -# $Id: build.properties.default,v 1.147 2005/06/24 17:18:36 remm Exp $ -# ----------------------------------------------------------------------------- - -# ----- Vesion Control Flags ----- -version.major=1 -version.minor=0 -version.build=0 -version.patch=CR1 - -# ----- Vesion Control Flags ----- -jboss.version.major=4 -jboss.version.minor=0 -jboss.version.build=4 -jboss.version.patch=GA - -# ----- Compile Control Flags ----- -compile.debug=on -compile.deprecation=off -compile.optimize=off - - -# ----- Build Control Flags - -#Build all components -#full.dist=on - -#Hide configuration flags display -#flags.hide=on - - -# ----- Proxy setup ----- -#proxy.host=proxy.domain -#proxy.port=8080 -#proxy.use=on - - -# ----- Default Base Path for Dependent Packages ----- -base.path=/usr/share/java -#base.path=C:/path/to/the/repository -#base.path=/usr/local - -# ----- Jakarta files base location ----- -base-jakarta.loc=http://archive.apache.org/dist/jakarta - -# ----- Logging files base location ----- -base-logging.loc=http://archive.apache.org/dist/logging - -# ----- XML files base location ----- -base-xml.loc=http://archive.apache.org/dist/xml - -# ----- Struts files base location ----- -base-struts.loc=http://archive.apache.org/dist/struts - -# ----- Tomcat files base location ----- -base-tomcat.loc=http://archive.apache.org/dist/tomcat - -# ----- Sourceforge files base location ----- -#base-sf.loc=http://switch.dl.sourceforge.net/sourceforge -base-sf.loc=http://heanet.dl.sourceforge.net/sourceforge -#base-sf.loc=http://internap.dl.sourceforge.net/sourceforge - Deleted: labs/jbossweb/branches/dotnet/build.xml =================================================================== --- labs/jbossweb/branches/dotnet/build.xml 2006-05-22 17:21:47 UTC (rev 4345) +++ labs/jbossweb/branches/dotnet/build.xml 2006-05-22 17:27:46 UTC (rev 4346) @@ -1,437 +0,0 @@ -<project name="JBoss Web" default="deploy" basedir="."> - - - <!-- ===================== Initialize Property Values =================== --> - - <!-- See "build.properties.sample" in the top level directory for all --> - <!-- property values you must customize for successful building!!! --> - <property file="${user.home}/build.properties"/> - <property file="build.properties"/> - - <property file="build.properties.default"/> - - <!-- Project Properties --> - <property name="name" value="JBoss Web" /> - <property name="year" value="2006" /> - <property name="version.major" value="4" /> - <property name="version.minor" value="0" /> - <property name="version.build" value="0" /> - <property name="version.patch" value="DR" /> - <property name="version.flag" value="" /> - <property name="version.number" value="${version.major}.${version.minor}.${version.build}.${version.patch}" /> - <property name="version" value="${version.major}.${version.minor}.${version.build}.${version.patch}${version.flag}" /> - - <property name="jboss.version.major" value="4" /> - <property name="jboss.version.minor" value="0" /> - <property name="jboss.version.build" value="0" /> - <property name="jboss.version.patch" value="DR" /> - <property name="jboss.version.flag" value="" /> - <property name="jboss.version.number" value="${jboss.version.major}.${jboss.version.minor}.${jboss.version.build}.${jboss.version.patch}" /> - <property name="jboss.version" value="${jboss.version.major}.${jboss.version.minor}.${jboss.version.build}.${jboss.version.patch}${jboss.version.flag}" /> - - <property name="project" value="jbossweb" /> - <property name="final.name" value="${project}-${version}" /> - <property name="final-src.name" value="${project}-${version}-src" /> - - <!-- Subprojects --> - <property name="cvstag" value="" /> - <property name="cvs.base" - value="${basedir}/.."/> - - <!-- Build Defaults --> - <property name="jboss.build" value="${basedir}/jboss/jboss-${jboss.version}"/> - <property name="jbossweb.build" value="${basedir}/output"/> - <property name="jbossweb.release" value="${basedir}/release"/> - - <!-- Some compilers will disable debugging if true. And it doesn't do anything - in most cases --> - <property name="compile.optimize" value="false"/> - <property name="compile.debug" value="true" /> - <property name="compile.deprecation" value="false" /> - <property name="compile.source" value="1.4" /> - - <path id="catalina.classpath"> - <fileset dir="${jboss.build}/server/all"> - <include name="deploy/jbossweb-tomcat55.sar/commons-el.jar"/> - <include name="deploy/jbossweb-tomcat55.sar/commons-modeler.jar"/> - <include name="deploy/jbossweb-tomcat55.sar/jasper-compiler-jdt.jar"/> - <include name="lib/commons-logging.jar" /> - <include name="lib/javax.servlet.jar" /> - <include name="lib/javax.servlet.jsp.jar" /> - </fileset> - <fileset dir="${jboss.build}/lib"> - <include name="jboss-jmx.jar" /> - </fileset> - </path> - - <!-- ===================== DEPLOY: Create Directories =================== --> - <target name="init"> - - <mkdir dir="${jbossweb.build}/${final.name}" /> - <mkdir dir="${jbossweb.build}/${final.name}/server/default" /> - <mkdir dir="${jbossweb.release}" /> - - </target> - - <!-- ===================== DEPLOY: Download JBoss ======================= --> - <target name="direxist"> - <echo message="Testing for ${destfile}"/> - <available file="${destfile}" type="dir" property="exist"/> - </target> - - <target name="downloadzip" unless="exist" depends="direxist"> - <!-- Download and extract the package --> - <get src="${sourcefile}" dest="${basedir}/file.zip" /> - <mkdir dir="${destdir}" /> - <unzip src="${basedir}/file.zip" dest="${destdir}"/> - <delete file="${basedir}/file.zip"/> - </target> - - <target name="download" - description="Download binary packages" > - <antcall target="downloadzip"> - <param name="sourcefile" value="${base-sf.loc}/jboss/jboss-${jboss.version}.zip"/> - <param name="destfile" value="${jboss.build}"/> - <param name="destdir" value="${basedir}/jboss"/> - </antcall> - </target> - - - <!-- ====================== DEPLOY: Copy Static Files =================== --> - <target name="deploy-static" depends="init"> - - <copy todir="${jbossweb.build}/${final.name}"> - <fileset dir="${jboss.build}"> - <include name="copyright.txt" /> - <include name="bin/**" /> - <include name="lib/**" /> - <include name="client/jbossall-client.jar" /> - <include name="docs/dtd/**" /> - <include name="docs/licenses/**" /> - <include name="docs/schema/**" /> - </fileset> - </copy> - - <copy todir="${jbossweb.build}/${final.name}/server/default"> - <fileset dir="${jboss.build}/server/all"> - - <include name="conf/**" /> - - <include name="lib/bindingservice-plugin.jar" /> - <include name="lib/bsh-1.3.0.jar" /> - <include name="lib/commons-logging.jar" /> - <include name="lib/hsqldb.jar" /> - <include name="lib/hsqldb-plugin.jar" /> - <include name="lib/javassist.jar" /> - <include name="lib/javax.servlet.jar" /> - <include name="lib/javax.servlet.jsp.jar" /> - <include name="lib/jboss.jar" /> - <include name="lib/jboss-cache.jar" /> - <include name="lib/jboss-common-jdbc-wrapper.jar" /> - <include name="lib/jbossha.jar" /> - <include name="lib/jboss-j2ee.jar" /> - <include name="lib/jboss-jca.jar" /> - <include name="lib/jboss-jsr77.jar" /> - <include name="lib/jboss-jsr88.jar" /> - <include name="lib/jboss-management.jar" /> - <include name="lib/jboss-monitoring.jar" /> - <include name="lib/jboss-remoting.jar" /> - <include name="lib/jboss-serialization.jar" /> - <include name="lib/jbosssx.jar" /> - <include name="lib/jboss-transaction.jar" /> - <include name="lib/jgroups.jar" /> - <include name="lib/jmx-adaptor-plugin.jar" /> - <include name="lib/jnpserver.jar" /> - <include name="lib/log4j.jar" /> - <include name="lib/properties-plugin.jar" /> - - <include name="deploy/jboss-aop.deployer/**" /> - <include name="deploy/jmx-console.war/**" /> - <include name="deploy/tc5-cluster.sar/**" /> - <include name="deploy/management/**" /> - <include name="deploy/cache-invalidation-service.xml" /> - <include name="deploy/hsqldb-ds.xml" /> - <include name="deploy/jboss-ha-local-jdbc.rar" /> - <include name="deploy/jboss-ha-xa-jdbc.rar" /> - <include name="deploy/jbossjca-service.xml" /> - <include name="deploy/jboss-local-jdbc.rar" /> - <include name="deploy/jboss-xa-jdbc.rar" /> - <include name="deploy/jmx-invoker-service.xml" /> - <include name="deploy/monitoring-service.xml" /> - <include name="deploy/properties-service.xml" /> - <include name="deploy/tc5-cluster-service.xml" /> - - <exclude name="deploy/jbossweb-tomcat55.sar/**" /> - - </fileset> - - </copy> - - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar"> - <fileset dir="${jboss.build}/server/all/deploy/jbossweb-tomcat55.sar"> - - <exclude name="catalina.jar" /> - <exclude name="catalina-manager.jar" /> - <exclude name="catalina-optional.jar" /> - <exclude name="jasper-compiler.jar" /> - <exclude name="jasper-runtime.jar" /> - <exclude name="servlets-default.jar" /> - <exclude name="servlets-invoker.jar" /> - <exclude name="servlets-webdav.jar" /> - <exclude name="naming-resources.jar" /> - <exclude name="tomcat-ajp.jar" /> - <exclude name="tomcat-apr.jar" /> - <exclude name="tomcat-coyote.jar" /> - <exclude name="tomcat-http.jar" /> - <exclude name="tomcat-util.jar" /> - - <exclude name="server.xml" /> - <exclude name="conf/**" /> - <exclude name="ROOT.war/**" /> - - </fileset> - - </copy> - - </target> - - <target name="deploy" depends="deploy-static"> - - <mkdir dir="${jbossweb.build}/classes" /> - <mkdir dir="${jbossweb.build}/native" /> - - <javac srcdir="src/share/classes" destdir="${jbossweb.build}/classes" - debug="${compile.debug}" - deprecation="${compile.deprecation}" - source="${compile.source}" - optimize="${compile.optimize}" - excludes="**/CVS/**,**/.svn/**"> - <classpath refid="catalina.classpath" /> - <exclude name="**/*TestCase.java" /> - <!-- Uses Java 5 --> - <exclude name="**/SemaphoreValve.java" /> - </javac> - - <tstamp> - <format property="TODAY" pattern="MMM d yyyy" locale="en"/> - <format property="TSTAMP" pattern="hh:mm:ss"/> - </tstamp> - - <!-- Copy static resource files --> - <filter token="VERSION" value="${version}"/> - <filter token="VERSION_NUMBER" value="${version.number}"/> - <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/> - <copy todir="${jbossweb.build}/classes" filtering="yes"> - <fileset dir="src/share/classes"> - <include name="**/*.xml"/> - <include name="**/*.properties"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}" filtering="yes"> - <fileset dir=""> - <include name="README.txt"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/native"> - <fileset dir="src/share/native"> - <include name="php5servlet/php5servlet.*"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" filtering="yes"> - <fileset dir="src/share/resources"> - <include name="**/*.xml"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/ROOT.war" overwrite="yes"> - <fileset dir="src/share/resources/ROOT.war"> - <include name="**/*"/> - </fileset> - </copy> - <copy todir="${jbossweb.build}/${final.name}/bin" filtering="yes" overwrite="yes"> - <fileset dir="src/share/resources/bin"> - <include name="**.*"/> - </fileset> - </copy> - <chmod dir="${jbossweb.build}/${final.name}/bin" includes="*.sh" perm="+x"/> - - <!-- JBoss Web Main --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/jbossweb.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <exclude name="org/apache/catalina/servlets/CGI*" /> - <exclude name="org/apache/catalina/servlets/Invoker*" /> - <exclude name="org/apache/catalina/ssi/**" /> - <exclude name="org/apache/catalina/servlets/Webdav*" /> - <exclude name="org/apache/catalina/servlets/php/**" /> - <exclude name="org/jboss/web/rewrite/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- Servlets - CGI Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-cgi.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/CGI*" /> - </fileset> - </jar> - - <!-- Servlets - Invoker Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-invoker.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/Invoker*" /> - </fileset> - </jar> - - <!-- Servlets - SSI Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-ssi.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/ssi/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- Servlets - Webdav Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-webdav.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/Webdav*" /> - </fileset> - </jar> - - <!-- JBoss Web - PHP Servlet --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/servlets-php.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/apache/catalina/servlets/php/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - - <!-- JBoss Web - Rewrite Valve --> - <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar/jbossweb-rewrite.jar" index="true"> - <fileset dir="${jbossweb.build}/classes"> - <include name="org/jboss/web/rewrite/**" /> - <!-- Javadoc and i18n exclusions --> - <exclude name="**/package.html" /> - <exclude name="**/LocalStrings_*" /> - </fileset> - </jar> - -</target> - - <target name="clean"> - - <delete dir="${jbossweb.build}"/> - - </target> - - <target name="release" depends="clean,deploy"> - - <fixcrlf srcdir="${jbossweb.build}/${final.name}" includes="**/*.bat,**/*.txt,**/*.sh,**/*.bat,**/*.dtd,**/*.xsd,**/*.conf,**/*.properties,**/*.xml,**/*.html,**/*.jsp,**/*.css,**/MANIFEST.MF" eol="dos"/> - - <zip zipfile="${jbossweb.release}/${final.name}.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}" prefix="${final.name}"> - </zipfileset> - </zip> - - <zip zipfile="${jbossweb.release}/${final.name}-sar.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="${final.name}.sar"> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="epl.txt" /> - <include name="lgpl.txt" /> - <include name="apache-2.0.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </zipfileset> - </zip> - - <zip zipfile="${jbossweb.release}/${final.name}-tomcat.zip"> - <zipfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="tomcat/server/lib"> - <include name="jbossweb-rewrite.jar" /> - <include name="servlets-php.jar" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/native" prefix="native"> - <include name="**" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}"> - <include name="README.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="lgpl.txt" /> - </zipfileset> - <zipfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </zipfileset> - </zip> - - <fixcrlf srcdir="${jbossweb.build}/${final.name}" includes="**/*.bat,**/*.txt,**/*.sh,**/*.bat,**/*.dtd,**/*.xsd,**/*.conf,**/*.properties,**/*.xml,**/*.html,**/*.jsp,**/*.css,**/MANIFEST.MF" eol="unix"/> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}" mode="755" prefix="${final.name}"> - <include name="**/*.sh" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}" mode="600" prefix="${final.name}"> - <include name="**/*.conf" /> - <include name="**/*.xml" /> - <include name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}" prefix="${final.name}"> - <exclude name="**/*.sh" /> - <exclude name="**/*.conf" /> - <exclude name="**/*.xml" /> - <exclude name="**/*.properties" /> - </tarfileset> - </tar> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}-sar.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" mode="600" prefix="${final.name}.sar"> - <include name="**/*.conf" /> - <include name="**/*.xml" /> - <include name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="${final.name}.sar"> - <exclude name="**/*.sh" /> - <exclude name="**/*.conf" /> - <exclude name="**/*.xml" /> - <exclude name="**/*.properties" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="epl.txt" /> - <include name="lgpl.txt" /> - <include name="apache-2.0.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </tarfileset> - </tar> - - <tar longfile="gnu" compression="gzip" - tarfile="${jbossweb.release}/${final.name}-tomcat.tar.gz"> - <tarfileset dir="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb.sar" prefix="tomcat/server/lib"> - <include name="jbossweb-rewrite.jar" /> - <include name="servlets-php.jar" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}"> - <include name="README.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/native" prefix="native"> - <include name="**" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}/docs/licenses"> - <include name="lgpl.txt" /> - </tarfileset> - <tarfileset dir="${jbossweb.build}/${final.name}"> - <include name="copyright.txt" /> - </tarfileset> - </tar> - - </target> - -</project> |
From: <jbo...@li...> - 2006-05-22 17:21:54
|
Author: mla...@jb... Date: 2006-05-22 13:21:47 -0400 (Mon, 22 May 2006) New Revision: 4345 Added: labs/jbossweb/branches/sandbox/ Log: made a copy Copied: labs/jbossweb/branches/sandbox (from rev 4344, labs/jbossweb/trunk) |
From: <jbo...@li...> - 2006-05-22 17:20:33
|
Author: mla...@jb... Date: 2006-05-22 13:20:23 -0400 (Mon, 22 May 2006) New Revision: 4344 Added: labs/jbossweb/sandbox/ Log: made a copy Copied: labs/jbossweb/sandbox (from rev 4343, labs/jbossweb/trunk) |
From: <jbo...@li...> - 2006-05-22 17:19:29
|
Author: mla...@jb... Date: 2006-05-22 13:19:22 -0400 (Mon, 22 May 2006) New Revision: 4343 Added: labs/jbossweb/branches/dotnet/ Log: made a copy Copied: labs/jbossweb/branches/dotnet (from rev 4342, labs/jbossweb/trunk) |
From: <jbo...@li...> - 2006-05-22 12:48:27
|
Author: mar...@jb... Date: 2006-05-22 08:48:16 -0400 (Mon, 22 May 2006) New Revision: 4342 Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java Log: -give more info for terminal nodes in JungVisitor Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java 2006-05-22 03:17:47 UTC (rev 4341) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java 2006-05-22 12:48:16 UTC (rev 4342) @@ -341,7 +341,7 @@ } public String getHtml() { - return "TerminalNode : " + this.node.getId(); + return "TerminalNode : " + this.node.getId() + " : " + this.node.getRule(); } public String toString() { |
From: <he...@er...> - 2006-05-22 10:51:35
|
jboss-svn-commits ※※※ 生产计划与物料控制(PMC) ※※※ ★★★★★ 日期:2006年5月26-27日 地点: 深 圳 ★★★★★ 6月15-16日 上 海 =============================================================================== 主 办:中 华 企 业 咨 询 网 联系电话: 0 7 5 5-8 2 8 5 0 1 1 7 8 2 8 5 0 1 3 0 报名传真: 0 7 5 5-8 2 8 5 0 1 3 0 时 间: 2006年5月26-27日 2006年6月15-16日 地 点:深圳市深南东路广深宾馆 / 上海兆安酒店 费 用:2000元/人(含讲义、午餐、茶点、合影、通讯录) 对 象:采购、仓储、销售部门、经理主管、跟单人员 =============================================================================== ● 背景 各企业都期望低库存而能满足客户需求的流畅生产环境,以适应当今激烈竞争微利时代。 物料资金一般占企业营运资金55%~80%,而生产进度依时完成,直接影响客户合作满意程度,鉴 此,物料控制(俗称物控MC)和生产控制(俗称生管PC),这个部门(PMC)掌握企业生产及物料运作 的总调度和命脉.直接涉及影响生产部、生产工程部、采购、货仓、品控部、开发与设计部、 设备工程、人力资源及财务成本预算控制等.生产及物料控制部门和相关管理层必须充分了解: 物料计划、请购、物料调度、物料的控制(收、发、退、借、备料等)、生产计划与生产进度 控制,并谙熟运用这门管理技来解决问题。 本课程是经过讲师十余年亲身体会揣摩凭感觉和理论汇炼之精华.透过学员研讨和习作技 能,帮助学员提升工作技能和管理技巧。 ● 课程收获 → 1.两天您就能掌握根据“PMC是所有生产部门在生产进度和物料控制两个层面上的上司” 概念制定的跟进制度流程. → 2.两天您就能掌握制定多批/多种/少量/交期短生产排程及时跟进其生产进度/物料进度 → 3.两天您就能掌握跟进预期滚动计划生产型/推进式(push)生产控制系统与拉动式(pull) 生产控制系统管理方法 ● 课程特色 “60/40”时间原则(讲师40%,学员60%)、小组讨论/发表、管理电影分享/研讨、案例分析、 情景仿真、自带企业资料现场诊断和实作对策、游戏分享、学员与学员、讲师互动相辅而成、 少讲理论多讲实践经验,要求学员课堂结合本公司实际情况量身订做提出问题(可在课堂打断 讲师思路),不是纯粹填鸭灌输,也不是研究客观案例,而是让学员体验执行过程,关注现实 事例。 =============================================================================== § 讲 师 介 绍 § ● 师资简介 雷卫旭.香港理工大学MBA,香港生产力促进局特约讲师、美国管理学会(AMA)授权专业培训 师、清华大学研究院/北京大学/中山大学EMBA班特邀实战型讲师..北京代光. 2004/2005年被培训论坛推誉为“十大实战派培训师”、专业课程讲授专家、资深顾问.任某 大型日港合资企业副总经理,拥有十几年的生产/物料采购管理经验. 企业高层管理及课程讲授 经验非常丰富,讲授/辅导过三百九十多家中外企业、融集中、港、台多家企业经验之精华.并 由北京大学出版《如何做好生产/物料计划控制》系列和北京代光出版管理光碟,特别 是2004/2005/2006年间定期辅导顺德美的日用集团/富士康集供应链管理项目(精益/JIT-生产 /物料计划/采购).“寓观念于谈笑间,蕴哲理于诙谐中”,风格生动、幽默,讲解深入浅出或浅 入深出,不仅案例丰富,且提供多种实用的解决问题之工具及技巧.至今有四万九仟以上人次接受 专业课程训练,其务实的作风深受厂家好评如潮. 曾经讲授及辅导过的企业有:青岛海尔,中国移动。中国北京联通。深圳华为。顺德/武汉美 的空调.联想、南方电网。白沙集团。粤电集团、海南航空、上海日立.可口可乐.施耐德.上 海松下半体.西安杨森制药、苏州/上海西门子.力(MULTEK)/ 捷普科技(Jabil). 光明纸 业.香港集.东莞伟易达集团、泰科子/卡西欧电子、上海米其林/固特异.雅居乐房地产. 美赞臣(MeadJohnson)、珠江啤酒、步步高电子、格力空调.上海通用汽.海南马自达.比亚迪汽 .长安汽.ABB等多家知名企业,曾驻厂辅导 东莞诺基亚、惠州TCL、南京爱立信、华强三洋、 夏新电子.厦华集.惠州德赛、飞利浦照明电子(上海)、中兴通讯。武汉烽火科技.中国长城计 算机(深圳).东莞汤姆逊(电器). 顺德美的日用集团.顺德乐华陶瓷(arrow).美泰玩具.香港启桓贸 易行 时代纺织.晶苑制衣集团.东莞台子. 富士康集.康佳集团等 =============================================================================== § 课 程 大 纲 § ● 课程大纲 第一室: 物料控制/生产计划/销售计划管理概述 1物料管理范围和先进组织架构 2某著名美资公司物料管理组织架构 3生产计划/物料控制五大职能 4物料管理三大因素结构图 研讨:某通讯公司缩短物料周期电脑系统(用友)流程主界面实例分析 5.物料管理精髓三不政策和八大死穴 6生产计划与销售业务链接流程 案例:中山某衡器有限公司准时生产计划VS市场业务部VS客户“三赢”规则,有效控制 扦单、急单、补单五种措施(范例) 7销售计划流程 ◇ 销售预测流程 ◇ 销售计划流程 ◇ 备货计划流程 ◇ 生产计划流程 8制造业生产计划控制三种模式 ◇ 预期滚动计划系统 ◇ 推进式(push)生产控制系统 ◇ 拉动式(pull)生产控制系统 ◇ 预期滚动计划编制程序/特点/运作 案例研讨:深圳某著名民营企业生产计划控制三种模式全流程剖析 9 多批少量生产现场供料三大做法 ◇ 物料管理---JIT三A政策六措施 ◇ 广告牌生产条件/流程图 ◇ 精益采购(JIT采购) → 一汽马自达公司精益生产拉动式配送物料实例分析 → 供应商管理库存(VMI)----鼓点式交货方式实施七对策 → 某著名家电民营企业VMI收费实施表 → 某美资公司销售预测计划和VMI 物料需求计划实录分析 → 基于互联网的电子化采购--与供应商信息共享/实时视频采购 → 中国某著名民营企业ERP-ORACLE系统SCP协同平台主界实例面分析 → 使用条形码及与供货商进行电子数据交换(EDI)实例展示 10最新生产计划控制管理模式 第二室 物料工程管理 1.物料规格四方面的订定与管制 2.材料清单 (BOM) 3.物料分类/编号 案例:某实业有限公司物料编码系统实例分析 4.物料ABC分析法和运用 5.物料ABC执行六步骤 6.ERP物料ABC分类管理明细功能案例分析 第三室: 物料控制管理 1.物料管理执行流程 案例1:上海某实业有限公司物料管理ERP流程示意图(原理)实物分析 案例2:北京某通讯电子有限公司(欧洲全资)ERP―SAP/R3系统采购订单管理流程主界面分析 2 物料管理相辅相成十四流程 3 某著名美资公司生产计划与生产过程控制流程及其相应)ERP--BAAN系统(美资)流程系列主 界面/表格实录分析 4某公司物料工程更改流程分析/某著名美资公司最新呆料处理制度 5个案演算-----控制物料损耗演算 6江门某实业有限公司补料/损耗控制案例分析 案例:生产物料损耗控制方法---深圳某日资精工有限公司生产零库存实例 案例:生产物料损耗控制方法流程图和损耗明细表 第四室 材料计划跟进与存量管制-----订货型(OEM)/存货型(ODM) 1.材料计划流程七步骤----某公司学员现场诊断(学员与讲师互动点评) → 深圳某民营公司透过ERP-用友系统缩短采购物料周期机制实例分析 → 某著名美资公司每日物料欠料跟进表实例分析 → 东莞某外资公司订货型(OEM)按订单编号GG4K028A1跟进物料计划跟踪过程实录 → 伟创力(美资)在物料欠料分析表实例分析 → 项目MRP计算/查询/日志------金碟K3系统主界面 2. 物料跟单员跟单十大技巧互动点评 → 物料跟单员督促物料到位进度三种方法----备料到位率/目标法/预警法 → 佛山某有限公司物料订购及督促物料预警法工作流程 → 佛山某有限公司跟单员督促物料预警法图表实录分析 3.安全库存的设置方式 → 安全存量VS最高存量VS.最低存量 → 库存管理ERP子功能库存调整/库存查询/查询分析展示 → 多批/多种少量经济批量的决定方式损益平衡点控制方法 4.10种物料成本降低途径和操作方法 5.存量管制 6.物料请购、跟进与进料控制 7.物料短缺八大原因和七种预防对策 8.物料剩余七真因和如何治疗/预防 9.剖析物料供应不继五大方面 第四室 生产计划控制----柔性化的计划和生产 1.生产计划控制流程七途径---讲师/学员点评某公司现场诊断 2.多批少量生产计划与备货计划管理流程解析 第五室 生产计划与进度控制 1.大连某日资公司生产主业务流程/生产控制基本流程案例分享 2.生产产能分析:人力负荷/机器负荷 3 插单产能规划应变六方法 4. 分析产能负荷七要素方面---人力负荷/机器负荷…… 5.生产计划要点、内容及编制演练---- → 销售预测与生产计划 长、中、短期生产计划制定与执行重点演练 → 上海某公司五张订单月/周生产计划排程表制定个案演练 → 生产排产优先五规则 6.生产排产三种标准 7. 生产进度监控三个阶段------事前/事中/事后 8 协调沟通处理生产异常问题--生产进度落后六条改善措施 9. 产销失调原因与对策--跨部门生产进度控制七步骤 10.生产计划进度跟进案例分组研讨------某公司实例 第六室 生产计划与物料计划绩效管理 1.生产计划/生产物料/生产控制绩效管理明细表 2.生产三类成本分析-----财务监督/跟进 3生产控制四方面 4.PMC绩效执行六部份 → 某美资企业PMC工作任务目标细化实例分析 → 绩效管理项目(案例分析) → PMC精益要求转化量化的指针→管理项目→对应具体日常制度/流程 → PMC目标管理活动核心------执行力管理 → PMC执行力项目与公式 → PMC执行力管理办法---(_____月____________部门执行力管理表) 尾声: 通过学员成果发表-----讲师点评 实践/活用所学五步骤 =============================================================================== ■ ■ ■ 报 名 回 执 ■ ■ ■ 填写完毕后请传真到:0 7 5 5-8 2 8 5 0 1 3 0 其余的事情全部就交给我们来做,谢谢! ¥上课地点: 口深 圳 口上 海 ¥付款方式(请选择打“√”): □1、现 金 □2、转 帐 □3、电 汇 ¥参会单位名称:__________________________________ 参会人数:_________人 ¥参加课程:《生产计划与物料控制 》 ¥联系人:________________电 话:________________传 真:________________邮 件:__________ ¥参会费用 ¥:______________元 ¥参 会 人:___________所#任#职#务:____________移#动#电#话:____________ 邮 件:__________ ¥参 会 人:___________所#任#职#务:____________移#动#电#话:_____________邮 件:__________ ¥参 会 人:___________所#任#职#务:____________移#动#电#话:_____________邮 件:__________ ¥参 会 人:___________所#任#职#务:____________移#动#电#话:_____________邮 件:__________ ¥参 会 人:___________所#任#职#务:____________移#动#电#话:_____________邮 件:__________ 备注: 1.请您把报名回执回传我司,为确保您报名无误,请您再次电话确认! 2.本课程可根据企业需要组织内训。 =============================================================================== 18:49:34 |
From: <jbo...@li...> - 2006-05-22 03:17:55
|
Author: mic...@jb... Date: 2006-05-21 23:17:47 -0400 (Sun, 21 May 2006) New Revision: 4341 Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt Log: more changes Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt =================================================================== (Binary files differ) |
From: <jbo...@li...> - 2006-05-22 02:07:15
|
Author: mic...@jb... Date: 2006-05-21 22:07:08 -0400 (Sun, 21 May 2006) New Revision: 4340 Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt Log: Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt =================================================================== (Binary files differ) |
From: <jbo...@li...> - 2006-05-22 01:39:54
|
Author: mic...@jb... Date: 2006-05-21 21:39:49 -0400 (Sun, 21 May 2006) New Revision: 4339 Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml Log: added nodes on strong and weak coupling Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml 2006-05-22 01:31:27 UTC (rev 4338) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Why_use_a_Rule_Engine.xml 2006-05-22 01:39:49 UTC (rev 4339) @@ -210,10 +210,10 @@ <title>Scripting or process engines</title> <para>Hopefully the preceeding sections have explained when you may want - to use a rule engine. </para> + to use a rule engine.</para> <para>Alternatives are script-based engines that provide the dynamicness - for "changes on the fly" (there are many solutions here) or </para> + for "changes on the fly" (there are many solutions here) or</para> <para>Process engines (also capable of workflow) such as jBPM allow you to graphically (or programmatically) describe steps in a process - those @@ -238,4 +238,24 @@ change the applications behaviour), or, they cause the application to stagnate as they are too inflexible.</para> </section> + + <section> + <title>Strong and Loose coupling</title> + + <para>No doubt you have heard terms like "tight coupling" and "loose + coupling" in systems design. Generally people assert that loose or "weak" + coupling is preferable in design terms, due to the added flexibility. + Similarly with rules, you can have "strongly coupled" and "weakly coupled" + rules. Strongly coupled in this sense means that one rule "firing" will + clearly result in another rule firing etc. in other words there is a clear + (probably obvious) chain of logic. If your rules are all strongly coupled, + the chances are that the rules will have future inflexibility, and more + significantly, that perhaps a rule engine is overkill (as the logic is a + clear chain of rules - and can be hard coded). This is not to say that + strong or weak coupling is inherently bad, but its a point to keep in mind + when considering a rule engine, and also in how you capture the rules. + "Loosely" coupled rules should result in a system that allows rules to be + changed, removed, added without requiring changes to other rules that are + unrelated.</para> + </section> </section> \ No newline at end of file |
From: <jbo...@li...> - 2006-05-22 01:31:32
|
Author: mic...@jb... Date: 2006-05-21 21:31:27 -0400 (Sun, 21 May 2006) New Revision: 4338 Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml Log: small corrections Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2006-05-22 00:17:27 UTC (rev 4337) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2006-05-22 01:31:27 UTC (rev 4338) @@ -31,17 +31,17 @@ <para>The term Rule Engine is quite ambiguous in that it can be any system that uses rules, in any form, that can be applied to data to produce - outcomes; which includes simple systems like form validation; "How to + outcomes; which includes simple systems like form validation: "How to Build a Business Rules Engine (2004)" by Malcolm Chisholm exemplifies this ambiguity. The book is actually about how to build and alter a database schema to hold validation rules which it then shows how to generate VB code from those validation rules to validate data entry - while a very - valid and usefil topic for some some, it caused quite a suprise to this - author, unaware at the time in the subtleties of Rules Engines - differences, who was hoping to find some hidden secrets to help improve - the Drools engine. While a Production Rule System is a kinda of Rule - Engine and also Expert System, the validation Rule Engine mention - previously obviously isn't an Expert System.</para> + valid and usefil topic for some, it caused quite a suprise to this author, + unaware at the time in the subtleties of Rules Engines differences, who + was hoping to find some hidden secrets to help improve the Drools engine. + While a Production Rule System is a kind of Rule Engine and also Expert + System, the validation Rule Engine mention previously obviously isn't an + Expert System.</para> <para>The brain of a Production Rule System is an Inference Engine which matches facts, the data, against Production Rules, also called @@ -84,17 +84,17 @@ <primary>Rete</primary> </indexterm>Rete and <indexterm> <primary>Leaps</primary> - </indexterm>Leaps; Leaps is still considered experiment. The Drools - <indexterm> + </indexterm>Leaps; Leaps is considered provisional, as it is quite new. + The Drools <indexterm> <primary>Rete</primary> </indexterm>Rete implementation is called ReteOO signifying that Drools - has an enhanced and optimised implementation of the Rete algorithm. Other - Rete based engines also have marketing terms for their proprietary - enhancements to Rete, like RetePlus and Rete III. It is important to - understand that names like Rete III are purely marketing where, unlike the - original published Rete Algorithm, no details of implementation are - published; thus asking a question like "Does Drools implement Rete III" is - nonsensical.</para> + has an enhanced and optimised implementation of the Rete algorithm for + Object Oriented systems. Other Rete based engines also have marketing + terms for their proprietary enhancements to Rete, like RetePlus and Rete + III. It is important to understand that names like Rete III are purely + marketing where, unlike the original published Rete Algorithm, no details + of implementation are published; thus asking a question like "Does Drools + implement Rete III?" is nonsensical.</para> <para>The Production Rules are referred to as the <indexterm> <primary>Production Memory</primary> @@ -106,7 +106,7 @@ of rules and facts may result in many rules being true for the same fact assertion, these rules are said to be in conflict. The Agenda manages the execution order of these conflicuting rules using a Conflict Resolution - stategy. </para> + stategy.</para> <figure> <title>A Basic Rete network</title> |
From: <jbo...@li...> - 2006-05-22 00:17:36
|
Author: mic...@jb... Date: 2006-05-21 20:17:27 -0400 (Sun, 21 May 2006) New Revision: 4337 Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt Log: more changes Modified: labs/jbossrules/trunk/documentation/training/developers-course/course_outline.odt =================================================================== (Binary files differ) |
From: <jbo...@li...> - 2006-05-21 23:58:58
|
Author: mar...@jb... Date: 2006-05-21 19:58:44 -0400 (Sun, 21 May 2006) New Revision: 4336 Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.png labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.svg labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.png labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.svg labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.png labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.svg labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.png labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.svg labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.png labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.svg Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/A_Basic_Rete_Network.vsd labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rete_Algorithm.xml labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rules.xml labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml Log: -more Rule Engine docs Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/A_Basic_Rete_Network.vsd =================================================================== (Binary files differ) Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.png =================================================================== (Binary files differ) Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.svg 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Alpha_Nodes.svg 2006-05-21 23:58:44 UTC (rev 4336) @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 Alpha_Nodes.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.37892in" + height="2.46346in" viewBox="0 0 171.283 177.369" xml:space="preserve" color-interpolation-filters="sRGB" class="st7"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#3366ff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:#ff0000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st3 {marker-end:url(#mrkr4-10);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913} + .st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st6 {fill:#000000;font-family:Arial;font-size:0.833336em} + .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-10" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <v:layer v:name="Flowchart" v:index="1"/> + <g id="shape79-1" v:mID="79" v:groupContext="shape" v:layerMember="0;1" transform="translate(35.8381,-127.988)"> + <title>On-page reference.79</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 163.2 A14.1732 14.1732 0 0 1 28.35 163.2 A14.1732 14.1732 0 1 1 0 163.2 Z" class="st1"/> + </g> + <g id="shape80-3" v:mID="80" v:groupContext="shape" v:layerMember="0;1" transform="translate(35.8381,-63.1219)"> + <title>On-page reference.80</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 163.2 A14.1732 14.1732 0 0 1 28.35 163.2 A14.1732 14.1732 0 1 1 0 163.2 Z" class="st2"/> + </g> + <g id="shape81-5" v:mID="81" v:groupContext="shape" v:layerMember="0" transform="translate(57.098,-127.988)"> + <title>Dynamic connector.81</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M-7.09 177.37 L-7.09 208.37" class="st3"/> + </g> + <g id="shape82-11" v:mID="82" v:groupContext="shape" transform="translate(0.72,-164.649)"> + <title>Sheet.82</title> + <desc>Cheese</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="171.369" width="100.01" height="12"/> + <rect x="0" y="165.369" width="100" height="12" class="st5"/> + <text x="32.77" y="174.37" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Cheese</text> </g> + <g id="shape83-14" v:mID="83" v:groupContext="shape" v:layerMember="0" transform="translate(42.9247,-63.1219)"> + <title>Dynamic connector.83</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 177.37 L7.09 206.38" class="st3"/> + </g> + <g id="shape84-19" v:mID="84" v:groupContext="shape" transform="translate(66.6255,-71.2951)"> + <title>Sheet.84</title> + <desc>name == “cheddar”</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="171.369" width="100.01" height="12"/> + <rect x="0" y="165.369" width="100" height="12" class="st5"/> + <text x="7.48" y="174.37" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>name == “cheddar”</text> </g> + <g id="shape91-22" v:mID="91" v:groupContext="shape" v:layerMember="0;1" transform="translate(35.8381,-0.24)"> + <title>On-page reference.91</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 163.2 A14.1732 14.1732 0 0 1 28.35 163.2 A14.1732 14.1732 0 1 1 0 163.2 Z" class="st2"/> + </g> + <g id="shape93-24" v:mID="93" v:groupContext="shape" transform="translate(70.5625,-8.41323)"> + <title>Sheet.93</title> + <desc>strength == “strong”</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="171.369" width="100.01" height="12"/> + <rect x="0" y="165.369" width="100" height="12" class="st5"/> + <text x="4.7" y="174.37" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>strength == “strong”</text> </g> + </g> +</svg> Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.png =================================================================== (Binary files differ) Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.svg 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Join_Node.svg 2006-05-21 23:58:44 UTC (rev 4336) @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 Join_Node.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.29493in" + height="4.25016in" viewBox="0 0 309.235 306.012" xml:space="preserve" color-interpolation-filters="sRGB" class="st11"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#3366ff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:#ff0000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st3 {marker-end:url(#mrkr4-10);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913} + .st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st6 {fill:#000000;font-family:Arial;font-size:0.833336em} + .st7 {fill:#00ff00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st8 {fill:#ffcc00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st9 {font-size:1em} + .st10 {marker-end:url(#mrkr4-40);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st11 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-10" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + <marker id="mrkr4-40" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="21.5" refX="-21.5" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <v:layer v:name="Flowchart" v:index="1"/> + <g id="shape47-1" v:mID="47" v:groupContext="shape" v:layerMember="0;1" transform="translate(36.5468,-250.299)"> + <title>On-page reference.47</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 291.84 A14.1732 14.1732 0 0 1 28.35 291.84 A14.1732 14.1732 0 1 1 0 291.84 Z" class="st1"/> + </g> + <g id="shape48-3" v:mID="48" v:groupContext="shape" v:layerMember="0;1" transform="translate(36.5468,-179.433)"> + <title>On-page reference.48</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 291.84 A14.1732 14.1732 0 0 1 28.35 291.84 A14.1732 14.1732 0 1 1 0 291.84 Z" class="st2"/> + </g> + <g id="shape49-5" v:mID="49" v:groupContext="shape" v:layerMember="0" transform="translate(43.6334,-250.299)"> + <title>Dynamic connector.49</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 306.01 L7.09 343.01" class="st3"/> + </g> + <g id="shape50-11" v:mID="50" v:groupContext="shape" transform="translate(0.72,-292.441)"> + <title>Sheet.50</title> + <desc>Cheese</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="300.012" width="100.01" height="12"/> + <rect x="0" y="294.012" width="100" height="12" class="st5"/> + <text x="32.77" y="303.01" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Cheese</text> </g> + <g id="shape55-14" v:mID="55" v:groupContext="shape" transform="translate(67.3342,-193.607)"> + <title>Sheet.55</title> + <desc>name == “cheddar”</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="300.012" width="100.01" height="12"/> + <rect x="0" y="294.012" width="100" height="12" class="st5"/> + <text x="7.48" y="303.01" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>name == “cheddar”</text> </g> + <g id="shape43-17" v:mID="43" v:groupContext="shape" v:layerMember="0;1" transform="translate(206.744,-250.299)"> + <title>On-page reference.43</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 291.84 A14.1732 14.1732 0 0 1 28.35 291.84 A14.1732 14.1732 0 1 1 0 291.84 Z" class="st1"/> + </g> + <g id="shape44-19" v:mID="44" v:groupContext="shape" v:layerMember="1" transform="translate(106.311,563.362) scale(1,-1)"> + <title>Manual operation</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 306.01 L56.69 306.01 L70.87 263.49 L0 263.49 L14.17 306.01 Z" class="st7"/> + </g> + <g id="shape45-21" v:mID="45" v:groupContext="shape" v:layerMember="0;1" transform="translate(36.5468,-109.04)"> + <title>On-page reference.45</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 291.84 A14.1732 14.1732 0 0 1 28.35 291.84 A14.1732 14.1732 0 1 1 0 291.84 Z" class="st8"/> + </g> + <g id="shape46-23" v:mID="46" v:groupContext="shape" v:layerMember="0" transform="translate(43.6334,-179.433)"> + <title>Dynamic connector</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 306.01 L7.09 342.54" class="st3"/> + </g> + <g id="shape53-28" v:mID="53" v:groupContext="shape" transform="translate(173.555,-293.292)"> + <title>Sheet.53</title> + <desc>Person</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="300.012" width="100.01" height="12"/> + <rect x="0" y="294.012" width="100" height="12" class="st5"/> + <text x="34.16" y="303.01" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person</text> </g> + <g id="shape57-31" v:mID="57" v:groupContext="shape" transform="translate(179.854,-6.00027)"> + <title>Sheet.57</title> + <desc>Person.favouriteCheese == Cheese.name</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="64.3307" cy="300.012" width="128.67" height="12"/> + <rect x="0" y="294.012" width="128.661" height="12" class="st5"/> + <text x="3.45" y="297.01" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person.favouriteCheese == <tspan + x="33.19" dy="1.2em" class="st9">Cheese</tspan>.name</text> </g> + <g id="shape58-35" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(50.72,-109.04)"> + <title>Dynamic connector.58</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 306.01 C0 326.42 -1.58 348.16 11.1 363.81 C21.58 376.75 41.8 385.52 57.17 387.31 L57.53 387.33" + class="st10"/> + </g> + <g id="shape59-41" v:mID="59" v:groupContext="shape" v:layerMember="0" transform="translate(220.917,-250.299)"> + <title>Dynamic connector.59</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 306.01 C0 414.89 -3.87 456.43 -18.58 491.78 C-25.52 508.47 -34.89 523.78 -45.41 527.85 L-45.76 527.92" + class="st10"/> + </g> + </g> +</svg> Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.png =================================================================== (Binary files differ) Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.svg 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Node_Sharing.svg 2006-05-21 23:58:44 UTC (rev 4336) @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 Node_Sharing.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.75972in" + height="7.68743in" viewBox="0 0 342.7 553.495" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#3366ff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:#ff0000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st3 {marker-end:url(#mrkr4-10);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913} + .st5 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st7 {fill:#000000;font-family:Arial;font-size:0.833336em} + .st8 {fill:#00ff00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st9 {fill:#ffcc00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st10 {font-size:1em} + .st11 {marker-end:url(#mrkr4-53);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st12 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-10" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + <marker id="mrkr4-53" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="21.5" refX="-21.5" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <v:layer v:name="Flowchart" v:index="1"/> + <g id="shape1-1" v:mID="1" v:groupContext="shape" v:layerMember="0;1" transform="translate(26.3893,-497.027)"> + <title>On-page reference.47</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 539.32 A14.1732 14.1732 0 0 1 28.35 539.32 A14.1732 14.1732 0 1 1 0 539.32 Z" class="st1"/> + </g> + <g id="shape2-3" v:mID="2" v:groupContext="shape" v:layerMember="0;1" transform="translate(26.3893,-426.16)"> + <title>On-page reference.48</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 539.32 A14.1732 14.1732 0 0 1 28.35 539.32 A14.1732 14.1732 0 1 1 0 539.32 Z" class="st2"/> + </g> + <g id="shape3-5" v:mID="3" v:groupContext="shape" v:layerMember="0" transform="translate(33.4759,-497.027)"> + <title>Dynamic connector.49</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 553.49 L7.09 590.49" class="st3"/> + </g> + <g id="shape4-11" v:mID="4" v:groupContext="shape" v:layerMember="1" transform="translate(104.657,-204.113)"> + <title>Terminator.51</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 553.49 L56.69 553.49 A14.1732 14.1732 -180 0 0 56.69 525.15 L14.17 525.15 A14.1732 14.1732 -180 1 0 14.17 + 553.49 Z" class="st5"/> + </g> + <g id="shape5-13" v:mID="5" v:groupContext="shape" v:layerMember="0" transform="translate(133.003,-281.783)"> + <title>Dynamic connector.52</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 553.49 L7.09 597.3" class="st3"/> + </g> + <g id="shape6-18" v:mID="6" v:groupContext="shape" transform="translate(57.1767,-440.334)"> + <title>Sheet.6</title> + <desc>name == “cheddar”</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="547.495" width="100.01" height="12"/> + <rect x="0" y="541.495" width="100" height="12" class="st6"/> + <text x="7.48" y="550.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>name == “cheddar”</text> </g> + <g id="shape7-21" v:mID="7" v:groupContext="shape" v:layerMember="0;1" transform="translate(274.066,-497.783)"> + <title>On-page reference.43</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 539.32 A14.1732 14.1732 0 0 1 28.35 539.32 A14.1732 14.1732 0 1 1 0 539.32 Z" class="st1"/> + </g> + <g id="shape8-23" v:mID="8" v:groupContext="shape" v:layerMember="1" transform="translate(104.657,782.687) scale(1,-1)"> + <title>Manual operation</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 553.49 L56.69 553.49 L70.87 510.97 L0 510.97 L14.17 553.49 Z" class="st8"/> + </g> + <g id="shape9-25" v:mID="9" v:groupContext="shape" v:layerMember="0;1" transform="translate(26.3893,-355.767)"> + <title>On-page reference.45</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 539.32 A14.1732 14.1732 0 0 1 28.35 539.32 A14.1732 14.1732 0 1 1 0 539.32 Z" class="st9"/> + </g> + <g id="shape10-27" v:mID="10" v:groupContext="shape" v:layerMember="0" transform="translate(33.4759,-426.16)"> + <title>Dynamic connector</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 553.49 L7.09 590.02" class="st3"/> + </g> + <g id="shape11-32" v:mID="11" v:groupContext="shape" transform="translate(240.877,-540.775)"> + <title>Sheet.11</title> + <desc>Person</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="547.495" width="100.01" height="12"/> + <rect x="0" y="541.495" width="100" height="12" class="st6"/> + <text x="34.16" y="550.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person</text> </g> + <g id="shape12-35" v:mID="12" v:groupContext="shape" transform="translate(145.287,-257.972)"> + <title>Sheet.12</title> + <desc>Person.favouriteCheese == Cheese.name</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="64.3307" cy="547.495" width="128.67" height="12"/> + <rect x="0" y="541.495" width="128.661" height="12" class="st6"/> + <text x="3.45" y="544.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person.favouriteCheese == <tspan + x="33.19" dy="1.2em" class="st10">Cheese</tspan>.name</text> </g> + <g id="shape15-39" v:mID="15" v:groupContext="shape" transform="translate(0.72,-180.775)"> + <title>Sheet.15</title> + <desc>System.out.println( person.getName() + " likes cheddar" )</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="132.303" cy="547.495" width="264.61" height="12"/> + <rect x="0" y="541.495" width="264.606" height="12" class="st6"/> + <text x="5.78" y="550.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>System.out.println( person.getName() + " likes cheddar" )</text> </g> + <g id="shape17-42" v:mID="17" v:groupContext="shape" v:layerMember="1" transform="translate(142.452,956.734) scale(1,-1)"> + <title>Manual operation.17</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 553.49 L56.69 553.49 L70.87 510.97 L0 510.97 L14.17 553.49 Z" class="st8"/> + </g> + <g id="shape18-44" v:mID="18" v:groupContext="shape" transform="translate(213.318,-107.735)"> + <title>Sheet.18</title> + <desc>Person.favouriteCheese != Cheese.name</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="64.3307" cy="547.495" width="128.67" height="12"/> + <rect x="0" y="541.495" width="128.661" height="12" class="st6"/> + <text x="4.98" y="544.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person.favouriteCheese != <tspan + x="33.19" dy="1.2em" class="st10">Cheese</tspan>.name</text> </g> + <g id="shape19-48" v:mID="19" v:groupContext="shape" v:layerMember="0" transform="translate(288.24,-497.783)"> + <title>Dynamic connector.19</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 553.49 C0 645.69 -0 801.81 -19.6 869.81 C-33.39 917.69 -56.9 921.88 -76.49 922.25 L-76.85 922.25" + class="st11"/> + </g> + <g id="shape13-54" v:mID="13" v:groupContext="shape" v:layerMember="0" transform="translate(40.5625,-355.767)"> + <title>Dynamic connector.13</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 553.49 C-0 566.68 0 585.64 12.28 595.51 C24.29 605.17 48.06 606.12 65.66 606.21 L66.02 606.21" class="st11"/> + </g> + <g id="shape20-59" v:mID="20" v:groupContext="shape" v:layerMember="0" transform="translate(40.5625,-355.767)"> + <title>Dynamic connector.20</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 553.49 C-0 610.19 0 702.72 24.19 744.91 C43.13 777.93 76.89 780.11 103.46 780.26 L103.82 780.26" + class="st11"/> + </g> + <g id="shape14-64" v:mID="14" v:groupContext="shape" v:layerMember="0" transform="translate(288.24,-497.783)"> + <title>Dynamic connector.14</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 553.49 C-0 602.18 0 679.84 -25.4 716.2 C-46.43 746.31 -84.87 748.12 -114.28 748.23 L-114.64 748.23" + class="st11"/> + </g> + <g id="shape21-69" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(142.452,-29.3389)"> + <title>Terminator.21</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 553.49 L56.69 553.49 A14.1732 14.1732 -180 0 0 56.69 525.15 L14.17 525.15 A14.1732 14.1732 -180 1 0 14.17 + 553.49 Z" class="st5"/> + </g> + <g id="shape22-71" v:mID="22" v:groupContext="shape" v:layerMember="0" transform="translate(170.799,-107.735)"> + <title>Dynamic connector.22</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 553.49 L7.09 598.02" class="st3"/> + </g> + <g id="shape23-76" v:mID="23" v:groupContext="shape" transform="translate(45.5822,-6.00027)"> + <title>Sheet.23</title> + <desc>System.out.println( person.getName() + " does not like chedda...</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="132.303" cy="547.495" width="264.61" height="12"/> + <rect x="0" y="541.495" width="264.606" height="12" class="st6"/> + <text x="12" y="544.49" class="st7" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>System.out.println( person.getName() + " does not like <tspan + x="109.4" dy="1.2em" class="st10">cheddar</tspan>" )</text> </g> + </g> +</svg> Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.png =================================================================== (Binary files differ) Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.svg 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Object_Type_Nodes.svg 2006-05-21 23:58:44 UTC (rev 4336) @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 Object_Type_Nodes.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.78876in" + height="2.3339in" viewBox="0 0 200.79 168.041" xml:space="preserve" color-interpolation-filters="sRGB" class="st8"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:#3366ff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st3 {marker-end:url(#mrkr4-10);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913} + .st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st6 {fill:#000000;font-family:Arial;font-size:0.833336em} + .st7 {marker-end:url(#mrkr4-29);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st8 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-10" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + <marker id="mrkr4-29" class="st4" v:arrowType="4" v:arrowSize="2" v:setback="21.5" refX="-21.5" orient="auto" + markerUnits="strokeWidth"> + <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/> + </marker> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <v:layer v:name="Flowchart" v:index="1"/> + <g id="shape65-1" v:mID="65" v:groupContext="shape" v:layerMember="0;1" transform="translate(82.4326,-115.618)"> + <title>On-page reference.65</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 153.87 A14.1732 14.1732 0 0 1 28.35 153.87 A14.1732 14.1732 0 1 1 0 153.87 Z" class="st1"/> + </g> + <g id="shape66-3" v:mID="66" v:groupContext="shape" v:layerMember="0;1" transform="translate(12.472,-48.6912)"> + <title>On-page reference.66</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 153.87 A14.1732 14.1732 0 0 1 28.35 153.87 A14.1732 14.1732 0 1 1 0 153.87 Z" class="st2"/> + </g> + <g id="shape67-5" v:mID="67" v:groupContext="shape" v:layerMember="0" transform="translate(19.5586,-48.6912)"> + <title>Dynamic connector.67</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 168.04 L7.09 205.04" class="st3"/> + </g> + <g id="shape68-11" v:mID="68" v:groupContext="shape" transform="translate(0.72,-91.8539)"> + <title>Sheet.68</title> + <desc>Cheese</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="25.9252" cy="162.041" width="51.86" height="12"/> + <rect x="0" y="156.041" width="51.8504" height="12" class="st5"/> + <text x="8.69" y="165.04" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Cheese</text> </g> + <g id="shape69-14" v:mID="69" v:groupContext="shape" v:layerMember="0;1" transform="translate(149.047,-48.6912)"> + <title>On-page reference.69</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 153.87 A14.1732 14.1732 0 0 1 28.35 153.87 A14.1732 14.1732 0 1 1 0 153.87 Z" class="st2"/> + </g> + <g id="shape70-16" v:mID="70" v:groupContext="shape" transform="translate(149.48,-91.6834)"> + <title>Sheet.70</title> + <desc>Person</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="25.2953" cy="162.041" width="50.6" height="12"/> + <rect x="0" y="156.041" width="50.5906" height="12" class="st5"/> + <text x="9.46" y="165.04" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Person</text> </g> + <g id="shape71-19" v:mID="71" v:groupContext="shape" v:layerMember="0" transform="translate(156.133,-48.6912)"> + <title>Dynamic connector.71</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M7.09 168.04 L7.09 205.04" class="st3"/> + </g> + <g id="shape72-24" v:mID="72" v:groupContext="shape" v:layerMember="0" transform="translate(96.6058,-115.618)"> + <title>Dynamic connector.72</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 168.04 C0 187.01 -55.71 189.05 -67.7 201.58 L-67.85 201.91" class="st7"/> + </g> + <g id="shape73-30" v:mID="73" v:groupContext="shape" v:layerMember="0" transform="translate(96.6058,-115.618)"> + <title>Dynamic connector.73</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <path d="M0 168.04 C0 187 52.95 189.05 64.44 201.55 L64.58 201.88" class="st7"/> + </g> + <g id="shape74-35" v:mID="74" v:groupContext="shape" transform="translate(64.6373,-155.321)"> + <title>Sheet.74</title> + <desc>ReteNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="31.9685" cy="162.041" width="63.94" height="12"/> + <rect x="0" y="156.041" width="63.937" height="12" class="st5"/> + <text x="9.46" y="165.04" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>ReteNode</text> </g> + </g> +</svg> Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.png =================================================================== (Binary files differ) Property changes on: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.svg =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.svg 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Rete_Nodes.svg 2006-05-21 23:58:44 UTC (rev 4336) @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 Rete_Nodes.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.35694in" + height="2.71336in" viewBox="0 0 313.7 195.362" xml:space="preserve" color-interpolation-filters="sRGB" class="st9"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#3366ff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st2 {fill:#ff0000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st3 {fill:#ffcc00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st4 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72} + .st6 {fill:#000000;font-family:Arial;font-size:0.833336em} + .st7 {fill:#00ff00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st8 {fill:#ffff00;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st9 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <v:layer v:name="Flowchart" v:index="1"/> + <g id="shape35-1" v:mID="35" v:groupContext="shape" v:layerMember="0;1" transform="translate(2.75173,-166.067)"> + <title>On-page reference.35</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 181.19 A14.1732 14.1732 0 0 1 28.35 181.19 A14.1732 14.1732 0 1 1 0 181.19 Z" class="st1"/> + </g> + <g id="shape36-3" v:mID="36" v:groupContext="shape" v:layerMember="0;1" transform="translate(2.75173,-120.712)"> + <title>On-page reference.36</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 181.19 A14.1732 14.1732 0 0 1 28.35 181.19 A14.1732 14.1732 0 1 1 0 181.19 Z" class="st2"/> + </g> + <g id="shape37-5" v:mID="37" v:groupContext="shape" v:layerMember="0;1" transform="translate(2.75173,-75.3581)"> + <title>On-page reference.37</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 181.19 A14.1732 14.1732 0 0 1 28.35 181.19 A14.1732 14.1732 0 1 1 0 181.19 Z" class="st3"/> + </g> + <g id="shape38-7" v:mID="38" v:groupContext="shape" v:layerMember="1" transform="translate(142.114,-0.24)"> + <title>Terminator.40</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 195.36 L56.69 195.36 A14.1732 14.1732 -180 0 0 56.69 167.02 L14.17 167.02 A14.1732 14.1732 -180 1 0 14.17 + 195.36 Z" class="st4"/> + </g> + <g id="shape39-9" v:mID="39" v:groupContext="shape" transform="translate(25.4289,-175.531)"> + <title>Sheet.39</title> + <desc>ObjectTypeNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="189.362" width="100.01" height="12"/> + <rect x="0" y="183.362" width="100" height="12" class="st5"/> + <text x="12.48" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>ObjectTypeNode</text> </g> + <g id="shape40-12" v:mID="40" v:groupContext="shape" transform="translate(31.0982,-128.76)"> + <title>Sheet.40</title> + <desc>AlphaNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="31.9685" cy="189.362" width="63.94" height="12"/> + <rect x="0" y="183.362" width="63.937" height="12" class="st5"/> + <text x="7.23" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>AlphaNode</text> </g> + <g id="shape61-15" v:mID="61" v:groupContext="shape" v:layerMember="1" transform="translate(145.271,246.626) scale(1,-1)"> + <title>Manual operation.38</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 195.36 L56.69 195.36 L70.87 152.84 L0 152.84 L14.17 195.36 Z" class="st7"/> + </g> + <g id="shape62-17" v:mID="62" v:groupContext="shape" transform="translate(205.823,-122.838)"> + <title>Sheet.62</title> + <desc>JoinNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="189.362" width="100.01" height="12"/> + <rect x="0" y="183.362" width="100" height="12" class="st5"/> + <text x="28.87" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>JoinNode</text> </g> + <g id="shape63-20" v:mID="63" v:groupContext="shape" transform="translate(22.4761,-83.5313)"> + <title>Sheet.63</title> + <desc>LeftInputAdapterNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="66.1024" cy="189.362" width="132.21" height="12"/> + <rect x="0" y="183.362" width="132.205" height="12" class="st5"/> + <text x="17.17" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>LeftInputAdapterNode</text> </g> + <g id="shape64-23" v:mID="64" v:groupContext="shape" transform="translate(212.98,-6.6652)"> + <title>Sheet.64</title> + <desc>TerminalNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="189.362" width="100.01" height="12"/> + <rect x="0" y="183.362" width="100" height="12" class="st5"/> + <text x="18.6" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>TerminalNode</text> </g> + <g id="shape41-26" v:mID="41" v:groupContext="shape" v:layerMember="0;1" transform="translate(166.531,-166.775)"> + <title>On-page reference.41</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 181.19 A14.1732 14.1732 0 0 1 28.35 181.19 A14.1732 14.1732 0 1 1 0 181.19 Z" class="st4"/> + </g> + <g id="shape42-28" v:mID="42" v:groupContext="shape" transform="translate(226.689,-174.949)"> + <title>Sheet.42</title> + <desc>ReteNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="31.9685" cy="189.362" width="63.94" height="12"/> + <rect x="0" y="183.362" width="63.937" height="12" class="st5"/> + <text x="9.46" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>ReteNode</text> </g> + <g id="shape75-31" v:mID="75" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-28.5865)"> + <title>On-page reference.75</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M0 181.19 A14.1732 14.1732 0 0 1 28.35 181.19 A14.1732 14.1732 0 1 1 0 181.19 Z" class="st7"/> + </g> + <g id="shape76-33" v:mID="76" v:groupContext="shape" transform="translate(19.9644,-36.7597)"> + <title>Sheet.76</title> + <desc>EvalNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="41.3937" cy="189.362" width="82.79" height="12"/> + <rect x="0" y="183.362" width="82.7873" height="12" class="st5"/> + <text x="19.72" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>EvalNode</text> </g> + <g id="shape77-36" v:mID="77" v:groupContext="shape" v:layerMember="1" transform="translate(141.531,304.736) scale(1,-1)"> + <title>Manual operation.77</title> + <v:custProps> + <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/> + <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/> + <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/> + </v:custProps> + <v:userDefs> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(11):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <path d="M14.17 195.36 L56.69 195.36 L70.87 152.84 L0 152.84 L14.17 195.36 Z" class="st8"/> + </g> + <g id="shape78-38" v:mID="78" v:groupContext="shape" transform="translate(202.082,-64.7282)"> + <title>Sheet.78</title> + <desc>NotNode</desc> + <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/> + <v:textRect cx="50" cy="189.362" width="100.01" height="12"/> + <rect x="0" y="183.362" width="100" height="12" class="st5"/> + <text x="30.27" y="192.36" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>NotNode</text> </g> + </g> +</svg> Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rete_Algorithm.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rete_Algorithm.xml 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rete_Algorithm.xml 2006-05-21 23:58:44 UTC (rev 4336) @@ -18,6 +18,20 @@ Forgy's 1982 paper, he described 4 basic nodes: root, 1-input, 2-input and terminal.</para> + <figure> + <title>Rete Nodes</title> + + <mediaobject> + <imageobject> + <imagedata align="center" fileref="Rete_Nodes.svg" format="SVG" /> + </imageobject> + + <imageobject> + <imagedata align="center" fileref="Rete_Nodes.png" format="PNG" /> + </imageobject> + </mediaobject> + </figure> + <para>The root node is where all objects enter the network. From there, it immediately goes to the ObjectTypeNode. The purpose of the ObjectTypeNode is to make sure the engine doesn't do more work than it needs to. For example, @@ -27,50 +41,137 @@ the nodes that match the object type. The easiest way to do this is to create an ObjectTypeNode and have all 1-input and 2-input nodes descend from it. This way, if an application asserts a new account, it won't propogate to - the nodes for the Order object. Many modern RETE implementation have - specialized ObjectTypeNode. In some cases, the ObjectTypeNode is further - optimized using hashing.</para> + the nodes for the Order object. In Drools when an object is asserted it + retrieves the List of valid ObjectTypesNodes via a lookup in a HashMap from + the object's Class; if this list does'nt exist it scans all the ObjectTypde + nodes finding valid matches which it caches in the List. This enables Drools + to match against any Class type that matches with an + <literal>instanceof</literal> of check.</para> - <para>One input nodes are commonly called AlphaNodes. AlphaNodes are used to - evaluate literal conditions. Although the 1982 paper only covers equality - conditions, many RETE implementations support other operations. For example, - Account.name == "Mark" is a literal conditions. When a rule has multiple - literal conditions for a single object type, they are linked together. This - means that if an application asserts an account object, it must first - satisfy the first literal condition before it can proceed to the next - AlphaNode. In Dr. Forgy's paper, he refers to these as IntraElement - conditions. ObjectTypeNode mentioned in the previous paragraph is a - specialized AlphaNode.</para> + <figure> + <title>ObjectTypeNodes</title> - <para>Two input nodes are commonly called BetaNodes. BetaNodes are use to - compare 2 objects to each other. The objects may be the same or different - types. The left input for a BetaNode is generally a list of objects. The - right input is a single object. In some cases, a rule engine may implement - several BetaNodes to handle existential conditions and negated conditional - element. Many modern RETE implementations also optimize BetaNodes through - hash or b-tree indexes.</para> + <mediaobject> + <imageobject> + <imagedata align="center" fileref="Object_Type_Nodes.svg" format="SVG" /> + </imageobject> + <imageobject> + <imagedata align="center" fileref="Object_Type_Nodes.png" format="PNG" /> + </imageobject> + </mediaobject> + </figure> + + <para>ObjectTypdeNodes can propagate to AlphaNodes, LeftInputAdapterNodes + and BetaNodes. AlphaNodes are used to evaluate literal conditions. Although + the 1982 paper only covers equality conditions, many RETE implementations + support other operations. For example, Account.name == "Mr Trout" is a + literal condition. When a rule has multiple literal conditions for a single + object type, they are linked together. This means that if an application + asserts an account object, it must first satisfy the first literal condition + before it can proceed to the next AlphaNode. In Dr. Forgy's paper, he refers + to these as IntraElement conditions. The following shows the AlphaNode + combinations for Cheese( name == "cheddar, strength == "strong" ):</para> + + <figure> + <title>AlphaNodes</title> + + <mediaobject> + <imageobject> + <imagedata align="center" fileref="Alpha_Nodes.svg" format="SVG" /> + </imageobject> + + <imageobject> + <imagedata align="center" fileref="Alpha_Nodes.png" format="PNG" /> + </imageobject> + </mediaobject> + </figure> + + <para>Drools extends Rete by optimising the propagation from ObjectTypdeNode + to AlphaNode using hashing. Each time an AlphaNode is added to an + ObjectTypdeNode it adds the literal value as a key to the HashMap with the + AlphaNode as the value. When a new instance enters the ObjectTypde node, + rather than propagating to each AlphaNode, it can instead retrieve the + correct AlphaNode from the HashMap - avoiding unecessary literal + checks.</para> + + <para>There are two two-input nodes; JoinNode and NotNode - both are + referred as BetaNodes. BetaNodes are use to compare 2 objects, and their + fields, to each other. The objects may be the same or different types. By + convention we refer to the two inputs as left and right. The left input for + a BetaNode is generally a list of objects, in Drools this is a Tuple. The + right input is a single object. Two Nots can be used to implement 'exists' + checks. BetaNodes also have memory. The left input is called the Beta Memory + and remembers all incoming tuples. The right input is called the Alpha + Memory and remembers all incoming objects. Drools extends Rete by + performaning indexing on the BetaNodes. For instance if we know that a + BetaNode is peforming a check on a String field, as each object enters we + can do a hash lookup on that String value. This means when facts enter from + the opposite side, instead of iterating over all the facts to find valid + joins we instead do a lookup returning potentially valid candidates. At any + point a valid join is found the Tuple is joined with the Object, which is + referred to as a partial match, and then propagated to the next node.</para> + + <figure> + <title>JoinNode</title> + + <mediaobject> + <imageobject> + <imagedata align="center" fileref="Join_Node.svg" format="SVG" /> + </imageobject> + + <imageobject> + <imagedata align="center" fileref="Join_Node.png" format="PNG" /> + </imageobject> + </mediaobject> + </figure> + + <para>To enable the first Object, in the above case Cheese, to enter the + network we use a LeftInputNodeAdapter - this takes an Object as an input and + propagates a single Object Tuple.</para> + <para>Terminal nodes are used to indicate a single rule has matched all its - conditions. In some cases, a rule with an OR disjunction can have more than - 1 terminal node. From a RETE network perspective a rule with OR disjunction - is really just 2 nodes with many shared nodes.</para> + conditions - at this point we say the rule has a full match. A rule with an + 'or' conditional disjunctive connective results in subrule generation for + each possible logically branch; thus one rule can have multiple terminal + nodes.</para> - <para>The second part of RETE algorithm is the runtime. When an application - asserts an object, the engine passes the data to the root node. From there, - it enters the ObjectTypeNode and propogates down the network. When the data - matches the condition of a node, the node remembers it with an AlphaMemory. - When the data reaches a BetaNode, the node adds it to the corresponding - memory. The BetaNode will propogate the data, if there is a match between - the right and left. This is done for several reasons. The primary benefit is - faster performance. Although remembering all complete and partial matches - takes memory, it provides a significant speed and scalability advantage. - When all the conditions of a rule are satisfied, it is considered a complete - match. Partial matches occur when some of the rules conditions match, but - other conditions are not. Some rule engines optimize the Beta and Alpha - memory for BetaNodes and attempt to reduce the number of evaluations between - the data in the right and left inputs.</para> + <para>Drools also performs node sharing. Many rules repeat the same + patterns, node sharing allows us to collapse those patterns so that they + don't have to be re-evaluated for every single instance. The following two + rules share the first same pattern, but not the last:</para> - <para>In general, optimizing the runtime performance of RETE through - additional indexing of the memories does not violate the basic intent and - design of RETE algorithm.</para> + <programlisting>rule + when + Cheese( $chedddar : name == "cheddar" ) + $person : Person( favouriteCheese == $cheddar ) + then + System.out.println( $person.getName() + " likes cheddar" ); +end</programlisting> + + <programlisting>rule + when + Cheese( $chedddar : name == "cheddar" ) + $person : Person( favouriteCheese != $cheddar ) + then + System.out.println( $person.getName() + " does likes cheddar" ); +end</programlisting> + + <para>As you can see the compiled Rete network shows the alpha node is + shared, but the beta nodes are not, each with their own TerminalNode. Had + the second pattern been the same it would have also been shared.</para> + + <figure> + <title>Node Sharing</title> + + <mediaobject> + <imageobject> + <imagedata align="center" fileref="Node_Sharing.svg" format="SVG" /> + </imageobject> + + <imageobject> + <imagedata align="center" fileref="Node_Sharing.png" format="PNG" /> + </imageobject> + </mediaobject> + </figure> </section> \ No newline at end of file Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rules.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rules.xml 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-Rules.xml 2006-05-21 23:58:44 UTC (rev 4336) @@ -302,6 +302,8 @@ m.score < 40 )</programlisting> + <para></para> + <programlisting>rule when exists( $student : Student() && Module( student == $student, score < 40 ) )</programlisting> Modified: labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml =================================================================== --- labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2006-05-21 21:56:33 UTC (rev 4335) +++ labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Engine/Section-What_is_a_Rule_Engine.xml 2006-05-21 23:58:44 UTC (rev 4336) @@ -152,7 +152,7 @@ results in rules firing - we start with a fact, it propagates and we end in a conclusion. Drools is a forward chaining engine. Backward chaining is 'goal-driven', we start with a conclusion which the engine tries to - satisfy. If it can't it searches for conclusions, 'sub goals', that helps + satisfy. If it can't it searches for conclusions, 'sub goals', that help sa... [truncated message content] |
Author: KrisVerlaenen Date: 2006-05-21 17:56:33 -0400 (Sun, 21 May 2006) New Revision: 4335 Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/java_keywords.properties Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/Keywords.java labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/scanners/DRLScanner.java labs/jbossrules/trunk/drools-ide/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java Log: Added syntax highlighting of Java keywords Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/Keywords.java =================================================================== --- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/Keywords.java 2006-05-20 21:33:33 UTC (rev 4334) +++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/Keywords.java 2006-05-21 21:56:33 UTC (rev 4335) @@ -14,7 +14,8 @@ */ public class Keywords { - private String[] all; + private String[] allDrools; + private String[] allJava; private static Keywords instance; public static Keywords getInstance() { @@ -25,13 +26,22 @@ } - public String[] getAll() { - return all; + public String[] getAllDroolsKeywords() { + return allDrools; } + public String[] getAllJavaKeywords() { + return allJava; + } + private Keywords() { - InputStream stream = this.getClass().getResourceAsStream("keywords.properties"); + allDrools = readKeywords("keywords.properties"); + allJava = readKeywords("java_keywords.properties"); + } + + private String[] readKeywords(String fileName) { + InputStream stream = this.getClass().getResourceAsStream(fileName); try { BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); @@ -42,10 +52,7 @@ if (!line.startsWith( "#" )) list.add( line ); } - all = new String[list.size()]; - list.toArray( all ); - - + return (String[]) list.toArray( new String[list.size()] ); } catch ( IOException e ) { throw new IllegalArgumentException("Could not load keywords for editor."); @@ -58,7 +65,6 @@ throw new IllegalStateException("Error closing stream."); } } - } Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/java_keywords.properties =================================================================== --- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/java_keywords.properties 2006-05-20 21:33:33 UTC (rev 4334) +++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/java_keywords.properties 2006-05-21 21:56:33 UTC (rev 4335) @@ -0,0 +1,43 @@ +# this contains the java keywords for syntax highlighting +# all java keywords are present, those that are not relevant are commented out + +# abstract +# assert +break +case +catch +# class +# const +continue +default +do +else +# enum +# extends +final +finally +for +goto +if +# implements +# import +instanceof +# interface +# native +new +# package +# private +# protected +# public +return +# static +# super +switch +# synchronized +# this +throw +# throws +# transient +try +# volatile +while \ No newline at end of file Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/scanners/DRLScanner.java =================================================================== --- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/scanners/DRLScanner.java 2006-05-20 21:33:33 UTC (rev 4334) +++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/scanners/DRLScanner.java 2006-05-21 21:56:33 UTC (rev 4335) @@ -31,11 +31,12 @@ private static Color STRING_COLOR = ColorManager.getInstance().getColor(ColorManager.STRING); private static Color DEFAULT = ColorManager.getInstance().getColor(ColorManager.DEFAULT); - private static String[] fgKeywords= Keywords.getInstance().getAll(); + private static String[] fgDroolsKeywords= Keywords.getInstance().getAllDroolsKeywords(); + private static String[] fgJavaKeywords= Keywords.getInstance().getAllJavaKeywords(); - private static String[] fgTypes= { }; + private static String[] fgTypes= { "void", "boolean", "char", "byte", "short", "strictfp", "int", "long", "float", "double" }; - private static String[] fgConstants= { "false", "true" }; + private static String[] fgConstants= { "false", "true", "null" }; public DRLScanner() { @@ -62,8 +63,10 @@ // Add word rule for keywords, types, and constants. WordRule wordRule= new WordRule(new RuleWordDetector(), other); - for (int i= 0; i < fgKeywords.length; i++) - wordRule.addWord(fgKeywords[i], keyword); + for (int i= 0; i < fgDroolsKeywords.length; i++) + wordRule.addWord(fgDroolsKeywords[i], keyword); + for (int i= 0; i < fgJavaKeywords.length; i++) + wordRule.addWord(fgJavaKeywords[i], keyword); for (int i= 0; i < fgTypes.length; i++) wordRule.addWord(fgTypes[i], keyword); for (int i= 0; i < fgConstants.length; i++) @@ -74,9 +77,6 @@ rules.toArray(result); setRules(result); - - } - } Modified: labs/jbossrules/trunk/drools-ide/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java =================================================================== --- labs/jbossrules/trunk/drools-ide/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java 2006-05-20 21:33:33 UTC (rev 4334) +++ labs/jbossrules/trunk/drools-ide/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java 2006-05-21 21:56:33 UTC (rev 4335) @@ -8,7 +8,7 @@ public void testAll() { Keywords keys = Keywords.getInstance(); - String[] all = keys.getAll(); + String[] all = keys.getAllDroolsKeywords(); assertTrue(all.length > 0); assertEquals("when", all[0]); |
From: <jbo...@li...> - 2006-05-20 21:33:40
|
Author: tirelli Date: 2006-05-20 17:33:33 -0400 (Sat, 20 May 2006) New Revision: 4334 Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java Log: Fixing minor issue in setProperty() method Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2006-05-20 21:21:11 UTC (rev 4333) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2006-05-20 21:33:33 UTC (rev 4334) @@ -78,8 +78,9 @@ * Property to define working memory logical assert behavior. Valid values are "identity" or "equals". * * IMPORTANT NODE: if you set LOGICAL_ASSERT_BEHAVIOR to IDENTITY, then ASSERT_BEHAVIOR will be - * automatically set to IDENTITY also, as it is not possible to have ASSERT_BEHAVIOR EQUALS and - * LOGICAL_ASSERT_BEHAVIOR IDENTITY. + * automatically set to IDENTITY, as it is not possible to have ASSERT_BEHAVIOR EQUALS and + * LOGICAL_ASSERT_BEHAVIOR IDENTITY. In a symetrical way, if you set ASSERT_BEHAVIOR to EQUALS, + * LOGICAL_ASSERT_BEHAVIOR will automatically be set to EQUALS. * * Defaults to equals */ @@ -140,6 +141,11 @@ /** * Sets the value of the given property * + * IMPORTANT NODE: if you set LOGICAL_ASSERT_BEHAVIOR to IDENTITY, then ASSERT_BEHAVIOR will be + * automatically set to IDENTITY, as it is not possible to have ASSERT_BEHAVIOR EQUALS and + * LOGICAL_ASSERT_BEHAVIOR IDENTITY. In a symetrical way, if you set ASSERT_BEHAVIOR to EQUALS, + * LOGICAL_ASSERT_BEHAVIOR will automatically be set to EQUALS. + * * @param prop * @param value */ @@ -151,6 +157,10 @@ WM_BEHAVIOR_IDENTITY.equals( value ) ) { this.properties.put( PROPERTY_ASSERT_BEHAVIOR, WM_BEHAVIOR_IDENTITY); + } else if( PROPERTY_ASSERT_BEHAVIOR.equals( prop ) && + WM_BEHAVIOR_EQUALS.equals( value ) ) { + this.properties.put( PROPERTY_LOGICAL_ASSERT_BEHAVIOR, + WM_BEHAVIOR_EQUALS); } this.properties.put( prop, value ); } else { |
Author: tirelli Date: 2006-05-20 17:21:11 -0400 (Sat, 20 May 2006) New Revision: 4333 Added: labs/jbossrules/trunk/drools-core/src/test/resources/manners128.dat Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleBaseImpl.java labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/WorkingMemoryImpl.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Chosen.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Context.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Count.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Guest.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Hobby.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/LastSeat.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Path.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Seating.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Sex.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CrossProductTest.java labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java Log: Fixing JBRULES-233 and JBRULES-266: * Adding RuleBaseConfiguration object * Making working memory assert configurable * Centralizing indexing and hashing configurations Also: * improving manners test classes Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -16,58 +16,163 @@ package org.drools; -import java.util.Properties; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; /** * RuleBaseConfiguration - * A class to store RuleBase related configuration * - * IMPORTANT NOTE: This API is under review and may change in the future. + * A class to store RuleBase related configuration. It must be used at rule base instantiation time + * or not used at all. + * This class will automatically load default values from system properties, so if you want to set + * a default configuration value for all your new rule bases, you can simply set the property as + * a System property. + * + * After RuleBase is created, it makes the configuration immutable and there is no way to make it + * mutable again. This is to avoid inconsistent behavior inside rulebase. + * + * NOTE: This API is under review and may change in the future. * * Created: 16/05/2006 * @author <a href="mailto:ti...@po...">Edson Tirelli</a> * * @version $Id$ */ -public class RuleBaseConfiguration extends Properties { +public class RuleBaseConfiguration implements Serializable { + private Map properties; + + private boolean immutable; + /** * Property to enable/disable left beta memory indexing * Defaults to false */ public static final String PROPERTY_INDEX_LEFT_BETA_MEMORY = "org.drools.reteoo.beta.index-left"; + /** * Property to enable/disable right beta memory indexing * Defaults to true */ public static final String PROPERTY_INDEX_RIGHT_BETA_MEMORY = "org.drools.reteoo.beta.index-right"; + /** * Property to enable/disable alpha node hashing inside object type nodes * Defaults to true */ public static final String PROPERTY_HASH_OBJECT_TYPE_NODES = "org.drools.reteoo.alpha.hash-type-node"; + /** * Property to enable/disable alpha node hashing inside alpha nodes * Defaults to false */ public static final String PROPERTY_HASH_ALPHA_NODES = "org.drools.reteoo.alpha.hash-alpha-node"; + + /** + * Property to define working memory assert behavior. Valid values are "identity" or "equals". + * Defaults to identity + */ + public static final String PROPERTY_ASSERT_BEHAVIOR = "org.drools.wm.assert-behavior"; + + /** + * Property to define working memory logical assert behavior. Valid values are "identity" or "equals". + * + * IMPORTANT NODE: if you set LOGICAL_ASSERT_BEHAVIOR to IDENTITY, then ASSERT_BEHAVIOR will be + * automatically set to IDENTITY also, as it is not possible to have ASSERT_BEHAVIOR EQUALS and + * LOGICAL_ASSERT_BEHAVIOR IDENTITY. + * + * Defaults to equals + */ + public static final String PROPERTY_LOGICAL_ASSERT_BEHAVIOR = "org.drools.wm.logical-assert-behavior"; + + public static final String WM_BEHAVIOR_IDENTITY = "identity"; + public static final String WM_BEHAVIOR_EQUALS = "equals"; // a generated serial version id private static final long serialVersionUID = 2989084670778336973L; public RuleBaseConfiguration() { + this.properties = new HashMap(); + this.immutable = false; + // default values - this.setProperty( PROPERTY_INDEX_LEFT_BETA_MEMORY, + this.properties.put( PROPERTY_INDEX_LEFT_BETA_MEMORY, System.getProperty( PROPERTY_INDEX_LEFT_BETA_MEMORY, "false" ) ); - this.setProperty( PROPERTY_INDEX_RIGHT_BETA_MEMORY, + this.properties.put( PROPERTY_INDEX_RIGHT_BETA_MEMORY, System.getProperty( PROPERTY_INDEX_RIGHT_BETA_MEMORY, "true" ) ); - this.setProperty( PROPERTY_HASH_OBJECT_TYPE_NODES, + this.properties.put( PROPERTY_HASH_OBJECT_TYPE_NODES, System.getProperty( PROPERTY_HASH_OBJECT_TYPE_NODES, "true" ) ); - this.setProperty( PROPERTY_HASH_ALPHA_NODES, + this.properties.put( PROPERTY_HASH_ALPHA_NODES, System.getProperty( PROPERTY_HASH_ALPHA_NODES, "false" ) ); + this.properties.put( PROPERTY_ASSERT_BEHAVIOR, + System.getProperty( PROPERTY_ASSERT_BEHAVIOR, WM_BEHAVIOR_IDENTITY) ); + if (WM_BEHAVIOR_IDENTITY.equals( this.properties.get( PROPERTY_ASSERT_BEHAVIOR ) ) ) { + // if assert behavior is IDENTITY, logical assert can be either EQUALS or IDENTITY + this.properties.put( PROPERTY_LOGICAL_ASSERT_BEHAVIOR, + System.getProperty( PROPERTY_LOGICAL_ASSERT_BEHAVIOR, WM_BEHAVIOR_EQUALS ) ); + } else { + // if assert behavior is EQUALS, logical assert must also be EQUALS + this.properties.put( PROPERTY_LOGICAL_ASSERT_BEHAVIOR, + WM_BEHAVIOR_EQUALS); + } } - public boolean getBooleanProperty(String prop) { + /** + * Returns the current value for the given property or null if it is not set + * @param prop + * @return + */ + public String getProperty( String prop ) { + return (String) this.properties.get( prop ); + } + + /** + * Convenience method that calls get() method and returns a boolean for the + * given property. + * + * @param prop + * @return + */ + public boolean getBooleanProperty( String prop ) { return Boolean.valueOf( prop ).booleanValue(); } + /** + * Sets the value of the given property + * + * @param prop + * @param value + */ + public void setProperty(String prop, String value) { + if( ! this.immutable ) { + // if setting logical assert behavior to identity then + // assert behavior is also set to identity + if( PROPERTY_LOGICAL_ASSERT_BEHAVIOR.equals( prop ) && + WM_BEHAVIOR_IDENTITY.equals( value ) ) { + this.properties.put( PROPERTY_ASSERT_BEHAVIOR, + WM_BEHAVIOR_IDENTITY); + } + this.properties.put( prop, value ); + } else { + throw new UnsupportedOperationException("Can't set a property after configuration becomes immutable"); + } + } + + /** + * Makes the configuration object immutable. Once it becomes immutable, + * there is no way to make it mutable again. + * This is done to keep consistency. + */ + public void makeImmutable() { + this.immutable = true; + } + + /** + * Returns true if this configuration object is immutable or false otherwise. + * @return + */ + public boolean isImmutable() { + return this.immutable; + } + } Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleBaseImpl.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleBaseImpl.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleBaseImpl.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -21,7 +21,6 @@ import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; -import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.util.HashMap; @@ -41,7 +40,6 @@ import org.drools.WorkingMemory; import org.drools.common.ObjectInputStreamWithLoader; import org.drools.common.PropagationContextImpl; -import org.drools.reteoo.beta.BetaMemoryFactory; import org.drools.rule.CompositePackageClassLoader; import org.drools.rule.InvalidPatternException; import org.drools.rule.Package; @@ -129,6 +127,8 @@ */ public RuleBaseImpl(RuleBaseConfiguration config, FactHandleFactory factHandleFactory) { this.config = ( config != null ) ? config : new RuleBaseConfiguration(); + this.config.makeImmutable(); + ObjectTypeResolver resolver = new ClassObjectTypeResolver(); this.rete = new Rete( resolver ); this.reteooBuilder = new ReteooBuilder( this, Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/WorkingMemoryImpl.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/WorkingMemoryImpl.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/WorkingMemoryImpl.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -35,6 +35,7 @@ import org.drools.NoSuchFactObjectException; import org.drools.QueryResults; import org.drools.RuleBase; +import org.drools.RuleBaseConfiguration; import org.drools.WorkingMemory; import org.drools.base.DroolsQuery; import org.drools.common.Agenda; @@ -97,8 +98,8 @@ // 8 ); /** Object-to-handle mapping. */ - private final Map identityMap = new IdentityMap(); - private final Map equalsMap = new HashMap(); + private final Map assertMap; + private final Map logicalAssertMap; private final PrimitiveLongMap justified = new PrimitiveLongMap( 8, 32 ); @@ -131,7 +132,7 @@ private boolean firing; private long propagationIdCounter; - + private List factQueue = new ArrayList(); // ------------------------------------------------------------ @@ -148,6 +149,20 @@ this.ruleBase = ruleBase; this.agenda = new Agenda( this ); this.handleFactory = this.ruleBase.newFactHandleFactory(); + RuleBaseConfiguration conf = this.ruleBase.getConfiguration(); + + if ( RuleBaseConfiguration.WM_BEHAVIOR_EQUALS.equals( conf.getProperty( RuleBaseConfiguration.PROPERTY_ASSERT_BEHAVIOR ) ) ) { + this.assertMap = new HashMap(); + } else { + this.assertMap = new IdentityMap(); + } + + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( conf.getProperty( RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + this.logicalAssertMap = new IdentityMap(); + } else { + this.logicalAssertMap = new HashMap(); + } + } // ------------------------------------------------------------ @@ -202,7 +217,7 @@ * @see WorkingMemory */ public void setGlobal(String name, - Object value) { + Object value) { // Make sure the global has been declared in the RuleBase Map globalDefintions = this.ruleBase.getGlobals(); Class type = (Class) globalDefintions.get( name ); @@ -241,13 +256,13 @@ public void clearAgenda() { this.agenda.clearAgenda(); } - + /** * Clear the Agenda Group */ public void clearAgendaGroup(String group) { - this.agenda.clearAgendaGroup(group); - } + this.agenda.clearAgendaGroup( group ); + } /** * @see WorkingMemory @@ -303,7 +318,7 @@ * @see WorkingMemory */ public FactHandle getFactHandle(Object object) { - FactHandle factHandle = (FactHandle) this.identityMap.get( object ); + FactHandle factHandle = (FactHandle) this.assertMap.get( object ); if ( factHandle == null ) { throw new NoSuchFactHandleException( object ); @@ -313,7 +328,7 @@ } public List getFactHandles() { - return new ArrayList( this.identityMap.values() ); + return new ArrayList( this.assertMap.values() ); } /** @@ -324,19 +339,19 @@ * @return */ Map getFactHandleMap() { - return Collections.unmodifiableMap( this.identityMap ); + return Collections.unmodifiableMap( this.assertMap ); } /** * @see WorkingMemory */ public List getObjects() { - return new ArrayList( this.identityMap.keySet() ); + return new ArrayList( this.assertMap.keySet() ); } public List getObjects(Class objectClass) { List matching = new java.util.LinkedList(); - for ( Iterator objIter = this.identityMap.keySet().iterator(); objIter.hasNext(); ) { + for ( Iterator objIter = this.assertMap.keySet().iterator(); objIter.hasNext(); ) { Object obj = objIter.next(); if ( objectClass.isInstance( obj ) ) { @@ -391,7 +406,7 @@ * @see WorkingMemory */ public boolean containsObject(FactHandle handle) { - return this.identityMap.containsKey( getObject( handle ) ); + return this.assertMap.containsKey( getObject( handle ) ); } /** @@ -444,10 +459,10 @@ try { // check if the object already exists in the WM - handle = (FactHandleImpl) this.identityMap.get( object ); + handle = (FactHandleImpl) this.assertMap.get( object ); // lets see if the object is already logical asserted - FactStatus logicalState = (FactStatus) this.equalsMap.get( object ); + FactStatus logicalState = (FactStatus) this.logicalAssertMap.get( object ); if ( logicalState == null ) { logicalState = STATUS_NEW; } @@ -475,10 +490,13 @@ // If this stated assertion already has justifications then we need // to cancel them if ( logicalState.getStatus() == WorkingMemoryImpl.JUSTIFIED ) { - handle = logicalState.getHandle(); - removeLogicalDependencies( handle ); + FactHandleImpl handle2 = logicalState.getHandle(); + removeLogicalDependencies( handle2 ); + if( handle == null) { + handle = handle2; + } } else { - handle = (FactHandleImpl) newFactHandle(); + handle = (handle == null) ? (FactHandleImpl) newFactHandle() : handle; } putObject( handle, @@ -489,7 +507,7 @@ logicalState.setStatus( WorkingMemoryImpl.STATED ); logicalState.incCounter(); } else { - this.equalsMap.put( object, + this.logicalAssertMap.put( object, new FactStatus( WorkingMemoryImpl.STATED, 1 ) ); } @@ -508,7 +526,7 @@ putObject( handle, object ); - this.equalsMap.put( object, + this.logicalAssertMap.put( object, new FactStatus( WorkingMemoryImpl.JUSTIFIED, handle ) ); } @@ -533,10 +551,10 @@ this.workingMemoryEventSupport.fireObjectAsserted( propagationContext, handle, object ); - + if ( !this.factQueue.isEmpty() ) { propagateQueuedActions(); - } + } } finally { this.lock.unlock(); } @@ -608,7 +626,7 @@ // Object oldValue = this.objects.put( ((FactHandleImpl) handle).getId(), // object ); - this.identityMap.put( object, + this.assertMap.put( object, handle ); ((FactHandleImpl) handle).setObject( object ); @@ -619,7 +637,7 @@ //Object object = this.objects.remove( ((FactHandleImpl) handle).getId() ); Object object = getObject( handle ); - this.identityMap.remove( object ); + this.assertMap.remove( object ); return object; } @@ -662,11 +680,11 @@ } if ( removeLogical || updateEqualsMap ) { - FactStatus status = (FactStatus) this.equalsMap.get( oldObject ); + FactStatus status = (FactStatus) this.logicalAssertMap.get( oldObject ); if ( status != null ) { status.decCounter(); if ( status.getCounter() <= 0 ) { - this.equalsMap.remove( oldObject ); + this.logicalAssertMap.remove( oldObject ); } } } @@ -678,7 +696,7 @@ oldObject ); ((FactHandleImpl) handle).invalidate(); - + if ( !this.factQueue.isEmpty() ) { propagateQueuedActions(); } @@ -718,8 +736,8 @@ /* check to see if this is a logically asserted object */ FactHandleImpl handleImpl = (FactHandleImpl) handle; if ( this.justified.get( handleImpl.getId() ) != null ) { - this.equalsMap.remove( originalObject ); - this.equalsMap.put( object, + this.logicalAssertMap.remove( originalObject ); + this.logicalAssertMap.put( object, new FactStatus( WorkingMemoryImpl.JUSTIFIED, handleImpl ) ); } @@ -748,7 +766,7 @@ handle, originalObject, object ); - + if ( !this.factQueue.isEmpty() ) { propagateQueuedActions(); } @@ -756,15 +774,14 @@ this.lock.unlock(); } } - + void propagateQueuedActions() { for ( Iterator it = this.factQueue.iterator(); it.hasNext(); ) { WorkingMemoryAction action = (WorkingMemoryAction) it.next(); it.remove(); action.propagate(); } - - + } /** @@ -894,20 +911,20 @@ public Lock getLock() { return this.lock; } - + private interface WorkingMemoryAction { public void propagate(); } - - private class WorkingMemoryRetractAction implements WorkingMemoryAction { + + private class WorkingMemoryRetractAction + implements + WorkingMemoryAction { private InternalFactHandle factHandle; - private boolean removeLogical; - private boolean updateEqualsMap; - private Rule ruleOrigin; - private Activation activationOrigin; - - - + private boolean removeLogical; + private boolean updateEqualsMap; + private Rule ruleOrigin; + private Activation activationOrigin; + public WorkingMemoryRetractAction(InternalFactHandle factHandle, boolean removeLogical, boolean updateEqualsMap, Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Chosen.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Chosen.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Chosen.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - - - import java.io.Serializable; public final class Chosen Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Context.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Context.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Context.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - - - import java.io.Serializable; public final class Context Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Count.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Count.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Count.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - public final class Count { private int value; Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Guest.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Guest.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Guest.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - - - import java.io.Serializable; public final class Guest Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Hobby.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Hobby.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Hobby.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - public class Hobby { public static final String stringH1 = "h1"; public static final String stringH2 = "h2"; Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/LastSeat.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/LastSeat.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/LastSeat.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - - - import java.io.Serializable; public final class LastSeat Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Path.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Path.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Path.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - public final class Path { private final int id; private final String guestName; Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Seating.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Seating.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Seating.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - - - import java.io.Serializable; public final class Seating Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Sex.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Sex.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/Sex.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,3 @@ -package org.drools.examples.manners; /* * Copyright 2005 JBoss Inc * @@ -14,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.drools.examples.manners; - - public final class Sex { public static final Sex M = new Sex( 0 ); public static final Sex F = new Sex( 1 ); Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CrossProductTest.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CrossProductTest.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CrossProductTest.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -37,23 +37,23 @@ public class CrossProductTest extends TestCase { public void test1() throws Exception { - ObjectType list1ObjectType = new ClassObjectType( List.class ); - ObjectType list2ObjectType = new ClassObjectType( List.class ); + ObjectType list1ObjectType = new ClassObjectType( String.class ); + ObjectType list2ObjectType = new ClassObjectType( String.class ); Rule rule = new Rule( "rule-1" ); Column list1Column = new Column( 0, list1ObjectType, - "list1" ); + "s1" ); Column list2Column = new Column( 1, list2ObjectType, - "list2" ); + "s2" ); rule.addPattern( list1Column ); rule.addPattern( list2Column ); - final Declaration list1Declaration = rule.getDeclaration( "list1" ); - final Declaration list2Declaration = rule.getDeclaration( "list2" ); + final Declaration s1Declaration = rule.getDeclaration( "s1" ); + final Declaration s2Declaration = rule.getDeclaration( "s2" ); final List values = new ArrayList(); @@ -61,9 +61,9 @@ public void evaluate(KnowledgeHelper knowledgeHelper, WorkingMemory workingMemory) throws Exception { - List list1 = (List) knowledgeHelper.get( list1Declaration ); - List list2 = (List) knowledgeHelper.get( list2Declaration ); - values.add( new List[]{list1, list2} ); + String s1 = (String) knowledgeHelper.get( s1Declaration ); + String s2 = (String) knowledgeHelper.get( s2Declaration ); + values.add( new String[]{s1, s2} ); } } ); @@ -75,10 +75,10 @@ ruleBase.addPackage( pkg ); WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - workingMemory.assertObject( new ArrayList() ); - workingMemory.assertObject( new ArrayList() ); - workingMemory.assertObject( new LinkedList() ); - workingMemory.assertObject( new LinkedList() ); + workingMemory.assertObject( "F1" ); + workingMemory.assertObject( "F2" ); + workingMemory.assertObject( "F3" ); + workingMemory.assertObject( "F4" ); workingMemory.fireAllRules(); Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/LogicalAssertionTest.java 2006-05-20 21:21:11 UTC (rev 4333) @@ -1,4 +1,5 @@ package org.drools.reteoo; + /* * Copyright 2005 JBoss Inc * @@ -15,12 +16,11 @@ * limitations under the License. */ - - import org.drools.DroolsTestCase; import org.drools.FactException; import org.drools.FactHandle; import org.drools.RuleBase; +import org.drools.RuleBaseConfiguration; import org.drools.WorkingMemory; import org.drools.base.ClassObjectType; import org.drools.common.Agenda; @@ -84,7 +84,7 @@ node.retractTuple( tuple1, context1, workingMemory ); - + workingMemory.propagateQueuedActions(); assertLength( 1, @@ -112,7 +112,7 @@ node.retractTuple( tuple1, context1, workingMemory ); - + workingMemory.propagateQueuedActions(); assertLength( 2, @@ -181,14 +181,36 @@ rule1, tuple1.getActivation() ); - assertSame( logicalHandle1, - logicalHandle2 ); + // If logical assert behavior in working memory is EQUALS, + // it must return the same handle + if ( RuleBaseConfiguration.WM_BEHAVIOR_EQUALS.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR) ) ) { + assertSame( logicalHandle1, + logicalHandle2 ); + } else { + // otherwise, it must not return the same handle + assertNotSame( logicalHandle1, + logicalHandle2 ); + } // little sanity check using normal assert logicalHandle1 = workingMemory.assertObject( logicalString1 ); logicalHandle2 = workingMemory.assertObject( logicalString2 ); - assertNotSame( logicalHandle1, - logicalHandle2 ); + + // If assert behavior in working memory is IDENTITY, + // returned handles must not be the same + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_ASSERT_BEHAVIOR ) ) ) { + + assertNotSame( logicalHandle1, + logicalHandle2 ); + } else { + // in case behavior is EQUALS, handles should be the same + assertSame( logicalHandle1, + logicalHandle2 ); + } } /** @@ -255,10 +277,19 @@ assertLength( 0, sink.getRetracted() ); - // Should keep the same handle when overriding - assertSame( logicalHandle1, - logicalHandle2 ); + // If logical assert behavior in working memory is IDENTITY, + // returned handles must not be the same + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + assertNotSame( logicalHandle2, + logicalHandle1 ); + } else { + assertSame( logicalHandle2, + logicalHandle1 ); + } + // so while new STATED assertion is equal assertEquals( logicalString1, workingMemory.getObject( logicalHandle2 ) ); @@ -282,10 +313,19 @@ true, rule1, tuple1.getActivation() ); - // Already an equals object but not identity same, so will do nothing - // and return null - assertNull( logicalHandle1 ); + // If logical assert behavior in working memory is IDENTITY, + // must return a handle + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + + assertNotNull( logicalHandle1 ); + } else { + assertNull( logicalHandle1 ); + } + + // Alreyad identify same so return previously assigned handle logicalHandle1 = workingMemory.assertObject( logicalString2, false, @@ -293,6 +333,7 @@ rule1, tuple1.getActivation() ); // return the matched handle + assertSame( logicalHandle2, logicalHandle1 ); @@ -390,17 +431,40 @@ rule2, tuple2.getActivation() ); - // "logical" should only appear once - assertLength( 1, - workingMemory.getJustified().values() ); + // If logical assert behavior in working memory is IDENTITY, + // must have 2 justified facts + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + // "logical" should only appear twice + assertLength( 2, + workingMemory.getJustified().values() ); + } else { + // "logical" should only appear once + assertLength( 1, + workingMemory.getJustified().values() ); + } + // retract the logical object workingMemory.retractObject( logicalHandle2 ); - // The logical object should never appear - assertLength( 0, - workingMemory.getJustified().values() ); + // If logical assert behavior in working memory is IDENTITY, + // must have 2 justified facts + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + // "logical" should only appear once + assertLength( 1, + workingMemory.getJustified().values() ); + } else { + // The logical object should never appear + assertLength( 0, + workingMemory.getJustified().values() ); + } + + } public void testMultipleLogicalRelationships() throws FactException { @@ -481,19 +545,43 @@ rule2, tuple2.getActivation() ); - // "logical" should only appear once - assertLength( 1, - workingMemory.getJustified().values() ); + // If logical assert behavior in working memory is IDENTITY, + // must have 2 justified facts + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + // "logical" should only appear twice + assertLength( 2, + workingMemory.getJustified().values() ); + } else { + // "logical" should only appear once + assertLength( 1, + workingMemory.getJustified().values() ); + } + // Now lets cancel the first activation node2.retractTuple( tuple2, context2, workingMemory ); - // because this logical fact has two relationships it shouldn't retract yet - assertLength( 0, - sink.getRetracted() ); + workingMemory.propagateQueuedActions(); + // If logical assert behavior in working memory is IDENTITY, + // must have 1 retracted + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + + // because this logical fact has two relationships it shouldn't retract yet + assertLength( 1, + sink.getRetracted() ); + } else { + // because this logical fact has two relationships it shouldn't retract yet + assertLength( 0, + sink.getRetracted() ); + } + // check "logical" is still in the system assertLength( 1, workingMemory.getJustified().values() ); @@ -502,18 +590,30 @@ node.retractTuple( tuple1, context1, workingMemory ); - + workingMemory.propagateQueuedActions(); - // Should cause the logical fact to be retracted - assertLength( 1, - sink.getRetracted() ); + // If logical assert behavior in working memory is IDENTITY, + // must have 1 retracted + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + // Should cause the logical fact to be retracted + assertLength( 2, + sink.getRetracted() ); + } else { + // Should cause the logical fact to be retracted + assertLength( 1, + sink.getRetracted() ); + } + + // "logical" fact should no longer be in the system assertLength( 0, workingMemory.getJustified().values() ); } - + /** * This tests that when multiple not identical, but equals facts, are asserted * into WM, only when all are removed, a logical assert will succeed @@ -574,35 +674,60 @@ rule1, tuple1.getActivation() ); - // Checks that previous LogicalAssert failed - assertNull( logicalHandle3 ); - - workingMemory.retractObject( statedHandle2 ); + // if logical assert behavior is identity, must return + // a handle, otherwise, must return null + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { - logicalHandle3 = workingMemory.assertObject( logicalString3, - false, - true, - rule1, - tuple1.getActivation() ); + // Checks that previous LogicalAssert failed + assertNotNull( logicalHandle3 ); + } else { + // Checks that previous LogicalAssert failed + assertNull( logicalHandle3 ); + } - // Checks that previous LogicalAssert failed as there is still one - // stated string in the working memory - assertNull( logicalHandle3 ); - + // If assert behavior in working memory is IDENTITY, + // we need to retract object 2 times before being able to + // succesfully logically assert a new fact + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_ASSERT_BEHAVIOR ) ) ) { + + workingMemory.retractObject( statedHandle2 ); + + logicalHandle3 = workingMemory.assertObject( logicalString3, + false, + true, + rule1, + tuple1.getActivation() ); + + // if logical assert behavior is identity, must return + // a handle, otherwise, must return null + if ( RuleBaseConfiguration.WM_BEHAVIOR_IDENTITY.equals( + ((RuleBaseImpl) ruleBase).getConfiguration().getProperty( + RuleBaseConfiguration.PROPERTY_LOGICAL_ASSERT_BEHAVIOR ) ) ) { + + // Checks that previous LogicalAssert failed + assertNotNull( logicalHandle3 ); + } else { + // Checks that previous LogicalAssert failed + assertNull( logicalHandle3 ); + } + } + workingMemory.retractObject( statedHandle1 ); logicalHandle3 = workingMemory.assertObject( logicalString3, - false, - true, - rule1, - tuple1.getActivation() ); + false, + true, + rule1, + tuple1.getActivation() ); // Checks that previous LogicalAssert succeeded as there are no more // stated strings in the working memory assertNotNull( logicalHandle3 ); - + } - - } \ No newline at end of file Added: labs/jbossrules/trunk/drools-core/src/test/resources/manners128.dat =================================================================== --- labs/jbossrules/trunk/drools-core/src/test/resources/manners128.dat 2006-05-20 12:55:37 UTC (rev 4332) +++ labs/jbossrules/trunk/drools-core/src/test/resources/manners128.dat 2006-05-20 21:21:11 UTC (rev 4333) @@ -0,0 +1,440 @@ +(guest (name 1) (sex m) (hobby h2) ) +(guest (name 1) (sex m) (hobby h3) ) +(guest (name 1) (sex m) (hobby h1) ) +(guest (name 1) (sex m) (hobby h4) ) +(guest (name 1) (sex m) (hobby h5) ) +(guest (name 2) (sex f) (hobby h3) ) +(guest (name 2) (sex f) (hobby h2) ) +(guest (name 2) (sex f) (hobby h1) ) +(guest (name 2) (sex f) (hobby h4) ) +(guest (name 2) (sex f) (hobby h5) ) +(guest (name 3) (sex f) (hobby h5) ) +(guest (name 3) (sex f) (hobby h4) ) +(guest (name 3) (sex f) (hobby h2) ) +(guest (name 4) (sex m) (hobby h3) ) +(guest (name 4) (sex m) (hobby h2) ) +(guest (name 4) (sex m) (hobby h1) ) +(guest (name 4) (sex m) (hobby h4) ) +(guest (name 5) (sex m) (hobby h2) ) +(guest (name 5) (sex m) (hobby h5) ) +(guest (name 5) (sex m) (hobby h3) ) +(guest (name 6) (sex f) (hobby h1) ) +(guest (name 6) (sex f) (hobby h4) ) +(guest (name 6) (sex f) (hobby h2) ) +(guest (name 6) (sex f) (hobby h5) ) +(guest (name 6) (sex f) (hobby h3) ) +(guest (name 7) (sex f) (hobby h1) ) +(guest (name 7) (sex f) (hobby h2) ) +(guest (name 7) (sex f) (hobby h3) ) +(guest (name 7) (sex f) (hobby h5) ) +(guest (name 8) (sex m) (hobby h3) ) +(guest (name 8) (sex m) (hobby h5) ) +(guest (name 9) (sex m) (hobby h3) ) +(guest (name 9) (sex m) (hobby h5) ) +(guest (name 9) (sex m) (hobby h2) ) +(guest (name 9) (sex m) (hobby h4) ) +(guest (name 10) (sex m) (hobby h2) ) +(guest (name 10) (sex m) (hobby h3) ) +(guest (name 10) (sex m) (hobby h4) ) +(guest (name 10) (sex m) (hobby h5) ) +(guest (name 10) (sex m) (hobby h1) ) +(guest (name 11) (sex m) (hobby h2) ) +(guest (name 11) (sex m) (hobby h4) ) +(guest (name 11) (sex m) (hobby h5) ) +(guest (name 11) (sex m) (hobby h1) ) +(guest (name 12) (sex f) (hobby h3) ) +(guest (name 12) (sex f) (hobby h5) ) +(guest (name 12) (sex f) (hobby h2) ) +(guest (name 13) (sex f) (hobby h5) ) +(guest (name 13) (sex f) (hobby h1) ) +(guest (name 14) (sex m) (hobby h3) ) +(guest (name 14) (sex m) (hobby h5) ) +(guest (name 14) (sex m) (hobby h1) ) +(guest (name 14) (sex m) (hobby h4) ) +(guest (name 15) (sex m) (hobby h5) ) +(guest (name 15) (sex m) (hobby h2) ) +(guest (name 15) (sex m) (hobby h1) ) +(guest (name 15) (sex m) (hobby h3) ) +(guest (name 15) (sex m) (hobby h4) ) +(guest (name 16) (sex m) (hobby h2) ) +(guest (name 16) (sex m) (hobby h5) ) +(guest (name 16) (sex m) (hobby h4) ) +(guest (name 17) (sex m) (hobby h4) ) +(guest (name 17) (sex m) (hobby h3) ) +(guest (name 18) (sex f) (hobby h2) ) +(guest (name 18) (sex f) (hobby h4) ) +(guest (name 18) (sex f) (hobby h5) ) +(guest (name 18) (sex f) (hobby h1) ) +(guest (name 19) (sex m) (hobby h5) ) +(guest (name 19) (sex m) (hobby h2) ) +(guest (name 20) (sex m) (hobby h2) ) +(guest (name 20) (sex m) (hobby h3) ) +(guest (name 21) (sex m) (hobby h4) ) +(guest (name 21) (sex m) (hobby h3) ) +(guest (name 21) (sex m) (hobby h2) ) +(guest (name 21) (sex m) (hobby h1) ) +(guest (name 22) (sex m) (hobby h1) ) +(guest (name 22) (sex m) (hobby h2) ) +(guest (name 22) (sex m) (hobby h4) ) +(guest (name 23) (sex f) (hobby h4) ) +(guest (name 23) (sex f) (hobby h5) ) +(guest (name 23) (sex f) (hobby h2) ) +(guest (name 24) (sex f) (hobby h4) ) +(guest (name 24) (sex f) (hobby h3) ) +(guest (name 24) (sex f) (hobby h2) ) +(guest (name 24) (sex f) (hobby h1) ) +(guest (name 24) (sex f) (hobby h5) ) +(guest (name 25) (sex m) (hobby h4) ) +(guest (name 25) (sex m) (hobby h5) ) +(guest (name 26) (sex m) (hobby h1) ) +(guest (name 26) (sex m) (hobby h2) ) +(guest (name 27) (sex m) (hobby h3) ) +(guest (name 27) (sex m) (hobby h5) ) +(guest (name 27) (sex m) (hobby h2) ) +(guest (name 28) (sex f) (hobby h4) ) +(guest (name 28) (sex f) (hobby h1) ) +(guest (name 28) (sex f) (hobby h3) ) +(guest (name 28) (sex f) (hobby h2) ) +(guest (name 28) (sex f) (hobby h5) ) +(guest (name 29) (sex f) (hobby h3) ) +(guest (name 29) (sex f) (hobby h5) ) +(guest (name 30) (sex m) (hobby h2) ) +(guest (name 30) (sex m) (hobby h1) ) +(guest (name 31) (sex m) (hobby h3) ) +(guest (name 31) (sex m) (hobby h1) ) +(guest (name 31) (sex m) (hobby h4) ) +(guest (name 32) (sex f) (hobby h2) ) +(guest (name 32) (sex f) (hobby h1) ) +(guest (name 32) (sex f) (hobby h5) ) +(guest (name 33) (sex f) (hobby h5) ) +(guest (name 33) (sex f) (hobby h4) ) +(guest (name 34) (sex m) (hobby h4) ) +(guest (name 34) (sex m) (hobby h5) ) +(guest (name 34) (sex m) (hobby h2) ) +(guest (name 35) (sex f) (hobby h3) ) +(guest (name 35) (sex f) (hobby h1) ) +(guest (name 35) (sex f) (hobby h4) ) +(guest (name 35) (sex f) (hobby h5) ) +(guest (name 35) (sex f) (hobby h2) ) +(guest (name 36) (sex m) (hobby h1) ) +(guest (name 36) (sex m) (hobby h4) ) +(guest (name 36) (sex m) (hobby h2) ) +(guest (name 36) (sex m) (hobby h3) ) +(guest (name 37) (sex f) (hobby h4) ) +(guest (name 37) (sex f) (hobby h2) ) +(guest (name 37) (sex f) (hobby h1) ) +(guest (name 38) (sex f) (hobby h3) ) +(guest (name 38) (sex f) (hobby h1) ) +(guest (name 38) (sex f) (hobby h2) ) +(guest (name 38) (sex f) (hobby h4) ) +(guest (name 39) (sex m) (hobby h5) ) +(guest (name 39) (sex m) (hobby h2) ) +(guest (name 40) (sex m) (hobby h2) ) +(guest (name 40) (sex m) (hobby h3) ) +(guest (name 41) (sex f) (hobby h5) ) +(guest (name 41) (sex f) (hobby h3) ) +(guest (name 42) (sex m) (hobby h5) ) +(guest (name 42) (sex m) (hobby h4) ) +(guest (name 43) (sex m) (hobby h3) ) +(guest (name 43) (sex m) (hobby h4) ) +(guest (name 43) (sex m) (hobby h5) ) +(guest (name 44) (sex f) (hobby h2) ) +(guest (name 44) (sex f) (hobby h4) ) +(guest (name 44) (sex f) (hobby h3) ) +(guest (name 44) (sex f) (hobby h1) ) +(guest (name 45) (sex m) (hobby h2) ) +(guest (name 45) (sex m) (hobby h4) ) +(guest (name 46) (sex m) (hobby h4) ) +(guest (name 46) (sex m) (hobby h1) ) +(guest (name 46) (sex m) (hobby h5) ) +(guest (name 47) (sex m) (hobby h2) ) +(guest (name 47) (sex m) (hobby h5) ) +(guest (name 47) (sex m) (hobby h4) ) +(guest (name 48) (sex f) (hobby h3) ) +(guest (name 48) (sex f) (hobby h1) ) +(guest (name 49) (sex m) (hobby h1) ) +(guest (name 49) (sex m) (hobby h5) ) +(guest (name 49) (sex m) (hobby h4) ) +(guest (name 49) (sex m) (hobby h3) ) +(guest (name 49) (sex m) (hobby h2) ) +(guest (name 50) (sex m) (hobby h2) ) +(guest (name 50) (sex m) (hobby h4) ) +(guest (name 50) (sex m) (hobby h3) ) +(guest (name 51) (sex m) (hobby h1) ) +(guest (name 51) (sex m) (hobby h2) ) +(guest (name 51) (sex m) (hobby h5) ) +(guest (name 51) (sex m) (hobby h4) ) +(guest (name 52) (sex f) (hobby h5) ) +(guest (name 52) (sex f) (hobby h3) ) +(guest (name 52) (sex f) (hobby h1) ) +(guest (name 52) (sex f) (hobby h4) ) +(guest (name 53) (sex f) (hobby h5) ) +(guest (name 53) (sex f) (hobby h1) ) +(guest (name 53) (sex f) (hobby h4) ) +(guest (name 53) (sex f) (hobby h2) ) +(guest (name 53) (sex f) (hobby h3) ) +(guest (name 54) (sex f) (hobby h1) ) +(guest (name 54) (sex f) (hobby h3) ) +(guest (name 55) (sex m) (hobby h2) ) +(guest (name 55) (sex m) (hobby h4) ) +(guest (name 56) (sex m) (hobby h2) ) +(guest (name 56) (sex m) (hobby h3) ) +(guest (name 57) (sex f) (hobby h2) ) +(guest (name 57) (sex f) (hobby h1) ) +(guest (name 57) (sex f) (hobby h4) ) +(guest (name 58) (sex m) (hobby h5) ) +(guest (name 58) (sex m) (hobby h3) ) +(guest (name 58) (sex m) (hobby h2) ) +(guest (name 58) (sex m) (hobby h1) ) +(guest (name 58) (sex m) (hobby h4) ) +(guest (name 59) (sex f) (hobby h2) ) +(guest (name 59) (sex f) (hobby h3) ) +(guest (name 59) (sex f) (hobby h5) ) +(guest (name 60) (sex f) (hobby h4) ) +(guest (name 60) (sex f) (hobby h2) ) +(guest (name 60) (sex f) (hobby h3) ) +(guest (name 60) (sex f) (hobby h5) ) +(guest (name 61) (sex m) (hobby h1) ) +(guest (name 61) (sex m) (hobby h2) ) +(guest (name 61) (sex m) (hobby h4) ) +(guest (name 61) (sex m) (hobby h3) ) +(guest (name 62) (sex f) (hobby h3) ) +(guest (name 62) (sex f) (hobby h2) ) +(guest (name 62) (sex f) (hobby h5) ) +(guest (name 62) (sex f) (hobby h4) ) +(guest (name 62) (sex f) (hobby h1) ) +(guest (name 63) (sex f) (hobby h2) ) +(guest (name 63) (sex f) (hobby h3) ) +(guest (name 63) (sex f) (hobby h4) ) +(guest (name 63) (sex f) (hobby h1) ) +(guest (name 63) (sex f) (hobby h5) ) +(guest (name 64) (sex f) (hobby h2) ) +(guest (name 64) (sex f) (hobby h4) ) +(guest (name 64) (sex f) (hobby h1) ) +(guest (name 64) (sex f) (hobby h5) ) +(guest (name 64) (sex f) (hobby h3) ) +(guest (name 65) (sex m) (hobby h5) ) +(guest (name 65) (sex m) (hobby h3) ) +(guest (name 65) (sex m) (hobby h2) ) +(guest (name 65) (sex m) (hobby h1) ) +(guest (name 65) (sex m) (hobby h4) ) +(guest (name 66) (sex f) (hobby h5) ) +(guest (name 66) (sex f) (hobby h3) ) +(guest (name 66) (sex f) (hobby h4) ) +(guest (name 67) (sex f) (hobby h1) ) +(guest (name 67) (sex f) (hobby h4) ) +(guest (name 68) (sex m) (hobby h4) ) +(guest (name 68) (sex m) (hobby h2) ) +(guest (name 68) (sex m) (hobby h1) ) +(guest (name 68) (sex m) (hobby h5) ) +(guest (name 69) (sex m) (hobby h3) ) +(guest (name 69) (sex m) (hobby h4) ) +(guest (name 69) (sex m) (hobby h1) ) +(guest (name 70) (sex f) (hobby h3) ) +(guest (name 70) (sex f) (hobby h5) ) +(guest (name 70) (sex f) (hobby h1) ) +(guest (name 70) (sex f) (hobby h4) ) +(guest (name 70) (sex f) (hobby h2) ) +(guest (name 71) (sex m) (hobby h3) ) +(guest (name 71) (sex m) (hobby h1) ) +(guest (name 71) (sex m) (hobby h4) ) +(guest (name 72) (sex m) (hobby h4) ) +(guest (name 72) (sex m) (hobby h3) ) +(guest (name 72) (sex m) (hobby h1) ) +(guest (name 73) (sex f) (hobby h4) ) +(guest (name 73) (sex f) (hobby h1) ) +(guest (name 73) (sex f) (hobby h3) ) +(guest (name 74) (sex f) (hobby h1) ) +(guest (name 74) (sex f) (hobby h4) ) +(guest (name 74) (sex f) (hobby h2) ) +(guest (name 74) (sex f) (hobby h5) ) +(guest (name 74) (sex f) (hobby h3) ) +(guest (name 75) (sex f) (hobby h4) ) +(guest (name 75) (sex f) (hobby h2) ) +(guest (name 76) (sex f) (hobby h5) ) +(guest (name 76) (sex f) (hobby h4) ) +(guest (name 76) (sex f) (hobby h3) ) +(guest (name 76) (sex f) (hobby h2) ) +(guest (name 76) (sex f) (hobby h1) ) +(guest (name 77) (sex m) (hobby h1) ) +(guest (name 77) (sex m) (hobby h5) ) +(guest (name 78) (sex m) (hobby h5) ) +(guest (name 78) (sex m) (hobby h1) ) +(guest (name 79) (sex f) (hobby h1) ) +(guest (name 79) (sex f) (hobby h3) ) +(guest (name 79) (sex f) (hobby h4) ) +(guest (name 79) (sex f) (hobby h2) ) +(guest (name 79) (sex f) (hobby h5) ) +(guest (name 80) (sex m) (hobby h5) ) +(guest (name 80) (sex m) (hobby h1) ) +(guest (name 80) (sex m) (hobby h2) ) +(guest (name 80) (sex m) (hobby h4) ) +(guest (name 81) (sex m) (hobby h4) ) +(guest (name 81) (sex m) (hobby h1) ) +(guest (name 82) (sex m) (hobby h3) ) +(guest (name 82) (sex m) (hobby h4) ) +(guest (name 82) (sex m) (hobby h1) ) +(guest (name 82) (sex m) (hobby h2) ) +(guest (name 82) (sex m) (hobby h5) ) +(guest (name 83) (sex f) (hobby h1) ) +(guest (name 83) (sex f) (hobby h3) ) +(guest (name 83) (sex f) (hobby h4) ) +(guest (name 84) (sex m) (hobby h3) ) +(guest (name 84) (sex m) (hobby h4) ) +(guest (name 85) (sex f) (hobby h4) ) +(guest (name 85) (sex f) (hobby h1) ) +(guest (name 86) (sex m) (hobby h3) ) +(guest (name 86) (sex m) (hobby h4) ) +(guest (name 87) (sex m) (hobby h5) ) +(guest (name 87) (sex m) (hobby h4) ) +(guest (name 87) (sex m) (hobby h2) ) +(guest (name 87) (sex m) (hobby h3) ) +(guest (name 88) (sex m) (hobby h2) ) +(guest (name 88) (sex m) (hobby h5) ) +(guest (name 88) (sex m) (hobby h3) ) +(guest (name 88) (sex m) (hobby h1) ) +(guest (name 88) (sex m) (hobby h4) ) +(guest (name 89) (sex f) (hobby h5) ) +(guest (name 89) (sex f) (hobby h2) ) +(guest (name 89) (sex f) (hobby h4) ) +(guest (name 89) (sex f) (hobby h1) ) +(guest (name 90) (sex m) (hobby h2) ) +(guest (name 90) (sex m) (hobby h4) ) +(guest (name 90) (sex m) (hobby h5) ) +(guest (name 91) (sex f) (hobby h2) ) +(guest (name 91) (sex f) (hobby h3) ) +(guest (name 91) (sex f) (hobby h5) ) +(guest (name 91) (sex f) (hobby h1) ) +(guest (name 91) (sex f) (hobby h4) ) +(guest (name 92) (sex f) (hobby h3) ) +(guest (name 92) (sex f) (hobby h1) ) +(guest (name 92) (sex f) (hobby h2) ) +(guest (name 92) (sex f) (hobby h5) ) +(guest (name 93) (sex f) (hobby h3) ) +(guest (name 93) (sex f) (hobby h1) ) +(guest (name 93) (sex f) (hobby h2) ) +(guest (name 94) (sex f) (hobby h2) ) +(guest (name 94) (sex f) (hobby h5) ) +(guest (name 95) (sex f) (hobby h3) ) +(guest (name 95) (sex f) (hobby h4) ) +(guest (name 96) (sex m) (hobby h1) ) +(guest (name 96) (sex m) (hobby h4) ) +(guest (name 96) (sex m) (hobby h2) ) +(guest (name 96) (sex m) (hobby h5) ) +(guest (name 96) (sex m) (hobby h3) ) +(guest (name 97) (sex f) (hobby h4) ) +(guest (name 97) (sex f) (hobby h2) ) +(guest (name 97) (sex f) (hobby h5) ) +(guest (name 98) (sex m) (hobby h5) ) +(guest (name 98) (sex m) (hobby h4) ) +(guest (name 99) (sex f) (hobby h2) ) +(guest (name 99) (sex f) (hobby h5) ) +(guest (name 100) (sex m) (hobby h2) ) +(guest (name 100) (sex m) (hobby h3) ) +(guest (name 100) (sex m) (hobby h5) ) +(guest (name 100) (sex m) (hobby h4) ) +(guest (name 101) (sex f) (hobby h2) ) +(guest (name 101) (sex f) (hobby h1) ) +(guest (name 101) (sex f) (hobby h5) ) +(guest (name 101) (sex f) (hobby h3) ) +(guest (name 101) (sex f) (hobby h4) ) +(guest (name 102) (sex f) (hobby h2) ) +(guest (name 102) (sex f) (hobby h1) ) +(guest (name 102) (sex f) (hobby h5) ) +(guest (name 102) (sex f) (hobby h3) ) +(guest (name 102) (sex f) (hobby h4) ) +(guest (name 103) (sex m) (hobby h2) ) +(guest (name 103) (sex m) (hobby h1) ) +(guest (name 103) (sex m) (hobby h4) ) +(guest (name 103) (sex m) (hobby h3) ) +(guest (name 103) (sex m) (hobby h5) ) +(guest (name 104) (sex m) (hobby h5) ) +(guest (name 104) (sex m) (hobby h3) ) +(guest (name 104) (sex m) (hobby h4) ) +(guest (name 104) (sex m) (hobby h1) ) +(guest (name 104) (sex m) (hobby h2) ) +(guest (name 105) (sex f) (hobby h4) ) +(guest (name 105) (sex f) (hobby h2) ) +(guest (name 106) (sex f) (hobby h4) ) +(guest (name 106) (sex f) (hobby h5) ) +(guest (name 106) (sex f) (hobby h1) ) +(guest (name 107) (sex f) (hobby h3) ) +(guest (name 107) (sex f) (hobby... [truncated message content] |
From: <jbo...@li...> - 2006-05-20 12:55:47
|
Author: aron.gombas Date: 2006-05-20 08:55:37 -0400 (Sat, 20 May 2006) New Revision: 4332 Modified: labs/kosmos/trunk/src/java/hu/midori/kosmos/server/jira/JiraWebCrawlingServiceImpl.java Log: No exception, but log.warn() when facing an unknown status or priority code in JIRA Modified: labs/kosmos/trunk/src/java/hu/midori/kosmos/server/jira/JiraWebCrawlingServiceImpl.java =================================================================== --- labs/kosmos/trunk/src/java/hu/midori/kosmos/server/jira/JiraWebCrawlingServiceImpl.java 2006-05-20 04:52:04 UTC (rev 4331) +++ labs/kosmos/trunk/src/java/hu/midori/kosmos/server/jira/JiraWebCrawlingServiceImpl.java 2006-05-20 12:55:37 UTC (rev 4332) @@ -38,200 +38,200 @@ * @version $Id$ */ public class JiraWebCrawlingServiceImpl extends AbstractJiraServiceImpl implements JiraService { - private final static Log log = LogFactory.getLog(JiraWebCrawlingServiceImpl.class); + private final static Log log = LogFactory.getLog(JiraWebCrawlingServiceImpl.class); - @SuppressWarnings("unchecked") - public List<JiraProject> getProjects(String url) { - log.debug("Returning projects..."); + @SuppressWarnings("unchecked") + public List<JiraProject> getProjects(String url) { + log.debug("Returning projects..."); - List<JiraProject> projects = new ArrayList<JiraProject>(); - updateTimestamp(); + List<JiraProject> projects = new ArrayList<JiraProject>(); + updateTimestamp(); - beginStoreSession(); + beginStoreSession(); - try { - // download database info - connect(url); + try { + // download database info + connect(url); - Document dom = WebCrawlingUtils.downloadHtmlDom(new URL(UrlUtils.removeUserInfoFromUrl(url))); + Document dom = WebCrawlingUtils.downloadHtmlDom(new URL(UrlUtils.removeUserInfoFromUrl(url))); - disconnect(url); + disconnect(url); - // run XQueries - String queryProjects = - "for " + - "$d in //table " + - "where " + - "contains($d/child::tr/child::td/child::h3/child::a/@href, '/secure/BrowseProjects.jspa') " + - "return " + - "<dummy>" + - "{ data(fn:substring-after(fn:normalize-space($d/child::tr/child::td/child::h3/text()), ' ')) }|" + - "{ data(fn:substring-after(fn:substring-before($d/child::tr/child::td/child::h3/font/text(), ')'), ' ')) }|" + - "{ data($d/following-sibling::table/child::tr/child::td/child::p[1]/child::a[2]) }|" + - "{ data(fn:normalize-space(fn:string-join($d/following-sibling::table/child::tr/child::td/child::p[1]/text(), ''))) }|" + - "{ data($d/following-sibling::table/child::tr/child::td/child::p[1]/child::a[1]) }" + - "</dummy>"; - List resultProjects = WebCrawlingUtils.runXQuery(dom, queryProjects); - if(resultProjects.size() < 1) - throw new IllegalStateException(String.format("Couldn't find JIRA project properties (%d) at \"%s\"", resultProjects.size(), url)); + // run XQueries + String queryProjects = + "for " + + "$d in //table " + + "where " + + "contains($d/child::tr/child::td/child::h3/child::a/@href, '/secure/BrowseProjects.jspa') " + + "return " + + "<dummy>" + + "{ data(fn:substring-after(fn:normalize-space($d/child::tr/child::td/child::h3/text()), ' ')) }|" + + "{ data(fn:substring-after(fn:substring-before($d/child::tr/child::td/child::h3/font/text(), ')'), ' ')) }|" + + "{ data($d/following-sibling::table/child::tr/child::td/child::p[1]/child::a[2]) }|" + + "{ data(fn:normalize-space(fn:string-join($d/following-sibling::table/child::tr/child::td/child::p[1]/text(), ''))) }|" + + "{ data($d/following-sibling::table/child::tr/child::td/child::p[1]/child::a[1]) }" + + "</dummy>"; + List resultProjects = WebCrawlingUtils.runXQuery(dom, queryProjects); + if(resultProjects.size() < 1) + throw new IllegalStateException(String.format("Couldn't find JIRA project properties (%d) at \"%s\"", resultProjects.size(), url)); - String queryIssueStatuses = - "for " + - "$d in //tr " + - "where " + - "count($d/child::td) = 4 and " + - "contains($d/child::td[2]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + - "contains($d/child::td[2]/child::a[1]/@href, 'status') " + // can be "status" or "statusIds" - "return " + - "<dummy>" + - "{ data(fn:substring-after(fn:substring-after($d/child::td[2]/child::a[1]/@href, 'status'), '=')) }|" +// TODO should grab the next number after "status" - "{ data(fn:normalize-space(fn:string-join($d/child::td[3]/text(), ''))) }" + - "</dummy>"; - List resultIssueStatuses = WebCrawlingUtils.runXQuery(dom, queryIssueStatuses); + String queryIssueStatuses = + "for " + + "$d in //tr " + + "where " + + "count($d/child::td) = 4 and " + + "contains($d/child::td[2]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + + "contains($d/child::td[2]/child::a[1]/@href, 'status') " + // can be "status" or "statusIds" + "return " + + "<dummy>" + + "{ data(fn:substring-after(fn:substring-after($d/child::td[2]/child::a[1]/@href, 'status'), '=')) }|" +// TODO should grab the next number after "status" + "{ data(fn:normalize-space(fn:string-join($d/child::td[3]/text(), ''))) }" + + "</dummy>"; + List resultIssueStatuses = WebCrawlingUtils.runXQuery(dom, queryIssueStatuses); - String queryIssuePriorities = - "for " + - "$d in //tr " + - "where " + - "count($d/child::td) = 4 and " + - "contains($d/child::td[2]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + - "contains($d/child::td[2]/child::a[1]/@href, 'priority') " + - "return " + - "<dummy>" + - "{ data(fn:substring(fn:substring-after(fn:substring-after($d/child::td[2]/child::a[1]/@href, 'priority'), '='), 1, 1)) }|" +// TODO not appropriate, because priority is hardwired to a single character - "{ data(fn:normalize-space(fn:string-join($d/child::td[3]/text(), ''))) }" + - "</dummy>"; - List resultIssuePriorities = WebCrawlingUtils.runXQuery(dom, queryIssuePriorities); + String queryIssuePriorities = + "for " + + "$d in //tr " + + "where " + + "count($d/child::td) = 4 and " + + "contains($d/child::td[2]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + + "contains($d/child::td[2]/child::a[1]/@href, 'priority') " + + "return " + + "<dummy>" + + "{ data(fn:substring(fn:substring-after(fn:substring-after($d/child::td[2]/child::a[1]/@href, 'priority'), '='), 1, 1)) }|" +// TODO not appropriate, because priority is hardwired to a single character + "{ data(fn:normalize-space(fn:string-join($d/child::td[3]/text(), ''))) }" + + "</dummy>"; + List resultIssuePriorities = WebCrawlingUtils.runXQuery(dom, queryIssuePriorities); - String queryIssueAssignees = - "for " + - "$d in //tr " + - "where " + - "count($d/child::td) = 3 and " + - "contains($d/child::td[1]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + - "contains($d/child::td[1]/child::a[1]/@href, 'assignee') " + - "return " + - "<dummy>" + - "{ data(fn:normalize-space($d/child::td[1]/child::a[1]/text())) }|" + - "{ data(fn:normalize-space(fn:string-join($d/child::td[2]/text(), ''))) }" + - "</dummy>"; - List resultIssueAssignees = WebCrawlingUtils.runXQuery(dom, queryIssueAssignees); + String queryIssueAssignees = + "for " + + "$d in //tr " + + "where " + + "count($d/child::td) = 3 and " + + "contains($d/child::td[1]/child::a[1]/@href, '/secure/IssueNavigator.jspa') and " + + "contains($d/child::td[1]/child::a[1]/@href, 'assignee') " + + "return " + + "<dummy>" + + "{ data(fn:normalize-space($d/child::td[1]/child::a[1]/text())) }|" + + "{ data(fn:normalize-space(fn:string-join($d/child::td[2]/text(), ''))) }" + + "</dummy>"; + List resultIssueAssignees = WebCrawlingUtils.runXQuery(dom, queryIssueAssignees); - // scrape - for(Iterator itProject = resultProjects.iterator(); itProject.hasNext();) { - String valueProject = WebCrawlingUtils.eliminateEmptyValues(((NodeInfo)itProject.next()).getStringValue()); - log.debug(String.format("Scraped project: \"%s\"", valueProject)); + // scrape + for(Iterator itProject = resultProjects.iterator(); itProject.hasNext();) { + String valueProject = WebCrawlingUtils.eliminateEmptyValues(((NodeInfo)itProject.next()).getStringValue()); + log.debug(String.format("Scraped project: \"%s\"", valueProject)); - StringTokenizer tokenizerProject = new StringTokenizer(valueProject, "|"); - String name = tokenizerProject.nextToken(); - String projectKey = tokenizerProject.nextToken(); - String projectUrl = tokenizerProject.nextToken(); - String description = tokenizerProject.nextToken(); - String lead = tokenizerProject.nextToken(); + StringTokenizer tokenizerProject = new StringTokenizer(valueProject, "|"); + String name = tokenizerProject.nextToken(); + String projectKey = tokenizerProject.nextToken(); + String projectUrl = tokenizerProject.nextToken(); + String description = tokenizerProject.nextToken(); + String lead = tokenizerProject.nextToken(); - // scrape issue statuses - int openIssues = 0; - int codingInProgressIssues = 0; - int reopenedIssues = 0; - int resolvedIssues = 0; - int closedIssues = 0; - for(Iterator itIssueStatus = resultIssueStatuses.iterator(); itIssueStatus.hasNext();) { - String valueIssueStatus = ((NodeInfo)itIssueStatus.next()).getStringValue(); - log.debug(String.format("Scraped issue status: \"%s\"", valueIssueStatus)); + // scrape issue statuses + int openIssues = 0; + int codingInProgressIssues = 0; + int reopenedIssues = 0; + int resolvedIssues = 0; + int closedIssues = 0; + for(Iterator itIssueStatus = resultIssueStatuses.iterator(); itIssueStatus.hasNext();) { + String valueIssueStatus = ((NodeInfo)itIssueStatus.next()).getStringValue(); + log.debug(String.format("Scraped issue status: \"%s\"", valueIssueStatus)); - StringTokenizer tokenizerIssueStatus = new StringTokenizer(valueIssueStatus, "|"); - int status = Integer.parseInt(tokenizerIssueStatus.nextToken()); - int count = Integer.parseInt(tokenizerIssueStatus.nextToken()); - switch(status) { - case 1: openIssues = count; break; - // TODO what is 2? - case 3: codingInProgressIssues = count; break; - case 4: reopenedIssues = count; break; - case 5: resolvedIssues = count; break; - case 6: closedIssues = count; break; - default: throw new IllegalArgumentException(String.format("Unknown issue status: %d", status)); - } - } + StringTokenizer tokenizerIssueStatus = new StringTokenizer(valueIssueStatus, "|"); + int status = Integer.parseInt(tokenizerIssueStatus.nextToken()); + int count = Integer.parseInt(tokenizerIssueStatus.nextToken()); + switch(status) { + case 1: openIssues = count; break; + // TODO what is 2? + case 3: codingInProgressIssues = count; break; + case 4: reopenedIssues = count; break; + case 5: resolvedIssues = count; break; + case 6: closedIssues = count; break; + default: log.warn(String.format("Unknown issue status: %d", status)); + } + } - // scrape issue priorities - int blockerOpenIssues = 0; - int criticalOpenIssues = 0; - int majorOpenIssues = 0; - int minorOpenIssues = 0; - int trivialOpenIssues = 0; - int optionalOpenIssues = 0; - for(Iterator itIssuePriority = resultIssuePriorities.iterator(); itIssuePriority.hasNext();) { - String valueIssuePriority = ((NodeInfo)itIssuePriority.next()).getStringValue(); - log.debug(String.format("Scraped issue priority: \"%s\"", valueIssuePriority)); + // scrape issue priorities + int blockerOpenIssues = 0; + int criticalOpenIssues = 0; + int majorOpenIssues = 0; + int minorOpenIssues = 0; + int trivialOpenIssues = 0; + int optionalOpenIssues = 0; + for(Iterator itIssuePriority = resultIssuePriorities.iterator(); itIssuePriority.hasNext();) { + String valueIssuePriority = ((NodeInfo)itIssuePriority.next()).getStringValue(); + log.debug(String.format("Scraped issue priority: \"%s\"", valueIssuePriority)); - StringTokenizer tokenizerIssuePriority = new StringTokenizer(valueIssuePriority, "|"); - int priority = Integer.parseInt(tokenizerIssuePriority.nextToken()); - int count = Integer.parseInt(tokenizerIssuePriority.nextToken()); - switch(priority) { - case 1: blockerOpenIssues = count; break; - case 2: criticalOpenIssues = count; break; - case 3: majorOpenIssues = count; break; - case 4: minorOpenIssues = count; break; - case 5: trivialOpenIssues = count; break; - // TODO what is 6? - case 7: optionalOpenIssues = count; break; - default: throw new IllegalArgumentException(String.format("Unknown issue priority: %d", priority)); - } - } + StringTokenizer tokenizerIssuePriority = new StringTokenizer(valueIssuePriority, "|"); + int priority = Integer.parseInt(tokenizerIssuePriority.nextToken()); + int count = Integer.parseInt(tokenizerIssuePriority.nextToken()); + switch(priority) { + case 1: blockerOpenIssues = count; break; + case 2: criticalOpenIssues = count; break; + case 3: majorOpenIssues = count; break; + case 4: minorOpenIssues = count; break; + case 5: trivialOpenIssues = count; break; + // TODO what is 6? + case 7: optionalOpenIssues = count; break; + default: log.warn(String.format("Unknown issue priority: %d", priority)); + } + } - // scrape issue assignees - Map<String, Integer> openIssuesPerAssigneeMap = new HashMap<String, Integer>(); - for(Iterator itIssueAssignee = resultIssueAssignees.iterator(); itIssueAssignee.hasNext();) { - String valueIssueAssignee = ((NodeInfo)itIssueAssignee.next()).getStringValue(); - log.debug(String.format("Scraped issue assignee: \"%s\"", valueIssueAssignee)); + // scrape issue assignees + Map<String, Integer> openIssuesPerAssigneeMap = new HashMap<String, Integer>(); + for(Iterator itIssueAssignee = resultIssueAssignees.iterator(); itIssueAssignee.hasNext();) { + String valueIssueAssignee = ((NodeInfo)itIssueAssignee.next()).getStringValue(); + log.debug(String.format("Scraped issue assignee: \"%s\"", valueIssueAssignee)); - StringTokenizer tokenizerIssueAssignee = new StringTokenizer(valueIssueAssignee, "|"); - String assignee = tokenizerIssueAssignee.nextToken(); - int count = Integer.parseInt(tokenizerIssueAssignee.nextToken()); - openIssuesPerAssigneeMap.put(assignee, count); - } + StringTokenizer tokenizerIssueAssignee = new StringTokenizer(valueIssueAssignee, "|"); + String assignee = tokenizerIssueAssignee.nextToken(); + int count = Integer.parseInt(tokenizerIssueAssignee.nextToken()); + openIssuesPerAssigneeMap.put(assignee, count); + } - // generate charts - String prefix = UrlUtils.removeUserInfoFromUrl(url); - List<Map.Entry<String, Integer>> openIssuesPerAssignee = (List<Map.Entry<String, Integer>>)ChartUtils.countMapToSortedList(openIssuesPerAssigneeMap); + // generate charts + String prefix = UrlUtils.removeUserInfoFromUrl(url); + List<Map.Entry<String, Integer>> openIssuesPerAssignee = (List<Map.Entry<String, Integer>>)ChartUtils.countMapToSortedList(openIssuesPerAssigneeMap); - ZoomableImageLocator openIssuesPerAssigneeChartLocator = generateOpenIssuesPerAssigneeChart(prefix, openIssuesPerAssignee); - ZoomableImageLocator issuesPerStatusChartLocator = generateIssuePerStatusChart(prefix, openIssues, codingInProgressIssues, reopenedIssues, resolvedIssues, closedIssues); - ZoomableImageLocator openIssuesPerPriorityChartLocator = generateIssuePerPriorityChart(prefix, blockerOpenIssues, criticalOpenIssues, majorOpenIssues, minorOpenIssues, trivialOpenIssues, optionalOpenIssues); + ZoomableImageLocator openIssuesPerAssigneeChartLocator = generateOpenIssuesPerAssigneeChart(prefix, openIssuesPerAssignee); + ZoomableImageLocator issuesPerStatusChartLocator = generateIssuePerStatusChart(prefix, openIssues, codingInProgressIssues, reopenedIssues, resolvedIssues, closedIssues); + ZoomableImageLocator openIssuesPerPriorityChartLocator = generateIssuePerPriorityChart(prefix, blockerOpenIssues, criticalOpenIssues, majorOpenIssues, minorOpenIssues, trivialOpenIssues, optionalOpenIssues); - // save - JiraProject project = new JiraProject(name, prefix, projectKey, projectUrl, description, lead, - openIssues, codingInProgressIssues, reopenedIssues, resolvedIssues, closedIssues, - blockerOpenIssues, criticalOpenIssues, majorOpenIssues, minorOpenIssues, trivialOpenIssues, optionalOpenIssues, - (List<Map.Entry<String, Integer>>)trimList(openIssuesPerAssignee), - issuesPerStatusChartLocator, openIssuesPerPriorityChartLocator, openIssuesPerAssigneeChartLocator); - log.debug(String.format("Adding project \"%s\"...", project)); - projects.add(project); - } - } catch(Exception ex) { - log.error("Unable to scrape", ex); - } + // save + JiraProject project = new JiraProject(name, prefix, projectKey, projectUrl, description, lead, + openIssues, codingInProgressIssues, reopenedIssues, resolvedIssues, closedIssues, + blockerOpenIssues, criticalOpenIssues, majorOpenIssues, minorOpenIssues, trivialOpenIssues, optionalOpenIssues, + (List<Map.Entry<String, Integer>>)trimList(openIssuesPerAssignee), + issuesPerStatusChartLocator, openIssuesPerPriorityChartLocator, openIssuesPerAssigneeChartLocator); + log.debug(String.format("Adding project \"%s\"...", project)); + projects.add(project); + } + } catch(Exception ex) { + log.error("Unable to scrape", ex); + } - endStoreSession(); + endStoreSession(); - return projects; - } + return projects; + } - /** Connects to the given public or secure JIRA URL. */ - protected void connect(String url) throws MalformedURLException { - // authenticate if project is secured - String userInfo[] = UrlUtils.parseUserInfoFromUrl(url); - if(userInfo != null) { - String userName = userInfo[0]; - String password = userInfo[1]; + /** Connects to the given public or secure JIRA URL. */ + protected void connect(String url) throws MalformedURLException { + // authenticate if project is secured + String userInfo[] = UrlUtils.parseUserInfoFromUrl(url); + if(userInfo != null) { + String userName = userInfo[0]; + String password = userInfo[1]; - log.debug(String.format("Signing in as \"%s\" \"%s\"...", userName, password)); - // do nothing - } - } + log.debug(String.format("Signing in as \"%s\" \"%s\"...", userName, password)); + // do nothing + } + } - /** Disconnects from the given URL. */ - protected void disconnect(String url) { - // do nothing - } + /** Disconnects from the given URL. */ + protected void disconnect(String url) { + // do nothing + } } |