From 602b44b53d68c578bb6d2a54cfc787ade992b6d7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 21:32:41 -0300 Subject: [PATCH 01/29] gradle basic setup --- .gitignore | 3 + build.gradle | 7 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 240 +++++++++++++++++++++++ gradlew.bat | 91 +++++++++ src/main/java/com | 1 + 7 files changed, 347 insertions(+) create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 120000 src/main/java/com diff --git a/.gitignore b/.gitignore index 3c9535e..d2008f1 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ JacobVersion.properties setenv.sh junit*properties ~$* +.idea +.gradle +build \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..0742aba --- /dev/null +++ b/build.gradle @@ -0,0 +1,7 @@ +plugins { + id "java" +} + +dependencies { + implementation fileTree("${projectDir}/lib") +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f127cfd --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/com b/src/main/java/com new file mode 120000 index 0000000..c6b5c88 --- /dev/null +++ b/src/main/java/com @@ -0,0 +1 @@ +../../com \ No newline at end of file From f02ba56bb9f575c04c7b507ee77bab540b22d2e8 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 21:44:31 -0300 Subject: [PATCH 02/29] creating symlinks --- src/test/java/com | 1 + 1 file changed, 1 insertion(+) create mode 120000 src/test/java/com diff --git a/src/test/java/com b/src/test/java/com new file mode 120000 index 0000000..41c3bdc --- /dev/null +++ b/src/test/java/com @@ -0,0 +1 @@ +../../../unittest/com \ No newline at end of file From 69245db83603de33b4a9887535547fc00c26685b Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 21:46:17 -0300 Subject: [PATCH 03/29] converting charset from utf16 to utf8 --- .../test/safearray/SafeArrayBasicTest.java | Bin 20006 -> 10029 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java b/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java index 96e210686d74b78e8ddd56ef4a68cad0d4ebba72..f6c1b995a89b8df7af965383efc28e302f57eb95 100644 GIT binary patch literal 10029 zcmeHN-Ez}L6uy?9V#haeh*1(d6bdObP{<6O&|wc_Sc92&|`$vBd|yXWlr`OewZ9*t#iAcsl>$;jWAL9**-%4EKg z10~Z`KEBp!>CrezGm)f2e?O0P=HDO@;~>gI9S_AIO-4e;Mu& zHfqrqn@Mtj4oIjVbYO%`l@ySc8h#-6h}@97(3y`^oQXk_lJCmth@YF$r|iJ@PnZ%*Kk`u zft4Src$n>B$kLLvj0f{0aBlya%gA)vZLuVDw{9u@uzLct9sQ7}e@erNF@Rd<{*ceyz0dda%51ZV4H7n{H7idu5@vi?GWnQcT1VzNWi;qj?&f?SVMLSjshz#w+Z5~TVh#T9+izIe*6g?5IbeXpy8@q!7j{}Lq4R=A z$}|GQ$vP)8DmFaJgkNR^Icc$~%XyCLrCr@b5@UxHsw2_3ex8;QKLFy$UjGtu#Daip z_Xy;!j{!L+h0U%rp8g8C&lYla8*qA_vzv-0*x4St()pLL%+aOqU;1y8o7JH)y_Eva znc(WIzOdELs&)86xxk&l@NF*NZV7}bFRp+GoK{|S&FZ~un*cNJ?L30 zodFmdQ6gtH!UJk-$`RaA0AYi31g=OD8|RQE_yK=*8_W_m`n`~5&U{c~^ogW{Id-l$ zlO$3yE+g0N9d>PVlaE{%dnrqE)x}vsWN@qf_;B8G@;3Ubl59?oO)&dJe0E+(GETQ5 zRGZH(+%w9T_{3i5f0k$V@AqUn9SH&2n!v--ktU{x!S@W0D_PW{Hz_rMme4(&0&Em5KHglb%ngbLLmRKK`Jh2xe$ z;X5@9Pz<2j)b{<2i>u#=s~0<5%h}oxy(?>%FI~P|mUd9lO4W7#>7klN1+3U$iy@Lc z8|SEe=_nGrG><~T2_bYyRV=D^VL&N`$;VVEyz2P;lpBLW-&Jw^TpYjn`;X%nub=V% z^VhGApTB;I|G(@|&r#gw(i;jG(;VLX`S$m>&)zfUmx}$IudMY}=(^VD>uPoF-=OdP zD}4R7&73R`kt&l%wsyj&)Q&R`xxp18f8yM&nsCw%$Xk{bQ=-hV_1I);4EbjhrLJx*bMkAp0;_Y&;sC23;3tS+cGB-C1=tih5hm?=N=Q1I4KJo^CHv z`o-y8IcdFS^)8P&Mz$O{`?TP?8xyeWgXD8&;0b1I`g1(vY&z5QQH8V)JiXw9%DC(C*IP(LBz@Nec%e827vaD`g23GCXY4i@R5pQp1gd5ZC2~z+&yo;ytJgs0UgoIU*QpW+armUYE>qL!r6pJThM8$q8E9Lj zxWgy-#A$~AMa)aQCv#vPm#ZEd(n3c(qCzO@-7Jh(Gx5&!WLyL<#C8?%O@;@O#f1El zfQw0#QQkM^?ozClfZ(8mjGt@N6_VqGU(?=cGWKh^0y>uQQhWQOUw^~HG1*z6Iz>9tS5n0JXqVzh4~Mv6k%&d_m;P!cv?H}Ob}p>bWfRg9<7wGx^rZ0A aa-ss%SyQ4;?ZTg48sIkv?ArrRTmJyZ`=M+A literal 20006 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 From f909183482c3b5256a11e7059ac5480eb4dd63c0 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 22:03:25 -0300 Subject: [PATCH 04/29] try and error --- .gitignore | 3 ++- build.gradle | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d2008f1..1fd891e 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ junit*properties ~$* .idea .gradle -build \ No newline at end of file +build +*.iml \ No newline at end of file diff --git a/build.gradle b/build.gradle index 0742aba..29dfd79 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,39 @@ plugins { id "java" } +compileJava { + options.encoding = 'UTF-8' +} + +compileTestJava { + options.encoding = 'UTF-8' +} + +// +//sourceSets { +// main { +// java { +// srcDirs = ["$projectDir/src/"] +// include '**/*.java' +// exclude '**/main/**' +// } +// +// resources { +// srcDirs = ["$projectDir/src/main/resources"] +// } +// } +// +// test { +//// java { srcDir "$projectDir/unittest" } // tambem funciona mas vai adicionar o dir ao inves de subsituir pelo default +// java { +// srcDirs = ["$projectDir/unittest"] +// } +// resources { +// srcDir 'src/test/resources' +// } +// } +//} + dependencies { implementation fileTree("${projectDir}/lib") } \ No newline at end of file From ebb0c22758aa688763ec09f7700763ecb92999c7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 22:06:38 -0300 Subject: [PATCH 05/29] converting charset --- .editorconfig | 13 +++++ .../com/jacob/test/excel/ControllerTest.java | 48 +++++++++---------- 2 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..eeb88cc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig is awesome: http://EditorConfig.org +# version: 1.0.6 + +# top-most EditorConfig file +root = true + +[*] +end_of_line = crlf +insert_final_newline = true +charset = utf-8 +indent_style = tab +indent_size = 2 + diff --git a/unittest/com/jacob/test/excel/ControllerTest.java b/unittest/com/jacob/test/excel/ControllerTest.java index efd6d4b..3b67cce 100644 --- a/unittest/com/jacob/test/excel/ControllerTest.java +++ b/unittest/com/jacob/test/excel/ControllerTest.java @@ -116,7 +116,7 @@ public void executaExcelCallBack(String path, String password) { } /** - * Constante para configurar a planilha em modo "Calculation" automático + * Constante para configurar a planilha em modo "Calculation" automático */ public static final int CALC_AUTOMATICO = -4105; @@ -126,13 +126,13 @@ public void executaExcelCallBack(String path, String password) { public static final int CALC_MANUAL = -4135; /** - * Escreve um determinado valor em uma célula da pasta em questão. O - * valor é escrito configurando a propriedade Value da célula + * Escreve um determinado valor em uma célula da pasta em questão. O + * valor é escrito configurando a propriedade Value da célula * * @param celula - - * célula para escrever novo valor + * célula para escrever novo valor * @param sheet - - * pasta da planilha em questão + * pasta da planilha em questão * @param valor - * valor a ser escrito na celula */ @@ -145,14 +145,14 @@ public void informarValorCelula(String celula, Dispatch sheet, } /** - * Obtem o valor de contido em uma célula. O valor representa o conteúdo - * da propriedade Value da célula + * Obtem o valor de contido em uma célula. O valor representa o conteúdo + * da propriedade Value da célula * * @param celula - - * célula a ser lida + * célula a ser lida * @param sheet - - * pasta da planilha que contém a célula - * @return - conteúdo da propriedade Value + * pasta da planilha que contém a célula + * @return - conteúdo da propriedade Value */ public Variant obterValorCelula(String celula, Dispatch sheet) { System.out.println("Entered obterValorCelula"); @@ -163,18 +163,18 @@ public Variant obterValorCelula(String celula, Dispatch sheet) { } /** - * Obtem referência para a célua ou conjunto de células especificado no + * Obtem referência para a célua ou conjunto de células especificado no * parametro * * @param celula - - * Referência para célula ou conjunto de células. A String + * Referência para célula ou conjunto de células. A String * "A1" referencia a coluna A e linha 1. A Sting "A1:A10" - * referencia as células compreendidas no intervalo entre a - * célua A1 e a célula A10 + * referencia as células compreendidas no intervalo entre a + * célua A1 e a célula A10 * @param sheet - - * pasta da planilha qye contém as células - * @return - referencia para um célula ou conjunto de células, - * dependendo do parâmetro passado + * pasta da planilha qye contém as células + * @return - referencia para um célula ou conjunto de células, + * dependendo do parâmetro passado */ public Dispatch obterCelula(String celula, Dispatch sheet) { System.out.println("Entered obterCelula"); @@ -185,13 +185,13 @@ public Dispatch obterCelula(String celula, Dispatch sheet) { } /** - * Obtem os valores de um conjunto de células + * Obtem os valores de um conjunto de células * * @param celulas - - * Referência para conjunto de células + * Referência para conjunto de células * @param sheet - - * Pasta que contém as cálulas referenciadas - * @return - Lista onde cada elemento é o valor de uma célula + * Pasta que contém as cálulas referenciadas + * @return - Lista onde cada elemento é o valor de uma célula * referenciada na conjunto */ public List obterValoresRange(String celulas, Dispatch sheet) { @@ -200,7 +200,7 @@ public List obterValoresRange(String celulas, Dispatch sheet) { // obtem valor das celulas como um Variant Variant var = obterValorCelula(celulas, sheet); - // toString da Variant é interpretado por um StringTokenizer e os + // toString da Variant é interpretado por um StringTokenizer e os // tokens // inseridos na lista de retorno String arrayAsString = null; @@ -216,10 +216,10 @@ public List obterValoresRange(String celulas, Dispatch sheet) { } /** - * Método para execução de ação a ser executada em planilha excel. + * Método para execução de ação a ser executada em planilha excel. * * @param xl - - * Referencia para aplicação excel + * Referencia para aplicação excel * @param sheets - * Referencia para conjunto de pastas da planilha */ From 66ec4f146e418ab83586bac3ecaba301c6a93d8b Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Mar 2023 22:20:13 -0300 Subject: [PATCH 06/29] building it's working --- .gitignore | 4 +-- build.gradle | 32 ++++++++++++++----- gradle.properties | 1 + .../META-INF/JacobVersion.properties | 3 ++ 4 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 gradle.properties create mode 100644 src/main/resources/META-INF/JacobVersion.properties diff --git a/.gitignore b/.gitignore index 1fd891e..85d9731 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ release .cdtproject foo.foo foo.ser -JacobVersion.properties .settings setenv.sh junit*properties @@ -21,4 +20,5 @@ junit*properties .idea .gradle build -*.iml \ No newline at end of file +*.iml +*.log diff --git a/build.gradle b/build.gradle index 29dfd79..fd26eb2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,22 @@ +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + plugins { - id "java" + id "java" } -compileJava { - options.encoding = 'UTF-8' -} +//project.properties.put("buildDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss"))) +project.ext.set("buildDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss"))) -compileTestJava { - options.encoding = 'UTF-8' +processResources { + outputs.upToDateWhen { false } + filesMatching('**/JacobVersion.properties') { + expand(project.properties) + } } + + // //sourceSets { // main { @@ -35,6 +42,15 @@ compileTestJava { // } //} + dependencies { - implementation fileTree("${projectDir}/lib") -} \ No newline at end of file + implementation fileTree("${projectDir}/lib") +} + +compileJava { + options.encoding = 'UTF-8' +} + +compileTestJava { + options.encoding = 'UTF-8' +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..42f74c5 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +version=1.20 diff --git a/src/main/resources/META-INF/JacobVersion.properties b/src/main/resources/META-INF/JacobVersion.properties new file mode 100644 index 0000000..fcb8fbc --- /dev/null +++ b/src/main/resources/META-INF/JacobVersion.properties @@ -0,0 +1,3 @@ +version=${version} +build.iteration=01 +build.date=${buildDate} From 4383b5c1b9712a4b260b576c54ddb5d76a3e972c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 00:34:30 -0300 Subject: [PATCH 07/29] configuring loading dll from resources --- build.gradle | 29 --------- src/com/jacob/com/IoUtils.java | 50 ++++++++++++++++ src/com/jacob/com/LibraryLoader.java | 56 +++++++++++++----- .../resources/com.jacob.com/jacob-x64.dll | Bin 0 -> 226816 bytes .../resources/com.jacob.com/jacob-x86.dll | Bin 0 -> 189440 bytes 5 files changed, 92 insertions(+), 43 deletions(-) create mode 100644 src/com/jacob/com/IoUtils.java create mode 100644 src/main/resources/com.jacob.com/jacob-x64.dll create mode 100644 src/main/resources/com.jacob.com/jacob-x86.dll diff --git a/build.gradle b/build.gradle index fd26eb2..d750254 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,6 @@ plugins { id "java" } -//project.properties.put("buildDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss"))) project.ext.set("buildDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss"))) processResources { @@ -15,34 +14,6 @@ processResources { } } - - -// -//sourceSets { -// main { -// java { -// srcDirs = ["$projectDir/src/"] -// include '**/*.java' -// exclude '**/main/**' -// } -// -// resources { -// srcDirs = ["$projectDir/src/main/resources"] -// } -// } -// -// test { -//// java { srcDir "$projectDir/unittest" } // tambem funciona mas vai adicionar o dir ao inves de subsituir pelo default -// java { -// srcDirs = ["$projectDir/unittest"] -// } -// resources { -// srcDir 'src/test/resources' -// } -// } -//} - - dependencies { implementation fileTree("${projectDir}/lib") } diff --git a/src/com/jacob/com/IoUtils.java b/src/com/jacob/com/IoUtils.java new file mode 100644 index 0000000..d888190 --- /dev/null +++ b/src/com/jacob/com/IoUtils.java @@ -0,0 +1,50 @@ +package com.jacob.com; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +class IoUtils { + + private IoUtils() { + } + + public static Path copyFromResourcesToTempPath(String path) { + return copyToTempPath(IoUtils.class.getResourceAsStream(path), getFileName(path)); + } + + public static Path copyToTempPath(InputStream source, String fileName) { + try { + final Path tmpPath = Files.createTempFile("", "_" + fileName); + try ( + OutputStream target = Files.newOutputStream(tmpPath) + ) { + copy(source, target); + } + tmpPath.toFile().deleteOnExit(); + return tmpPath; + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + public static void copy(InputStream source, OutputStream target) { + try { + final byte[] buff = new byte[256]; + int read; + while ((read = source.read(buff, 0, buff.length)) != -1) { + target.write(buff, 0, read); + } + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + public static String getFileName(String path) { + return Paths.get(path).getFileName().toString(); + } +} diff --git a/src/com/jacob/com/LibraryLoader.java b/src/com/jacob/com/LibraryLoader.java index 4fd2740..55bc305 100644 --- a/src/com/jacob/com/LibraryLoader.java +++ b/src/com/jacob/com/LibraryLoader.java @@ -29,22 +29,22 @@ /** * Utility class to centralize the way in which the jacob JNI library is loaded. *

