summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2015-12-15 14:44:44 +0100
committerNoel Grandin <noelgrandin@gmail.com>2015-12-18 13:24:13 +0000
commit02002f83f156117cf178532d48abaa9319ee8cb4 (patch)
tree6a51456f17ec3fc032bae6034a67eaa6341a2b24
parentbcf7ab3e13ac276ef42fa96af0755795c5f88c4a (diff)
tdf#86784: Pass custom options to Java bootstrap
Change-Id: I9e9c78387627e173dea8062e4a3f16bc396e8115 Reviewed-on: https://gerrit.libreoffice.org/20720 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.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 a36f16c9b25d..0b99ccecbcaa 100644
--- a/javaunohelper/com/sun/star/comp/helper/Bootstrap.java
+++ b/javaunohelper/com/sun/star/comp/helper/Bootstrap.java
@@ -92,6 +92,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 UDK 5.2.0
+ */
+ public static final String[] getDefaultOptions()
+ {
+ return new String[]
+ {
+ "--nologo",
+ "--nodefault",
+ "--norestore",
+ "--nolockcheck"
+ };
+ }
+
+ /**
* backwards compatibility stub.
*/
public static XComponentContext createInitialComponentContext( Hashtable<String, Object> context_entries )
@@ -248,6 +276,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 UDK 5.2.0
+ */
+ public static final XComponentContext bootstrap( String[] argArray )
+ throws BootstrapException {
+
XComponentContext xContext = null;
try {
@@ -271,13 +317,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 );