summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2015-12-15 14:44:44 +0100
committerStephan Bergmann <sbergman@redhat.com>2015-12-22 14:40:26 +0000
commitbb6939cc689a44c1039508935312df98e12f4081 (patch)
tree4886b247bff6f4a40f14fc0d1ecd79488e8a1e02
parent01ef568cbc3f33092c1ed3f04afced7cb85badf3 (diff)
tdf#86784: Pass custom options to Java bootstrap
Reviewed-on: https://gerrit.libreoffice.org/20720 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com> (cherry picked from commit 02002f83f156117cf178532d48abaa9319ee8cb4) Change-Id: I9e9c78387627e173dea8062e4a3f16bc396e8115 Reviewed-on: https://gerrit.libreoffice.org/20802 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r--javaunohelper/com/sun/star/comp/helper/Bootstrap.java58
1 files changed, 51 insertions, 7 deletions
diff --git a/javaunohelper/com/sun/star/comp/helper/Bootstrap.java b/javaunohelper/com/sun/star/comp/helper/Bootstrap.java
index 537959b98e24..ba06ea944ca0 100644
--- a/javaunohelper/com/sun/star/comp/helper/Bootstrap.java
+++ b/javaunohelper/com/sun/star/comp/helper/Bootstrap.java
@@ -91,6 +91,34 @@ public class Bootstrap {
}
/**
+ * Returns an array of default commandline options to start bootstrapped
+ * instance of soffice with. You may use it in connection with bootstrap
+ * method for example like this:
+ * <pre>
+ * List list = Arrays.asList( Bootstrap.getDefaultOptions() );
+ * list.remove("--nologo");
+ * list.remove("--nodefault");
+ * list.add("--invisible");
+ *
+ * Bootstrap.bootstrap( list.toArray( new String[list.size()] );
+ * </pre>
+ *
+ * @return an array of default commandline options
+ * @see #bootstrap( String[] )
+ * @since LibreOffice 5.1
+ */
+ public static final String[] getDefaultOptions()
+ {
+ return new String[]
+ {
+ "--nologo",
+ "--nodefault",
+ "--norestore",
+ "--nolockcheck"
+ };
+ }
+
+ /**
* backwards compatibility stub.
*/
static public XComponentContext createInitialComponentContext( Hashtable<String, Object> context_entries )
@@ -247,6 +275,24 @@ public class Bootstrap {
public static final XComponentContext bootstrap()
throws BootstrapException {
+ String[] defaultArgArray = getDefaultOptions();
+ return bootstrap( defaultArgArray );
+ }
+
+ /**
+ * Bootstraps the component context from a UNO installation.
+ *
+ * @param argArray
+ * an array of strings - commandline options to start instance of
+ * soffice with
+ * @see #getDefaultOptions()
+ * @return a bootstrapped component context.
+ *
+ * @since LibreOffice 5.1
+ */
+ public static final XComponentContext bootstrap( String[] argArray )
+ throws BootstrapException {
+
XComponentContext xContext = null;
try {
@@ -270,13 +316,11 @@ public class Bootstrap {
Long.toString( (new Random()).nextLong() & 0x7fffffffffffffffL );
// create call with arguments
- String[] cmdArray = new String[] {
- fOffice.getPath(),
- "--nologo",
- "--nodefault",
- "--norestore",
- "--nolockcheck",
- "--accept=pipe,name=" + sPipeName + ";urp;" };
+ String[] cmdArray = new String[ argArray.length + 2 ];
+ cmdArray[0] = fOffice.getPath();
+ cmdArray[1] = ( "--accept=pipe,name=" + sPipeName + ";urp;" );
+
+ System.arraycopy( argArray, 0, cmdArray, 2, argArray.length );
// start office process
Process p = Runtime.getRuntime().exec( cmdArray );