- * + * * This supports defining the path or library name using system properties or a * custom resource file. If desired, jacob can auto-detect the correct version * of the DLL for 32 or 64 bit windows, as long as you have named them * differently. - * + * *

    *
  1. If system property {@link #JACOB_DLL_PATH} is defined, the file located * there will be loaded as the jacob dll using System.load().
  2. - * + * *
  3. If system property {@link #JACOB_DLL_NAME} is defined, the file located * there will be loaded as the jacob dll.
  4. *
  5. If system property {@link #JACOB_DLL_NAME_X86} and * {@link #JACOB_DLL_NAME_X64} are defined, the file located there will be * loaded as the jacob dll, depending on the version of Windows.
  6. - * + * *
  7. If {@link #JACOB_DLL_NAME} is defined in the * {@code com.jacob.com.JacobLibraryLoader} resource file, the specified dll * will be loaded from the {@code java.library.path}.
  8. @@ -52,13 +52,13 @@ * defined in the {@code com.jacob.com.JacobLibraryLoader} resource file, the * specified dll will be loaded from the {@code java.library.path}, depending * on the version of Windows. - * + * *
  9. If none of the above are true, the default is to load the library named * "jacob-<version>-<arch>" (or * "jacob-<version>-<arch&rt;.dll") from the {@code java.library.path}. *
  10. *
- * + * * The standard behavior for most applications is that {@code LoadLibrary()} * will be called to load the dll. {@code LoadLibary()} searches directories * specified in the variable {@code java.library.path}. This is why most test @@ -67,7 +67,7 @@ * JACOB_DLL_PATH submitted sourceforge ticket 1493647 Added 1.11
* JACOB_DLL_NAME, JACOB_DLL_NAME_32, JACOB_DLL_NAME_64 submitted sourceforge * ticket 1845039 Added 1.14M7 - * + * * @author Scott Dickerson (sjd78) * @author Jason Smith */ @@ -112,7 +112,7 @@ public final class LibraryLoader { /** * Load the jacob dll either from an absolute path or by a library name, * both of which may be defined in various ways. - * + * * @throws UnsatisfiedLinkError * if the library does not exist. */ @@ -173,15 +173,22 @@ && shouldLoad32Bit()) { && !shouldLoad32Bit()) { name = resources.getString(JACOB_DLL_NAME_X64); } else { - // No alternate NAME or PATH was defined, so use the default. - // We will almost always end up here. - name = getPreferredDLLName(); + name = loadFromResources(); + if(name == null){ + // No alternate NAME or PATH was defined, so use the default. + // We will almost always end up here. + name = getPreferredDLLName(); + } } JacobObject.debug("Loading library " + name + " using System.loadLibrary "); // System.out.println("Loading " + name); - System.loadLibrary(name); + if(name.contains(":")){ + System.load(name); + } else { + System.loadLibrary(name); + } } } @@ -190,7 +197,7 @@ && shouldLoad32Bit()) { * created as part of the build process in build.xml *

* The DLL name is "jacob\.release" - * + * * @return the preferred name of the DLL adjusted for this platform and * version without the ".dll" extension */ @@ -206,7 +213,7 @@ public static String getPreferredDLLName() { /** * Detects whether this is a 32-bit JVM. - * + * * @return {@code true} if this is a 32-bit JVM. */ protected static boolean shouldLoad32Bit() { @@ -227,4 +234,25 @@ else if (bits.equals("64")) return true; } + + private static String loadFromResources() { + final var dllPath = getDllResourcePath(); + try { + return IoUtils.copyFromResourcesToTempPath(dllPath) + .toAbsolutePath() + .toString() + ; + } catch (Throwable e){ + JacobObject.debug(String.format("dll %s wasnt found from resources: %s", e.getMessage(), dllPath)); + return null; + } + } + + private static String getDllResourcePath() { + if (shouldLoad32Bit()) { + return "/com.jacob.com/jacob-x86.dll"; + } + return "/com.jacob.com/jacob-x64.dll"; + } + } // LibraryLoader diff --git a/src/main/resources/com.jacob.com/jacob-x64.dll b/src/main/resources/com.jacob.com/jacob-x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..b43ebcdea6790f7f801853d0fc03879f2fb72cce GIT binary patch literal 226816 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 z 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 Hzx@0KP2Lo$ literal 0 HcmV?d00001 From cc4a3f0504cc3d271f85150e604db6341798b017 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 00:40:54 -0300 Subject: [PATCH 08/29] separating automated tests from the manual ones --- build.gradle | 10 ++++++++++ ...est.java => ActiveXComponentFactoryManualTest.java} | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) rename unittest/com/jacob/com/{ActiveXComponentFactoryTest.java => ActiveXComponentFactoryManualTest.java} (98%) diff --git a/build.gradle b/build.gradle index d750254..e8486d0 100644 --- a/build.gradle +++ b/build.gradle @@ -25,3 +25,13 @@ compileJava { compileTestJava { options.encoding = 'UTF-8' } + +test { + exclude "**/*ManualTest.class" +} + +task manualTest(type: Test) { + include "**/*ManualTest.class" + failFast = true + jvmArgs += [] +} diff --git a/unittest/com/jacob/com/ActiveXComponentFactoryTest.java b/unittest/com/jacob/com/ActiveXComponentFactoryManualTest.java similarity index 98% rename from unittest/com/jacob/com/ActiveXComponentFactoryTest.java rename to unittest/com/jacob/com/ActiveXComponentFactoryManualTest.java index 71f4c26..e1cb701 100644 --- a/unittest/com/jacob/com/ActiveXComponentFactoryTest.java +++ b/unittest/com/jacob/com/ActiveXComponentFactoryManualTest.java @@ -11,7 +11,7 @@ * Eclipse). Look in the docs area at the Jacob usage document for command line * options. */ -public class ActiveXComponentFactoryTest extends BaseTestCase { +public class ActiveXComponentFactoryManualTest extends BaseTestCase { /** * This test is supposed to verify we get multiple instances when we mean From 1e7f8dc8373b69db117553951e38fcd0ab82e44a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:06:46 -0300 Subject: [PATCH 09/29] ignoring test --- unittest/com/jacob/com/VariantTest.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/unittest/com/jacob/com/VariantTest.java b/unittest/com/jacob/com/VariantTest.java index 6dcedec..e84899b 100644 --- a/unittest/com/jacob/com/VariantTest.java +++ b/unittest/com/jacob/com/VariantTest.java @@ -1,11 +1,11 @@ package com.jacob.com; +import com.jacob.test.BaseTestCase; + import java.math.BigDecimal; import java.math.BigInteger; import java.util.Date; -import com.jacob.test.BaseTestCase; - /** * runs through some of the get and set methods on Variant * @@ -608,7 +608,7 @@ public void testLargeDecimals() { * Spin up a lot of threads and have them all create variants 3/2007 there * have been several reports in multi-threaded servers that show init() * failing - * + * */ public void testManyThreadedInit() { VariantInitTestThread threads[] = new VariantInitTestThread[75]; @@ -715,8 +715,9 @@ public void testGetDispatch() { /** * there was a bitwise masking error that let booleans be seen as dispatch * objects Bug Report SF3065265 + * fixme This test was ignored because it's crashing JVM at the putErrorRef */ - public void testGetError() { + public void ignoreTestGetError() { Variant testVariant = new Variant(); testVariant.putErrorRef(3); try { From 76b4ef094edc2b5efc4d7f7eb0d8c60c345c520e Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:09:47 -0300 Subject: [PATCH 10/29] i'm turning it in a manual test as word is required to run it --- build.gradle | 2 +- .../jacob/com/{DispatchTest.java => DispatchManualTest.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename unittest/com/jacob/com/{DispatchTest.java => DispatchManualTest.java} (94%) diff --git a/build.gradle b/build.gradle index e8486d0..9c9870f 100644 --- a/build.gradle +++ b/build.gradle @@ -28,10 +28,10 @@ compileTestJava { test { exclude "**/*ManualTest.class" + failFast = true } task manualTest(type: Test) { include "**/*ManualTest.class" failFast = true - jvmArgs += [] } diff --git a/unittest/com/jacob/com/DispatchTest.java b/unittest/com/jacob/com/DispatchManualTest.java similarity index 94% rename from unittest/com/jacob/com/DispatchTest.java rename to unittest/com/jacob/com/DispatchManualTest.java index 5cbde73..40cdf15 100644 --- a/unittest/com/jacob/com/DispatchTest.java +++ b/unittest/com/jacob/com/DispatchManualTest.java @@ -10,7 +10,7 @@ * Eclipse). Look in the docs area at the Jacob usage document for command line * options. */ -public class DispatchTest extends BaseTestCase { +public class DispatchManualTest extends BaseTestCase { /** * Verify this detects word's exit From 987aa2e62a77fb4bf9f5905f6e488bb70131f25c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:18:23 -0300 Subject: [PATCH 11/29] more tests --- src/com/jacob/com/LibraryLoader.java | 11 ++++++- unittest/com/jacob/com/LibraryLoaderTest.java | 33 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/com/jacob/com/LibraryLoader.java b/src/com/jacob/com/LibraryLoader.java index 55bc305..75de7a0 100644 --- a/src/com/jacob/com/LibraryLoader.java +++ b/src/com/jacob/com/LibraryLoader.java @@ -72,6 +72,9 @@ * @author Jason Smith */ public final class LibraryLoader { + + private static volatile String name; + /** * Name of system property (currently jacob.dll.path) that may * contain an absolute path to the JNI library. @@ -117,6 +120,10 @@ public final class LibraryLoader { * if the library does not exist. */ public static void loadJacobLibrary() { + if(name != null){ + JacobObject.debug("Library already loaded: " + name); + return; + } // In some cases, a library that uses Jacob won't be able to set system // properties // prior to Jacob being loaded. The resource bundle provides an @@ -154,7 +161,6 @@ public static void loadJacobLibrary() { // libraries. // Check for a defined NAME. System property overrides resource // bundle. - String name = null; if (System.getProperty(JACOB_DLL_NAME) != null) { name = System.getProperty(JACOB_DLL_NAME); @@ -255,4 +261,7 @@ private static String getDllResourcePath() { return "/com.jacob.com/jacob-x64.dll"; } + static String getName() { + return name; + } } // LibraryLoader diff --git a/unittest/com/jacob/com/LibraryLoaderTest.java b/unittest/com/jacob/com/LibraryLoaderTest.java index 3da467e..e6f7f27 100644 --- a/unittest/com/jacob/com/LibraryLoaderTest.java +++ b/unittest/com/jacob/com/LibraryLoaderTest.java @@ -1,8 +1,14 @@ package com.jacob.com; import org.junit.Assert; +import org.junit.Assume; +import org.junit.Ignore; import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; + /** * Tests Library loader architecture methods This test requires that jacob.jar * be compiled and added to the classpath. You will need to refresh the release @@ -22,6 +28,7 @@ public class LibraryLoaderTest { /** * verify the architecture switches work */ + @Test public void testArchitectureVersions() { System.out.println("running on 32Bit? VM" + LibraryLoader.shouldLoad32Bit()); @@ -31,8 +38,11 @@ public void testArchitectureVersions() { /** * verify LibraryLoader.JACOB_DLL_NAME is read by LibraryLoader + * + * fixme disabling this test as a pre isntalled file which is not available is required to the test to pass */ @Test + @Ignore public void testJacobDllNameSystemProperty() { // this test used to run in the reverse order but that caused // ClassDefNotFound on DEBUG @@ -84,4 +94,27 @@ public void testDLLNameContainsProcessorAndVersion() { LibraryLoader.DLL_NAME_MODIFIER_64_BIT)); } } + + @Test + public void mustLoadx64DllFromResouces(){ + // arrange + assumeTrue(!LibraryLoader.shouldLoad32Bit()); + + // act + LibraryLoader.loadJacobLibrary(); + + // assert + assertTrue(LibraryLoader.getName(), LibraryLoader.getName().endsWith("jacob-x64.dll")); + } + @Test + public void mustLoadx86DllFromResouces(){ + // arrange + assumeTrue(LibraryLoader.shouldLoad32Bit()); + + // act + LibraryLoader.loadJacobLibrary(); + + // assert + assertTrue(LibraryLoader.getName(), LibraryLoader.getName().endsWith("jacob-x86.dll")); + } } From f07c75e3d67e1c1bf9be97ab798b5a37775370c9 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:19:51 -0300 Subject: [PATCH 12/29] switching to manual test as it requires word appp --- .../{UnicodeErrorTest.java => UnicodeErrorManualTest.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename unittest/com/jacob/test/errors/{UnicodeErrorTest.java => UnicodeErrorManualTest.java} (94%) diff --git a/unittest/com/jacob/test/errors/UnicodeErrorTest.java b/unittest/com/jacob/test/errors/UnicodeErrorManualTest.java similarity index 94% rename from unittest/com/jacob/test/errors/UnicodeErrorTest.java rename to unittest/com/jacob/test/errors/UnicodeErrorManualTest.java index b4a4f1c..803e2f5 100644 --- a/unittest/com/jacob/test/errors/UnicodeErrorTest.java +++ b/unittest/com/jacob/test/errors/UnicodeErrorManualTest.java @@ -11,7 +11,7 @@ * @author justme84 * */ -public class UnicodeErrorTest extends BaseTestCase { +public class UnicodeErrorManualTest extends BaseTestCase { /** * verifies that messages can now have unicode in them like when the file @@ -31,4 +31,4 @@ public void testUnicodeCharactersInErrorMessage() { .indexOf(fileName) > 0); } } -} \ No newline at end of file +} From 2a5c3866538ea0bed42e9b7729385f4272b65a94 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:20:29 -0300 Subject: [PATCH 13/29] switching to manual test as it requires excel --- .../com/jacob/test/events/ExcelEventTest.java | 156 ------------------ 1 file changed, 156 deletions(-) delete mode 100644 unittest/com/jacob/test/events/ExcelEventTest.java diff --git a/unittest/com/jacob/test/events/ExcelEventTest.java b/unittest/com/jacob/test/events/ExcelEventTest.java deleted file mode 100644 index 21c6dc3..0000000 --- a/unittest/com/jacob/test/events/ExcelEventTest.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.jacob.test.events; - -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.ComException; -import com.jacob.com.ComThread; -import com.jacob.com.Dispatch; -import com.jacob.com.DispatchEvents; -import com.jacob.com.InvocationProxy; -import com.jacob.com.Variant; -import com.jacob.test.BaseTestCase; - -/** - * This test was lifted from a forum posting and shows how you can't listen to - * Excel events (added post 1.9.1 Eclipse Settings.) This also uses the 1.9.1 - * InvocationProxy to receive the events. The test was modified in 1.14 to show - * how to hook up multiple event listeners to various Excel components - *

- * May need to run with some command line options (including from inside - * Eclipse). Look in the docs area at the Jacob usage document for command line - * options. - */ -public class ExcelEventTest extends BaseTestCase { - - /** - * load up excel, register for events and make stuff happen - * - * @param args - */ - public void testExcelWithInvocationProxy() { - ComThread.InitSTA(); - // we are going to listen to events on Application. - // You can probably also listen Excel.Sheet and Excel.Chart - String excelApplicationProgramId = "Excel.Application"; - String excelSheetProgramId = "Excel.Sheet"; - String typeLibLocation; - // office 2003 - typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"; - // office 2007 - typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE12\\EXCEL.EXE"; - // office 2013 32 bit - typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.EXE"; - // Office 2013 32 - typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE"; - // Office 2019 32 - typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"; - - // Grab The Component. - ActiveXComponent axc = new ActiveXComponent(excelApplicationProgramId); - hookupListener(axc, excelApplicationProgramId, typeLibLocation); - - try { - - System.out.println("version=" + axc.getProperty("Version")); - System.out.println("version=" + Dispatch.get(axc, "Version")); - axc.setProperty("Visible", true); - Dispatch workbooks = axc.getPropertyAsComponent("Workbooks"); - Dispatch workbook = Dispatch.get(workbooks, "Add").toDispatch(); - Dispatch sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch(); - System.out.println("Workbook: " + workbook); - System.out.println("Sheet: " + sheet); - if (typeLibLocation.contains("OFFICE11")) { - // office 2007 throws crashes the VM - System.out.println("Hooking up sheet listener"); - hookupListener(sheet, excelSheetProgramId, typeLibLocation); - } - System.out.println("Retrieving cells"); - Dispatch a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get, - new Object[] { "A1" }, new int[1]).toDispatch(); - Dispatch a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get, - new Object[] { "A2" }, new int[1]).toDispatch(); - System.out.println("Inserting value into A1"); - System.out.println("Inserting calculation 2xA1 into A2"); - Dispatch.put(a1, "Value", "123.456"); - Dispatch.put(a2, "Formula", "=A1*2"); - System.out.println("Retrieved a1 from excel:" - + Dispatch.get(a1, "Value")); - System.out.println("Retrieved a2 from excel:" - + Dispatch.get(a2, "Value")); - Variant f = new Variant(false); - Dispatch.call(workbook, "Close", f); - axc.invoke("Quit", new Variant[] {}); - - } catch (ComException cfe) { - cfe.printStackTrace(); - fail("Failed to attach to " + excelApplicationProgramId + ": " - + cfe.getMessage()); - } - try { - // the sleep is required to let everything clear out after the quit - Thread.sleep(2000); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - ComThread.Release(); - } - - /** - * extracted the listener hookup so we could try multiple listeners. - * - * @param axc - * @param programId - * @param typeLibLocation - */ - private void hookupListener(Dispatch axc, String programId, - String typeLibLocation) { - // Add a listener (doesn't matter what it is). - DispatchEvents applicationEvents; - if (typeLibLocation == null) { - applicationEvents = new DispatchEvents(axc, new ExcelEvents( - programId)); - } else { - applicationEvents = new DispatchEvents(axc, new ExcelEvents( - programId), programId, typeLibLocation); - } - if (applicationEvents == null) { - System.out - .println("No exception thrown but no dispatch returned for Excel events"); - } else { - // Yea! - System.out - .println("Successfully attached listener to " + programId); - - } - } - - /** - * Proxy class to verify we receive expected events - */ - public class ExcelEvents extends InvocationProxy { - - private String listenerPrefix = "-"; - - /** - * Constructor so we can create an instance that implements invoke() - * - * @param interfaceIdentifier - * a string that identifies which listener is speaking - */ - public ExcelEvents(String interfaceIdentifier) { - listenerPrefix = interfaceIdentifier; - } - - /** - * Override the invoke method to log all the events so that we don't - * have to implement all of the specific events. - */ - @Override - public Variant invoke(String methodName, Variant targetParameter[]) { - System.out.println("Received event from " + listenerPrefix + ": " - + methodName); - return null; - } - - } -} From bb8c3495ce4ef59bb9899d895cad00ce65c935ed Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:21:23 -0300 Subject: [PATCH 14/29] switching to manual test as it requires excel --- .../test/events/ExcelEventManualTest.java | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 unittest/com/jacob/test/events/ExcelEventManualTest.java diff --git a/unittest/com/jacob/test/events/ExcelEventManualTest.java b/unittest/com/jacob/test/events/ExcelEventManualTest.java new file mode 100644 index 0000000..4292e21 --- /dev/null +++ b/unittest/com/jacob/test/events/ExcelEventManualTest.java @@ -0,0 +1,156 @@ +package com.jacob.test.events; + +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComException; +import com.jacob.com.ComThread; +import com.jacob.com.Dispatch; +import com.jacob.com.DispatchEvents; +import com.jacob.com.InvocationProxy; +import com.jacob.com.Variant; +import com.jacob.test.BaseTestCase; + +/** + * This test was lifted from a forum posting and shows how you can't listen to + * Excel events (added post 1.9.1 Eclipse Settings.) This also uses the 1.9.1 + * InvocationProxy to receive the events. The test was modified in 1.14 to show + * how to hook up multiple event listeners to various Excel components + *

+ * May need to run with some command line options (including from inside + * Eclipse). Look in the docs area at the Jacob usage document for command line + * options. + */ +public class ExcelEventManualTest extends BaseTestCase { + + /** + * load up excel, register for events and make stuff happen + * + * @param args + */ + public void testExcelWithInvocationProxy() { + ComThread.InitSTA(); + // we are going to listen to events on Application. + // You can probably also listen Excel.Sheet and Excel.Chart + String excelApplicationProgramId = "Excel.Application"; + String excelSheetProgramId = "Excel.Sheet"; + String typeLibLocation; + // office 2003 + typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"; + // office 2007 + typeLibLocation = "C:\\Program Files\\Microsoft Office\\OFFICE12\\EXCEL.EXE"; + // office 2013 32 bit + typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.EXE"; + // Office 2013 32 + typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE"; + // Office 2019 32 + typeLibLocation = "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"; + + // Grab The Component. + ActiveXComponent axc = new ActiveXComponent(excelApplicationProgramId); + hookupListener(axc, excelApplicationProgramId, typeLibLocation); + + try { + + System.out.println("version=" + axc.getProperty("Version")); + System.out.println("version=" + Dispatch.get(axc, "Version")); + axc.setProperty("Visible", true); + Dispatch workbooks = axc.getPropertyAsComponent("Workbooks"); + Dispatch workbook = Dispatch.get(workbooks, "Add").toDispatch(); + Dispatch sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch(); + System.out.println("Workbook: " + workbook); + System.out.println("Sheet: " + sheet); + if (typeLibLocation.contains("OFFICE11")) { + // office 2007 throws crashes the VM + System.out.println("Hooking up sheet listener"); + hookupListener(sheet, excelSheetProgramId, typeLibLocation); + } + System.out.println("Retrieving cells"); + Dispatch a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get, + new Object[] { "A1" }, new int[1]).toDispatch(); + Dispatch a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get, + new Object[] { "A2" }, new int[1]).toDispatch(); + System.out.println("Inserting value into A1"); + System.out.println("Inserting calculation 2xA1 into A2"); + Dispatch.put(a1, "Value", "123.456"); + Dispatch.put(a2, "Formula", "=A1*2"); + System.out.println("Retrieved a1 from excel:" + + Dispatch.get(a1, "Value")); + System.out.println("Retrieved a2 from excel:" + + Dispatch.get(a2, "Value")); + Variant f = new Variant(false); + Dispatch.call(workbook, "Close", f); + axc.invoke("Quit", new Variant[] {}); + + } catch (ComException cfe) { + cfe.printStackTrace(); + fail("Failed to attach to " + excelApplicationProgramId + ": " + + cfe.getMessage()); + } + try { + // the sleep is required to let everything clear out after the quit + Thread.sleep(2000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + ComThread.Release(); + } + + /** + * extracted the listener hookup so we could try multiple listeners. + * + * @param axc + * @param programId + * @param typeLibLocation + */ + private void hookupListener(Dispatch axc, String programId, + String typeLibLocation) { + // Add a listener (doesn't matter what it is). + DispatchEvents applicationEvents; + if (typeLibLocation == null) { + applicationEvents = new DispatchEvents(axc, new ExcelEvents( + programId)); + } else { + applicationEvents = new DispatchEvents(axc, new ExcelEvents( + programId), programId, typeLibLocation); + } + if (applicationEvents == null) { + System.out + .println("No exception thrown but no dispatch returned for Excel events"); + } else { + // Yea! + System.out + .println("Successfully attached listener to " + programId); + + } + } + + /** + * Proxy class to verify we receive expected events + */ + public class ExcelEvents extends InvocationProxy { + + private String listenerPrefix = "-"; + + /** + * Constructor so we can create an instance that implements invoke() + * + * @param interfaceIdentifier + * a string that identifies which listener is speaking + */ + public ExcelEvents(String interfaceIdentifier) { + listenerPrefix = interfaceIdentifier; + } + + /** + * Override the invoke method to log all the events so that we don't + * have to implement all of the specific events. + */ + @Override + public Variant invoke(String methodName, Variant targetParameter[]) { + System.out.println("Received event from " + listenerPrefix + ": " + + methodName); + return null; + } + + } +} From 109399df7538291db06b60080b10cdaeb27fb63b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:24:17 -0300 Subject: [PATCH 15/29] switching test to manual as it hangs on windows 10 --- ...ETestActiveXProxy.java => IETestActiveXProxyManualTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename unittest/com/jacob/test/events/{IETestActiveXProxy.java => IETestActiveXProxyManualTest.java} (99%) diff --git a/unittest/com/jacob/test/events/IETestActiveXProxy.java b/unittest/com/jacob/test/events/IETestActiveXProxyManualTest.java similarity index 99% rename from unittest/com/jacob/test/events/IETestActiveXProxy.java rename to unittest/com/jacob/test/events/IETestActiveXProxyManualTest.java index 9c59188..d61cd19 100644 --- a/unittest/com/jacob/test/events/IETestActiveXProxy.java +++ b/unittest/com/jacob/test/events/IETestActiveXProxyManualTest.java @@ -22,7 +22,7 @@ * @TODO: THIS TEST HANGS under windows 10 on whatever version it is for 2020/09 */ -public class IETestActiveXProxy extends BaseTestCase { +public class IETestActiveXProxyManualTest extends BaseTestCase { /** * the main test method that builds up the connection and runs the test From 88d9424badad8741dd704fe301ff1fe5730a0e5c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:25:20 -0300 Subject: [PATCH 16/29] switching to manual test as it requires word app --- .../com/jacob/test/events/WordEventTest.java | 93 ------------------- 1 file changed, 93 deletions(-) delete mode 100644 unittest/com/jacob/test/events/WordEventTest.java diff --git a/unittest/com/jacob/test/events/WordEventTest.java b/unittest/com/jacob/test/events/WordEventTest.java deleted file mode 100644 index bc81b73..0000000 --- a/unittest/com/jacob/test/events/WordEventTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.jacob.test.events; - -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.ComException; -import com.jacob.com.DispatchEvents; -import com.jacob.com.InvocationProxy; -import com.jacob.com.Variant; -import com.jacob.test.BaseTestCase; - -/** - * This test was lifted from a forum posting and shows how you can't listen to - * Excel events (added post 1.9.1 Eclipse Settings.) That test was modified make - * this a MSWord event listener to demonstrate that the InvocationProxy code - * works with MS Word Events This also uses the 1.10 InvocationProxy to receive - * the events. - *

- * May need to run with some command line options (including from inside - * Eclipse). Look in the docs area at the Jacob usage document for command line - * options. - */ -public class WordEventTest extends BaseTestCase { - - /** - * load up word, register for events and make stuff happen - * - * @param args - */ - public void testCaptureWordEvents() { - String pid = "Word.Application"; - String typeLibLocation = null; - - // Grab The Component. - ActiveXComponent axc = new ActiveXComponent(pid); - try { - // Add a listener (doesn't matter what it is). - DispatchEvents de; - if (typeLibLocation == null) { - de = new DispatchEvents(axc, new WordEventTest()); - } else { - de = new DispatchEvents(axc, new WordEventTest(), pid, - typeLibLocation); - } - if (de == null) { - fail("No exception thrown but no dispatch returned for Word events"); - } else { - // Yea! - System.out.println("Successfully attached to " + pid); - - } - // this is different from the ExcelEventTest because it uses - // the jacob active X api instead of the Dispatch api - System.out.println("version=" + axc.getPropertyAsString("Version")); - axc.setProperty("Visible", true); - ActiveXComponent documents = axc - .getPropertyAsComponent("Documents"); - if (documents == null) { - fail("unable to get documents"); - } - axc.invoke("Quit", new Variant[] {}); - - } catch (ComException cfe) { - cfe.printStackTrace(); - fail("Failed to attach to " + pid + ": " + cfe.getMessage()); - - } - System.out - .println("Someone needs to add some MSWord commands to this to " - + "make some on screen stuff happens so the tester " - + "thinks we tested something"); - } - - /** - * a class that receives messages from word - */ - public class WordEvents extends InvocationProxy { - /** - * Constructor so we can create an instance that implements invoke() - */ - public WordEvents() { - } - - /** - * override the invoke() method to log all the events without writing a - * bunch of code - */ - public Variant invoke(String methodName, Variant targetParameter[]) { - System.out.println("Received event from Windows program" - + methodName); - return null; - } - - } -} \ No newline at end of file From a108d3189d3d65b0c128122a2fb52a7c35eb50ae Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:25:42 -0300 Subject: [PATCH 17/29] switching to manual test as it requires powerpoint --- .../jacob/test/powerpoint/PowerpointTest.java | 161 ------------------ 1 file changed, 161 deletions(-) delete mode 100644 unittest/com/jacob/test/powerpoint/PowerpointTest.java diff --git a/unittest/com/jacob/test/powerpoint/PowerpointTest.java b/unittest/com/jacob/test/powerpoint/PowerpointTest.java deleted file mode 100644 index 906ce72..0000000 --- a/unittest/com/jacob/test/powerpoint/PowerpointTest.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.jacob.test.powerpoint; - -/** - * $Id$ - * - * This is really more of a multi threaded tester - *

- * May need to run with some command line options (including from inside Eclipse). - * Look in the docs area at the Jacob usage document for command line options. - */ -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.ComFailException; -import com.jacob.com.ComThread; -import com.jacob.com.Dispatch; -import com.jacob.test.BaseTestCase; - -/** - * - * power point test program posted to sourceforge to demonstrate memory problem. - * The submitter stated they had the problem on windows 2000 with office 2000 I - * have been unable to duplicate on windows XP with office 2003. I am adding - * this to the tree just in case we need to come back to it. - *

- * This test was modified for office 2007 to synchronize communication with Excel. - * Office 2003 didn't require this. - *

- * This relies on BaseTestCase to provide the root path to the file under test - *

- * May need to run with some command line options (including from inside - * Eclipse). Look in the docs area at the Jacob usage document for command line - * options. - */ -public class PowerpointTest extends BaseTestCase { - private static final int NUM_THREADS = 5; - protected static final int NUM_ITERATIONS = 50; - - /** - * main program that lets us run this as a test - * - * @param args - */ - public void testPowerpoint() { - ComThread.InitMTA(); - - ActiveXComponent component = new ActiveXComponent( - "Powerpoint.Application"); - Dispatch comPowerpoint = component.getObject(); - - try { - PowerpointTestThread[] threads = new PowerpointTestThread[NUM_THREADS]; - for (int i = 0; i < NUM_THREADS; i++) { - threads[i] = new PowerpointTestThread(i + 1, comPowerpoint); - threads[i].start(); - } - - boolean allThreadsFinished = false; - while (!allThreadsFinished) { - allThreadsFinished = true; - for (int i = 0; i < NUM_THREADS; i++) { - if (threads[i].isAlive()) { - allThreadsFinished = false; - break; - } - } - if (!allThreadsFinished) { - try { - Thread.sleep(100); - } catch (InterruptedException e) { - // no op - } - } - } - - Dispatch.call(comPowerpoint, "Quit"); - for (int i = 0; i < NUM_THREADS; i++) { - if (threads[i].threadFailedWithException != null) { - fail("caught unexpected exception in thread " - + threads[i].threadFailedWithException); - } - } - } finally { - ComThread.Release(); - } - - } - - /** - * the thread class that runs power point - */ - public class PowerpointTestThread extends Thread { - /** - * holds any caught exception so the main/test case can see them - */ - public Throwable threadFailedWithException = null; - - private int threadID; - private Dispatch comPowerpoint; - - /** - * thread constructor - * - * @param threadID - * @param comPowerpoint - */ - public PowerpointTestThread(int threadID, Dispatch comPowerpoint) { - super("TestThread " + threadID); - this.threadID = threadID; - this.comPowerpoint = comPowerpoint; - } - - public void run() { - System.out.println("Thread \"" + Thread.currentThread().getName() - + "\" started"); - System.out.flush(); - ComThread.InitMTA(); - try { - for (int i = 0; i < NUM_ITERATIONS; i++) { - if (i % 10 == 0) { - System.out.println(Thread.currentThread().getName() - + ": Iteration " + i); - System.out.flush(); - } - // office 2003 seems to have been able to handle more - // multi-threaded requests than office 2007 - // office 2003 could handle 5 threads @ 50 iterations - // office 2007 can only handle 1 thread at a time - synchronized(comPowerpoint){ - Dispatch comPresentations = Dispatch.get(comPowerpoint, - "Presentations").toDispatch(); - Dispatch comPresentation = Dispatch.call( - comPresentations, - "Open", - getWindowsFilePathToPackageResource("test" - + threadID + ".ppt", this.getClass()), - new Integer(0), new Integer(0), new Integer(0)) - .toDispatch(); - Dispatch.call(comPresentation, "Close"); - } - } - } catch (ComFailException cfe) { - threadFailedWithException = cfe; - System.err.println(Thread.currentThread().getName() - + "\" while working on: " - + getWindowsFilePathToPackageResource("test" + threadID - + ".ppt", this.getClass())); - cfe.printStackTrace(); - } catch (Exception e) { - threadFailedWithException = e; - System.err.println("Error in Thread \"" - + Thread.currentThread().getName() + "\":"); - e.printStackTrace(); - } finally { - ComThread.Release(); - System.out.println("Thread \"" - + Thread.currentThread().getName() + "\" finished"); - System.out.flush(); - } - } - - } -} \ No newline at end of file From c0ed0e23988eac0bcd81ca0f7ac99cdbf407734b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:26:12 -0300 Subject: [PATCH 18/29] switching to manual test as it requires excel --- .../com/jacob/test/excel/ControllerTest.java | 236 ------------------ 1 file changed, 236 deletions(-) delete mode 100644 unittest/com/jacob/test/excel/ControllerTest.java diff --git a/unittest/com/jacob/test/excel/ControllerTest.java b/unittest/com/jacob/test/excel/ControllerTest.java deleted file mode 100644 index 3b67cce..0000000 --- a/unittest/com/jacob/test/excel/ControllerTest.java +++ /dev/null @@ -1,236 +0,0 @@ -package com.jacob.test.excel; - -import java.io.File; -import java.util.LinkedList; -import java.util.List; -import java.util.StringTokenizer; - -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.ComThread; -import com.jacob.com.Dispatch; -import com.jacob.com.Variant; -import com.jacob.test.BaseTestCase; - -/** - * this test verifies that you can call toString() on a Variant extracted from - * Excel that contains a 2 dimensional array of doubles. 1.14M5 and earlier blew - * up on this because two objects pointed at the same windows memory space SF 1840487 - */ -public class ControllerTest extends BaseTestCase { - - private Controller controller; - - protected void setUp() { - controller = new Controller(); - } - - public void testGetColumnA() { - List list = controller.getColumnA(super - .getWindowsFilePathToPackageResource("teste.xls", this - .getClass())); - assertEquals(50, list.size()); - } - - public void testGetColumnB() { - List list = controller.getColumnB(super - .getWindowsFilePathToPackageResource("teste.xls", this - .getClass())); - assertEquals(40, list.size()); - } - - /** - * This class looks bad because it is a compressed version that was - * originally in 3 different files as part of a bug submission. I didn't - * want to simplify it because it might no longer demonstrate the problem we - * were trying to fix - */ - public class Controller { - - private List columnA; - - private List columnB; - - public List getColumnA(String pathToTest) { - load(pathToTest); - return columnA; - } - - public List getColumnB(String pathToTest) { - load(pathToTest); - return columnB; - } - - public void load(String pathToTest) { - if (columnA == null || columnB == null) { - File excelFile = new File(pathToTest); - executaExcelCallBack(excelFile.getAbsolutePath(), "password"); - } - } - - public void executaExcelCallBack(String path, String password) { - // ComThread.InitSTA(); - ComThread.InitMTA(); - ActiveXComponent excel = new ActiveXComponent("Excel.Application"); - - try { - - excel.setProperty("Visible", false); - Dispatch workbooks = excel.getProperty("Workbooks") - .toDispatch(); - - Dispatch workbook = Dispatch.call(workbooks, "Open", path, // FileName - 3, // UpdateLinks - false, // Readonly - 5, // Format - password // Password - ).toDispatch(); - - Dispatch sheets = Dispatch.call(workbook, "Worksheets") - .toDispatch(); - System.out.println("Before executa"); - executa(excel, sheets); - System.out.println("After executa"); - - Dispatch.call(workbook, "Close", new Variant(false)); - Dispatch.call(workbooks, "Close"); - System.out.println("After Close"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - Thread.sleep(1000); - } catch (Exception e) { - e.printStackTrace(); - } - System.out.println("Before Quit"); - excel.invoke("Quit", new Variant[] {}); - try { - Thread.sleep(1000); - } catch (Exception e) { - e.printStackTrace(); - } - System.out.println("After Quit, Before Release()"); - ComThread.Release(); - System.out.println("After Release()"); - } - } - - /** - * Constante para configurar a planilha em modo "Calculation" automático - */ - public static final int CALC_AUTOMATICO = -4105; - - /** - * Constante para configurar a planilha em modo "Calculation" manual - */ - public static final int CALC_MANUAL = -4135; - - /** - * Escreve um determinado valor em uma célula da pasta em questão. O - * valor é escrito configurando a propriedade Value da célula - * - * @param celula - - * célula para escrever novo valor - * @param sheet - - * pasta da planilha em questão - * @param valor - - * valor a ser escrito na celula - */ - public void informarValorCelula(String celula, Dispatch sheet, - String valor) { - System.out.println("Entered informarValorCelula"); - Dispatch cel = obterCelula(celula, sheet); - Dispatch.put(cel, "Value", valor); - System.out.println("Exiting informarValorCelula"); - } - - /** - * Obtem o valor de contido em uma célula. O valor representa o conteúdo - * da propriedade Value da célula - * - * @param celula - - * célula a ser lida - * @param sheet - - * pasta da planilha que contém a célula - * @return - conteúdo da propriedade Value - */ - public Variant obterValorCelula(String celula, Dispatch sheet) { - System.out.println("Entered obterValorCelula"); - Dispatch d = obterCelula(celula, sheet); - Variant returnedValue = Dispatch.get(d, "Value"); - System.out.println("Exiting obterValorCelula"); - return returnedValue; - } - - /** - * Obtem referência para a célua ou conjunto de células especificado no - * parametro - * - * @param celula - - * Referência para célula ou conjunto de células. A String - * "A1" referencia a coluna A e linha 1. A Sting "A1:A10" - * referencia as células compreendidas no intervalo entre a - * célua A1 e a célula A10 - * @param sheet - - * pasta da planilha qye contém as células - * @return - referencia para um célula ou conjunto de células, - * dependendo do parâmetro passado - */ - public Dispatch obterCelula(String celula, Dispatch sheet) { - System.out.println("Entered obterCelula"); - Dispatch d = Dispatch.invoke(sheet, "Range", Dispatch.Get, - new Object[] { celula }, new int[1]).toDispatch(); - System.out.println("Exiting obterCelula"); - return d; - } - - /** - * Obtem os valores de um conjunto de células - * - * @param celulas - - * Referência para conjunto de células - * @param sheet - - * Pasta que contém as cálulas referenciadas - * @return - Lista onde cada elemento é o valor de uma célula - * referenciada na conjunto - */ - public List obterValoresRange(String celulas, Dispatch sheet) { - List valores = new LinkedList(); - - // obtem valor das celulas como um Variant - Variant var = obterValorCelula(celulas, sheet); - - // toString da Variant é interpretado por um StringTokenizer e os - // tokens - // inseridos na lista de retorno - String arrayAsString = null; - System.out - .println("Calling toString() on the Variant that is an array will blow up " - + var.getvt() + " --> " + arrayAsString); - arrayAsString = var.toString(); - StringTokenizer st = new StringTokenizer(arrayAsString, "\n"); - while (st.hasMoreTokens()) { - valores.add(st.nextToken().trim()); - } - return valores; - } - - /** - * Método para execução de ação a ser executada em planilha excel. - * - * @param xl - - * Referencia para aplicação excel - * @param sheets - - * Referencia para conjunto de pastas da planilha - */ - public void executa(ActiveXComponent xl, Dispatch sheets) { - - System.out.println("Entered private ExcellCallBack executa()"); - Dispatch sheet = Dispatch.call(sheets, "Item", "Plan1") - .toDispatch(); - columnA = obterValoresRange("A1:A50", sheet); - columnB = obterValoresRange("B1:B40", sheet); - System.out.println("Exiting private ExcellCallBack executa()"); - } - } -} From 9e0b4f9c81f39721ef6735b1b87375902f9709b5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:26:34 -0300 Subject: [PATCH 19/29] adjusts --- .../test/events/WordEventManualTest.java | 93 +++++++ .../test/excel/ControllerManualTest.java | 236 ++++++++++++++++++ .../test/powerpoint/PowerpointManualTest.java | 161 ++++++++++++ 3 files changed, 490 insertions(+) create mode 100644 unittest/com/jacob/test/events/WordEventManualTest.java create mode 100644 unittest/com/jacob/test/excel/ControllerManualTest.java create mode 100644 unittest/com/jacob/test/powerpoint/PowerpointManualTest.java diff --git a/unittest/com/jacob/test/events/WordEventManualTest.java b/unittest/com/jacob/test/events/WordEventManualTest.java new file mode 100644 index 0000000..81d3b2d --- /dev/null +++ b/unittest/com/jacob/test/events/WordEventManualTest.java @@ -0,0 +1,93 @@ +package com.jacob.test.events; + +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComException; +import com.jacob.com.DispatchEvents; +import com.jacob.com.InvocationProxy; +import com.jacob.com.Variant; +import com.jacob.test.BaseTestCase; + +/** + * This test was lifted from a forum posting and shows how you can't listen to + * Excel events (added post 1.9.1 Eclipse Settings.) That test was modified make + * this a MSWord event listener to demonstrate that the InvocationProxy code + * works with MS Word Events This also uses the 1.10 InvocationProxy to receive + * the events. + *

+ * May need to run with some command line options (including from inside + * Eclipse). Look in the docs area at the Jacob usage document for command line + * options. + */ +public class WordEventManualTest extends BaseTestCase { + + /** + * load up word, register for events and make stuff happen + * + * @param args + */ + public void testCaptureWordEvents() { + String pid = "Word.Application"; + String typeLibLocation = null; + + // Grab The Component. + ActiveXComponent axc = new ActiveXComponent(pid); + try { + // Add a listener (doesn't matter what it is). + DispatchEvents de; + if (typeLibLocation == null) { + de = new DispatchEvents(axc, new WordEventManualTest()); + } else { + de = new DispatchEvents(axc, new WordEventManualTest(), pid, + typeLibLocation); + } + if (de == null) { + fail("No exception thrown but no dispatch returned for Word events"); + } else { + // Yea! + System.out.println("Successfully attached to " + pid); + + } + // this is different from the ExcelEventTest because it uses + // the jacob active X api instead of the Dispatch api + System.out.println("version=" + axc.getPropertyAsString("Version")); + axc.setProperty("Visible", true); + ActiveXComponent documents = axc + .getPropertyAsComponent("Documents"); + if (documents == null) { + fail("unable to get documents"); + } + axc.invoke("Quit", new Variant[] {}); + + } catch (ComException cfe) { + cfe.printStackTrace(); + fail("Failed to attach to " + pid + ": " + cfe.getMessage()); + + } + System.out + .println("Someone needs to add some MSWord commands to this to " + + "make some on screen stuff happens so the tester " + + "thinks we tested something"); + } + + /** + * a class that receives messages from word + */ + public class WordEvents extends InvocationProxy { + /** + * Constructor so we can create an instance that implements invoke() + */ + public WordEvents() { + } + + /** + * override the invoke() method to log all the events without writing a + * bunch of code + */ + public Variant invoke(String methodName, Variant targetParameter[]) { + System.out.println("Received event from Windows program" + + methodName); + return null; + } + + } +} diff --git a/unittest/com/jacob/test/excel/ControllerManualTest.java b/unittest/com/jacob/test/excel/ControllerManualTest.java new file mode 100644 index 0000000..9091069 --- /dev/null +++ b/unittest/com/jacob/test/excel/ControllerManualTest.java @@ -0,0 +1,236 @@ +package com.jacob.test.excel; + +import java.io.File; +import java.util.LinkedList; +import java.util.List; +import java.util.StringTokenizer; + +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComThread; +import com.jacob.com.Dispatch; +import com.jacob.com.Variant; +import com.jacob.test.BaseTestCase; + +/** + * this test verifies that you can call toString() on a Variant extracted from + * Excel that contains a 2 dimensional array of doubles. 1.14M5 and earlier blew + * up on this because two objects pointed at the same windows memory space SF 1840487 + */ +public class ControllerManualTest extends BaseTestCase { + + private Controller controller; + + protected void setUp() { + controller = new Controller(); + } + + public void testGetColumnA() { + List list = controller.getColumnA(super + .getWindowsFilePathToPackageResource("teste.xls", this + .getClass())); + assertEquals(50, list.size()); + } + + public void testGetColumnB() { + List list = controller.getColumnB(super + .getWindowsFilePathToPackageResource("teste.xls", this + .getClass())); + assertEquals(40, list.size()); + } + + /** + * This class looks bad because it is a compressed version that was + * originally in 3 different files as part of a bug submission. I didn't + * want to simplify it because it might no longer demonstrate the problem we + * were trying to fix + */ + public class Controller { + + private List columnA; + + private List columnB; + + public List getColumnA(String pathToTest) { + load(pathToTest); + return columnA; + } + + public List getColumnB(String pathToTest) { + load(pathToTest); + return columnB; + } + + public void load(String pathToTest) { + if (columnA == null || columnB == null) { + File excelFile = new File(pathToTest); + executaExcelCallBack(excelFile.getAbsolutePath(), "password"); + } + } + + public void executaExcelCallBack(String path, String password) { + // ComThread.InitSTA(); + ComThread.InitMTA(); + ActiveXComponent excel = new ActiveXComponent("Excel.Application"); + + try { + + excel.setProperty("Visible", false); + Dispatch workbooks = excel.getProperty("Workbooks") + .toDispatch(); + + Dispatch workbook = Dispatch.call(workbooks, "Open", path, // FileName + 3, // UpdateLinks + false, // Readonly + 5, // Format + password // Password + ).toDispatch(); + + Dispatch sheets = Dispatch.call(workbook, "Worksheets") + .toDispatch(); + System.out.println("Before executa"); + executa(excel, sheets); + System.out.println("After executa"); + + Dispatch.call(workbook, "Close", new Variant(false)); + Dispatch.call(workbooks, "Close"); + System.out.println("After Close"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + Thread.sleep(1000); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("Before Quit"); + excel.invoke("Quit", new Variant[] {}); + try { + Thread.sleep(1000); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("After Quit, Before Release()"); + ComThread.Release(); + System.out.println("After Release()"); + } + } + + /** + * Constante para configurar a planilha em modo "Calculation" automático + */ + public static final int CALC_AUTOMATICO = -4105; + + /** + * Constante para configurar a planilha em modo "Calculation" manual + */ + public static final int CALC_MANUAL = -4135; + + /** + * Escreve um determinado valor em uma célula da pasta em questão. O + * valor é escrito configurando a propriedade Value da célula + * + * @param celula - + * célula para escrever novo valor + * @param sheet - + * pasta da planilha em questão + * @param valor - + * valor a ser escrito na celula + */ + public void informarValorCelula(String celula, Dispatch sheet, + String valor) { + System.out.println("Entered informarValorCelula"); + Dispatch cel = obterCelula(celula, sheet); + Dispatch.put(cel, "Value", valor); + System.out.println("Exiting informarValorCelula"); + } + + /** + * Obtem o valor de contido em uma célula. O valor representa o conteúdo + * da propriedade Value da célula + * + * @param celula - + * célula a ser lida + * @param sheet - + * pasta da planilha que contém a célula + * @return - conteúdo da propriedade Value + */ + public Variant obterValorCelula(String celula, Dispatch sheet) { + System.out.println("Entered obterValorCelula"); + Dispatch d = obterCelula(celula, sheet); + Variant returnedValue = Dispatch.get(d, "Value"); + System.out.println("Exiting obterValorCelula"); + return returnedValue; + } + + /** + * Obtem referência para a célua ou conjunto de células especificado no + * parametro + * + * @param celula - + * Referência para célula ou conjunto de células. A String + * "A1" referencia a coluna A e linha 1. A Sting "A1:A10" + * referencia as células compreendidas no intervalo entre a + * célua A1 e a célula A10 + * @param sheet - + * pasta da planilha qye contém as células + * @return - referencia para um célula ou conjunto de células, + * dependendo do parâmetro passado + */ + public Dispatch obterCelula(String celula, Dispatch sheet) { + System.out.println("Entered obterCelula"); + Dispatch d = Dispatch.invoke(sheet, "Range", Dispatch.Get, + new Object[] { celula }, new int[1]).toDispatch(); + System.out.println("Exiting obterCelula"); + return d; + } + + /** + * Obtem os valores de um conjunto de células + * + * @param celulas - + * Referência para conjunto de células + * @param sheet - + * Pasta que contém as cálulas referenciadas + * @return - Lista onde cada elemento é o valor de uma célula + * referenciada na conjunto + */ + public List obterValoresRange(String celulas, Dispatch sheet) { + List valores = new LinkedList(); + + // obtem valor das celulas como um Variant + Variant var = obterValorCelula(celulas, sheet); + + // toString da Variant é interpretado por um StringTokenizer e os + // tokens + // inseridos na lista de retorno + String arrayAsString = null; + System.out + .println("Calling toString() on the Variant that is an array will blow up " + + var.getvt() + " --> " + arrayAsString); + arrayAsString = var.toString(); + StringTokenizer st = new StringTokenizer(arrayAsString, "\n"); + while (st.hasMoreTokens()) { + valores.add(st.nextToken().trim()); + } + return valores; + } + + /** + * Método para execução de ação a ser executada em planilha excel. + * + * @param xl - + * Referencia para aplicação excel + * @param sheets - + * Referencia para conjunto de pastas da planilha + */ + public void executa(ActiveXComponent xl, Dispatch sheets) { + + System.out.println("Entered private ExcellCallBack executa()"); + Dispatch sheet = Dispatch.call(sheets, "Item", "Plan1") + .toDispatch(); + columnA = obterValoresRange("A1:A50", sheet); + columnB = obterValoresRange("B1:B40", sheet); + System.out.println("Exiting private ExcellCallBack executa()"); + } + } +} diff --git a/unittest/com/jacob/test/powerpoint/PowerpointManualTest.java b/unittest/com/jacob/test/powerpoint/PowerpointManualTest.java new file mode 100644 index 0000000..770f225 --- /dev/null +++ b/unittest/com/jacob/test/powerpoint/PowerpointManualTest.java @@ -0,0 +1,161 @@ +package com.jacob.test.powerpoint; + +/** + * $Id$ + * + * This is really more of a multi threaded tester + *

+ * May need to run with some command line options (including from inside Eclipse). + * Look in the docs area at the Jacob usage document for command line options. + */ +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComFailException; +import com.jacob.com.ComThread; +import com.jacob.com.Dispatch; +import com.jacob.test.BaseTestCase; + +/** + * + * power point test program posted to sourceforge to demonstrate memory problem. + * The submitter stated they had the problem on windows 2000 with office 2000 I + * have been unable to duplicate on windows XP with office 2003. I am adding + * this to the tree just in case we need to come back to it. + *

+ * This test was modified for office 2007 to synchronize communication with Excel. + * Office 2003 didn't require this. + *

+ * This relies on BaseTestCase to provide the root path to the file under test + *

+ * May need to run with some command line options (including from inside + * Eclipse). Look in the docs area at the Jacob usage document for command line + * options. + */ +public class PowerpointManualTest extends BaseTestCase { + private static final int NUM_THREADS = 5; + protected static final int NUM_ITERATIONS = 50; + + /** + * main program that lets us run this as a test + * + * @param args + */ + public void testPowerpoint() { + ComThread.InitMTA(); + + ActiveXComponent component = new ActiveXComponent( + "Powerpoint.Application"); + Dispatch comPowerpoint = component.getObject(); + + try { + PowerpointTestThread[] threads = new PowerpointTestThread[NUM_THREADS]; + for (int i = 0; i < NUM_THREADS; i++) { + threads[i] = new PowerpointTestThread(i + 1, comPowerpoint); + threads[i].start(); + } + + boolean allThreadsFinished = false; + while (!allThreadsFinished) { + allThreadsFinished = true; + for (int i = 0; i < NUM_THREADS; i++) { + if (threads[i].isAlive()) { + allThreadsFinished = false; + break; + } + } + if (!allThreadsFinished) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + // no op + } + } + } + + Dispatch.call(comPowerpoint, "Quit"); + for (int i = 0; i < NUM_THREADS; i++) { + if (threads[i].threadFailedWithException != null) { + fail("caught unexpected exception in thread " + + threads[i].threadFailedWithException); + } + } + } finally { + ComThread.Release(); + } + + } + + /** + * the thread class that runs power point + */ + public class PowerpointTestThread extends Thread { + /** + * holds any caught exception so the main/test case can see them + */ + public Throwable threadFailedWithException = null; + + private int threadID; + private Dispatch comPowerpoint; + + /** + * thread constructor + * + * @param threadID + * @param comPowerpoint + */ + public PowerpointTestThread(int threadID, Dispatch comPowerpoint) { + super("TestThread " + threadID); + this.threadID = threadID; + this.comPowerpoint = comPowerpoint; + } + + public void run() { + System.out.println("Thread \"" + Thread.currentThread().getName() + + "\" started"); + System.out.flush(); + ComThread.InitMTA(); + try { + for (int i = 0; i < NUM_ITERATIONS; i++) { + if (i % 10 == 0) { + System.out.println(Thread.currentThread().getName() + + ": Iteration " + i); + System.out.flush(); + } + // office 2003 seems to have been able to handle more + // multi-threaded requests than office 2007 + // office 2003 could handle 5 threads @ 50 iterations + // office 2007 can only handle 1 thread at a time + synchronized(comPowerpoint){ + Dispatch comPresentations = Dispatch.get(comPowerpoint, + "Presentations").toDispatch(); + Dispatch comPresentation = Dispatch.call( + comPresentations, + "Open", + getWindowsFilePathToPackageResource("test" + + threadID + ".ppt", this.getClass()), + new Integer(0), new Integer(0), new Integer(0)) + .toDispatch(); + Dispatch.call(comPresentation, "Close"); + } + } + } catch (ComFailException cfe) { + threadFailedWithException = cfe; + System.err.println(Thread.currentThread().getName() + + "\" while working on: " + + getWindowsFilePathToPackageResource("test" + threadID + + ".ppt", this.getClass())); + cfe.printStackTrace(); + } catch (Exception e) { + threadFailedWithException = e; + System.err.println("Error in Thread \"" + + Thread.currentThread().getName() + "\":"); + e.printStackTrace(); + } finally { + ComThread.Release(); + System.out.println("Thread \"" + + Thread.currentThread().getName() + "\" finished"); + System.out.flush(); + } + } + + } +} From 1de8d196f551b67884ca308bdf214f9731fbae3d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:32:45 -0300 Subject: [PATCH 20/29] adjusting to jdk 8 --- build.gradle | 2 ++ gradle.properties | 2 +- src/com/jacob/com/LibraryLoader.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 9c9870f..8861871 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,8 @@ plugins { id "java" } +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 project.ext.set("buildDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy HH:mm:ss"))) processResources { diff --git a/gradle.properties b/gradle.properties index 42f74c5..8918bf7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=1.20 +version=1.21 diff --git a/src/com/jacob/com/LibraryLoader.java b/src/com/jacob/com/LibraryLoader.java index 75de7a0..4076dda 100644 --- a/src/com/jacob/com/LibraryLoader.java +++ b/src/com/jacob/com/LibraryLoader.java @@ -242,7 +242,7 @@ else if (bits.equals("64")) } private static String loadFromResources() { - final var dllPath = getDllResourcePath(); + final String dllPath = getDllResourcePath(); try { return IoUtils.copyFromResourcesToTempPath(dllPath) .toAbsolutePath() From abf48195c3fe40e1a02bf107c6c2519cdc2b4a5b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:34:57 -0300 Subject: [PATCH 21/29] new manual test --- ...rrayDispatchTest.java => SafeArrayDispatchManualTest.java} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename unittest/com/jacob/test/safearray/{SafeArrayDispatchTest.java => SafeArrayDispatchManualTest.java} (83%) diff --git a/unittest/com/jacob/test/safearray/SafeArrayDispatchTest.java b/unittest/com/jacob/test/safearray/SafeArrayDispatchManualTest.java similarity index 83% rename from unittest/com/jacob/test/safearray/SafeArrayDispatchTest.java rename to unittest/com/jacob/test/safearray/SafeArrayDispatchManualTest.java index 43796f8..8151b9b 100644 --- a/unittest/com/jacob/test/safearray/SafeArrayDispatchTest.java +++ b/unittest/com/jacob/test/safearray/SafeArrayDispatchManualTest.java @@ -9,8 +9,10 @@ /** * Test class to verify dispatch with SafeArray + * fixme looks like this test will only run on 32bit jdk?! so I'm turning it on a manual test for now ... + * https://sourceforge.net/p/jacob-project/discussion/375946/thread/eccc4369/ */ -public class SafeArrayDispatchTest extends BaseTestCase { +public class SafeArrayDispatchManualTest extends BaseTestCase { public void testDispatchWithSafeArray() { try { String scriptCommand = "1+(2*4)-3"; From 550cc10a8d9abe028c5badc2783fce2606a9c1e7 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:36:33 -0300 Subject: [PATCH 22/29] switching to manual test as it requires excel --- .../test/safearray/SafeArrayViaExcel.java | 75 ------------------- 1 file changed, 75 deletions(-) delete mode 100644 unittest/com/jacob/test/safearray/SafeArrayViaExcel.java diff --git a/unittest/com/jacob/test/safearray/SafeArrayViaExcel.java b/unittest/com/jacob/test/safearray/SafeArrayViaExcel.java deleted file mode 100644 index d71a612..0000000 --- a/unittest/com/jacob/test/safearray/SafeArrayViaExcel.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.jacob.test.safearray; - -import com.jacob.activeX.ActiveXComponent; -import com.jacob.com.Dispatch; -import com.jacob.com.SafeArray; -import com.jacob.com.Variant; -import com.jacob.test.BaseTestCase; - -/** - * This does simple tests with SafeArray using Excel as a source - *

- * May need to run with some command line options (including from inside - * Eclipse). Look in the docs area at the Jacob usage document for command line - * options. - *

- * This relies on BaseTestCase to provide the root path to the file under test - */ -public class SafeArrayViaExcel extends BaseTestCase { - - /** - * verify safe arrays work with standard applications, Excel in this case - */ - public void testSafeArrayViaExcel() { - - ActiveXComponent xl = new ActiveXComponent("Excel.Application"); - try { - Dispatch cell; - SafeArray sAProdText; - Dispatch workbooks = xl.getProperty("Workbooks").toDispatch(); - System.out.println("have workbooks"); - Dispatch workbook = Dispatch.call( - workbooks, - "Open", - getWindowsFilePathToPackageResource( - "SafeArrayViaExcel.xls", this.getClass())) - .toDispatch(); - System.out.println("Opened File - SafeArrayViaExcel.xls\n"); - Dispatch sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch(); - cell = Dispatch.invoke(sheet, "Range", Dispatch.Get, - new Object[] { "A1:D1000" }, new int[1]).toDispatch(); - System.out.println("have cell:" + cell); - sAProdText = Dispatch.get(cell, "Value").toSafeArray(); - System.out.println("sa: dim=" + sAProdText.getNumDim()); - System.out.println("sa: start row=" + sAProdText.getLBound(1)); - System.out.println("sa: start col=" + sAProdText.getLBound(2)); - System.out.println("sa: end row=" + sAProdText.getUBound(1)); - System.out.println("sa: end col=" + sAProdText.getUBound(2)); - int i; - int lineNumber = 1; - int n = 0; - for (lineNumber = 1; lineNumber < 1000; lineNumber++) { - for (i = 1; i < 4; i++) { - System.out.println((n++) + " " + lineNumber + " " + i + " " - + sAProdText.getString(lineNumber, i)); - /* - * if (sAProdText.getString(lineNumber,i).compareTo("aaaa") != - * 0 ) { System.out.println("Invalid String in line " + - * lineNumber + " Cell " + i + " Value = " + - * sAProdText.getString(lineNumber,i)); stringFound = false; } } - * if (stringFound) { System.out.println("Valid Strings in - * line " + lineNumber); lineNumber++; } - */ - } - } - - Dispatch.call(workbook, "Close"); - System.out.println("Closed File\n"); - } catch (Exception e) { - e.printStackTrace(); - fail("Caught Exception " + e); - } finally { - xl.invoke("Quit", new Variant[] {}); - } - } -} From ad90fd3343964429ec55a4a6e2cc8318e0444839 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:37:34 -0300 Subject: [PATCH 23/29] switching to manual test --- .../SafeArrayViaExcelManualTest.java | 75 +++++++++++++++++++ ...{ScriptTest.java => ScriptManualTest.java} | 3 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 unittest/com/jacob/test/safearray/SafeArrayViaExcelManualTest.java rename unittest/com/jacob/test/vbscript/{ScriptTest.java => ScriptManualTest.java} (94%) diff --git a/unittest/com/jacob/test/safearray/SafeArrayViaExcelManualTest.java b/unittest/com/jacob/test/safearray/SafeArrayViaExcelManualTest.java new file mode 100644 index 0000000..3b124be --- /dev/null +++ b/unittest/com/jacob/test/safearray/SafeArrayViaExcelManualTest.java @@ -0,0 +1,75 @@ +package com.jacob.test.safearray; + +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.Dispatch; +import com.jacob.com.SafeArray; +import com.jacob.com.Variant; +import com.jacob.test.BaseTestCase; + +/** + * This does simple tests with SafeArray using Excel as a source + *

+ * May need to run with some command line options (including from inside + * Eclipse). Look in the docs area at the Jacob usage document for command line + * options. + *

+ * This relies on BaseTestCase to provide the root path to the file under test + */ +public class SafeArrayViaExcelManualTest extends BaseTestCase { + + /** + * verify safe arrays work with standard applications, Excel in this case + */ + public void testSafeArrayViaExcel() { + + ActiveXComponent xl = new ActiveXComponent("Excel.Application"); + try { + Dispatch cell; + SafeArray sAProdText; + Dispatch workbooks = xl.getProperty("Workbooks").toDispatch(); + System.out.println("have workbooks"); + Dispatch workbook = Dispatch.call( + workbooks, + "Open", + getWindowsFilePathToPackageResource( + "SafeArrayViaExcel.xls", this.getClass())) + .toDispatch(); + System.out.println("Opened File - SafeArrayViaExcel.xls\n"); + Dispatch sheet = Dispatch.get(workbook, "ActiveSheet").toDispatch(); + cell = Dispatch.invoke(sheet, "Range", Dispatch.Get, + new Object[] { "A1:D1000" }, new int[1]).toDispatch(); + System.out.println("have cell:" + cell); + sAProdText = Dispatch.get(cell, "Value").toSafeArray(); + System.out.println("sa: dim=" + sAProdText.getNumDim()); + System.out.println("sa: start row=" + sAProdText.getLBound(1)); + System.out.println("sa: start col=" + sAProdText.getLBound(2)); + System.out.println("sa: end row=" + sAProdText.getUBound(1)); + System.out.println("sa: end col=" + sAProdText.getUBound(2)); + int i; + int lineNumber = 1; + int n = 0; + for (lineNumber = 1; lineNumber < 1000; lineNumber++) { + for (i = 1; i < 4; i++) { + System.out.println((n++) + " " + lineNumber + " " + i + " " + + sAProdText.getString(lineNumber, i)); + /* + * if (sAProdText.getString(lineNumber,i).compareTo("aaaa") != + * 0 ) { System.out.println("Invalid String in line " + + * lineNumber + " Cell " + i + " Value = " + + * sAProdText.getString(lineNumber,i)); stringFound = false; } } + * if (stringFound) { System.out.println("Valid Strings in + * line " + lineNumber); lineNumber++; } + */ + } + } + + Dispatch.call(workbook, "Close"); + System.out.println("Closed File\n"); + } catch (Exception e) { + e.printStackTrace(); + fail("Caught Exception " + e); + } finally { + xl.invoke("Quit", new Variant[] {}); + } + } +} diff --git a/unittest/com/jacob/test/vbscript/ScriptTest.java b/unittest/com/jacob/test/vbscript/ScriptManualTest.java similarity index 94% rename from unittest/com/jacob/test/vbscript/ScriptTest.java rename to unittest/com/jacob/test/vbscript/ScriptManualTest.java index 755f8d4..c3f6704 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest.java +++ b/unittest/com/jacob/test/vbscript/ScriptManualTest.java @@ -15,8 +15,9 @@ * May need to run with some command line options (including from inside * Eclipse). Look in the docs area at the Jacob usage document for command line * options. + * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ -public class ScriptTest extends BaseTestCase { +public class ScriptManualTest extends BaseTestCase { public void testStupidSpeedTest() { String lang = "VBScript"; From c23b7e6ba78eee43e5ce855c19275a5e5bf885cc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:39:42 -0300 Subject: [PATCH 24/29] switching to manual test --- .../{ScriptTest2.java => ScriptTest2ManualTest.java} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename unittest/com/jacob/test/vbscript/{ScriptTest2.java => ScriptTest2ManualTest.java} (96%) diff --git a/unittest/com/jacob/test/vbscript/ScriptTest2.java b/unittest/com/jacob/test/vbscript/ScriptTest2ManualTest.java similarity index 96% rename from unittest/com/jacob/test/vbscript/ScriptTest2.java rename to unittest/com/jacob/test/vbscript/ScriptTest2ManualTest.java index 0fe91ea..e9d29c8 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest2.java +++ b/unittest/com/jacob/test/vbscript/ScriptTest2ManualTest.java @@ -30,9 +30,10 @@ * May need to run with some command line options (including from inside * Eclipse). Look in the docs area at the Jacob usage document for command line * options. + * + * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ - -public class ScriptTest2 extends BaseTestCase { +public class ScriptTest2ManualTest extends BaseTestCase { public void testScript2() { try { ComThread.InitSTA(); From 2c257a316a099affcf028bdd948f254cd340cc27 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:41:10 -0300 Subject: [PATCH 25/29] switching to manual test --- ...ptTest2ActiveX.java => ScriptTest2ActiveXManualTest.java} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename unittest/com/jacob/test/vbscript/{ScriptTest2ActiveX.java => ScriptTest2ActiveXManualTest.java} (95%) diff --git a/unittest/com/jacob/test/vbscript/ScriptTest2ActiveX.java b/unittest/com/jacob/test/vbscript/ScriptTest2ActiveXManualTest.java similarity index 95% rename from unittest/com/jacob/test/vbscript/ScriptTest2ActiveX.java rename to unittest/com/jacob/test/vbscript/ScriptTest2ActiveXManualTest.java index 58c7898..cb3e2b4 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest2ActiveX.java +++ b/unittest/com/jacob/test/vbscript/ScriptTest2ActiveXManualTest.java @@ -29,8 +29,9 @@ * May need to run with some command line options (including from inside * Eclipse). Look in the docs area at the Jacob usage document for command line * options. + * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ -public class ScriptTest2ActiveX extends BaseTestCase { +public class ScriptTest2ActiveXManualTest extends BaseTestCase { public static ActiveXComponent sC; public static DispatchEvents de = null; @@ -100,4 +101,4 @@ public void OnQuit() { } -} \ No newline at end of file +} From b3f326093d029b987db1181902d4e4ba79f17f22 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:42:20 -0300 Subject: [PATCH 26/29] switching to manual test --- unittest/com/jacob/test/vbscript/ScriptTest3.java | 1 + 1 file changed, 1 insertion(+) diff --git a/unittest/com/jacob/test/vbscript/ScriptTest3.java b/unittest/com/jacob/test/vbscript/ScriptTest3.java index 2745ec6..d74e695 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest3.java +++ b/unittest/com/jacob/test/vbscript/ScriptTest3.java @@ -17,6 +17,7 @@ * May need to run with some command line options (including from inside * Eclipse). Look in the docs area at the Jacob usage document for command line * options. + * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ public class ScriptTest3 extends BaseTestCase { From e1e44d5099a1ae5e1e7c723badd7d529688e90e9 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:42:45 -0300 Subject: [PATCH 27/29] switching to manual test --- .../vbscript/{ScriptTest3.java => ScriptTest3ManualTest.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename unittest/com/jacob/test/vbscript/{ScriptTest3.java => ScriptTest3ManualTest.java} (95%) diff --git a/unittest/com/jacob/test/vbscript/ScriptTest3.java b/unittest/com/jacob/test/vbscript/ScriptTest3ManualTest.java similarity index 95% rename from unittest/com/jacob/test/vbscript/ScriptTest3.java rename to unittest/com/jacob/test/vbscript/ScriptTest3ManualTest.java index d74e695..1ee398c 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest3.java +++ b/unittest/com/jacob/test/vbscript/ScriptTest3ManualTest.java @@ -19,7 +19,7 @@ * options. * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ -public class ScriptTest3 extends BaseTestCase { +public class ScriptTest3ManualTest extends BaseTestCase { public static ActiveXComponent sC; @@ -45,7 +45,7 @@ public void testScript() { System.out.println("eval(" + getSampleVPScriptForEval() + ") = " + result); System.out.println("setting quit"); - ScriptTest3.quit = true; + ScriptTest3ManualTest.quit = true; } catch (ComException e) { e.printStackTrace(); fail("Caught excpetion running script with MTA"); From ffe9edacff4d1b81a1263d33bb37e1d215b49823 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:43:59 -0300 Subject: [PATCH 28/29] switching to manual test --- ...ptTest3ActiveX.java => ScriptTest3ActiveXManualTest.java} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename unittest/com/jacob/test/vbscript/{ScriptTest3ActiveX.java => ScriptTest3ActiveXManualTest.java} (91%) diff --git a/unittest/com/jacob/test/vbscript/ScriptTest3ActiveX.java b/unittest/com/jacob/test/vbscript/ScriptTest3ActiveXManualTest.java similarity index 91% rename from unittest/com/jacob/test/vbscript/ScriptTest3ActiveX.java rename to unittest/com/jacob/test/vbscript/ScriptTest3ActiveXManualTest.java index e75b268..3f0c3d6 100644 --- a/unittest/com/jacob/test/vbscript/ScriptTest3ActiveX.java +++ b/unittest/com/jacob/test/vbscript/ScriptTest3ActiveXManualTest.java @@ -16,8 +16,9 @@ * May need to run with some command line options (including from inside * Eclipse). Look in the docs area at the Jacob usage document for command line * options. + * fixme disabled see com.jacob.test.safearray.SafeArrayDispatchManualTest */ -public class ScriptTest3ActiveX extends BaseTestCase { +public class ScriptTest3ActiveXManualTest extends BaseTestCase { public static ActiveXComponent sC; public static DispatchEvents de = null; @@ -39,7 +40,7 @@ public void testYetAnotherScriptTest() { System.out.println("eval(" + getSampleVPScriptForEval() + ") = " + result); System.out.println("setting quit"); - ScriptTest3ActiveX.quit = true; + ScriptTest3ActiveXManualTest.quit = true; } catch (ComException e) { e.printStackTrace(); fail("Caught ComException " + e); From 8c5fd594a3a0146c22143e167f9c72bb2a0ec992 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Mar 2023 01:45:22 -0300 Subject: [PATCH 29/29] changed dep to test --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8861871..c454312 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ processResources { } dependencies { - implementation fileTree("${projectDir}/lib") + testImplementation fileTree("${projectDir}/lib") } compileJava {