[SCM] LibreOffice packaging repository branch, master, updated. libreoffice_3.3.3-1-12-g705eb73
The following commit has been merged in the master branch:
commit 4657b8cfcbc52853cc65a8cfab7705168d1a6115
Author: Rene Engelhard <rene@debian.org>
Date: Tue Jun 28 12:04:48 2011 +0000
add patches to disable rhino and fix bsh build with gcj/ant multiarch brokeness
diff --git a/changelog b/changelog
index 5c0ed8a..b81aeb3 100644
--- a/changelog
+++ b/changelog
@@ -1,5 +1,10 @@
libreoffice (1:3.3.3-2) UNRELEASED; urgency=low
+ * debian/patches/scripting-bsh-no-envvar.diff,
+ debian/patches/disable-rhino.diff: add hacks to fix build
+ with the still broken gcj multiarch/ant combo. Disable rhino completely
+ as we can't patch the envvar usage out in a sane way
+
* debian/rules:
- make multiarch changes conditional and skip them for squeeze
(Daniel Baumann)
@@ -12,7 +17,7 @@ libreoffice (1:3.3.3-2) UNRELEASED; urgency=low
- fix libreoffice Description: - -filter-binfilter is not installed
per default since longer (only suggested)
- -- Rene Engelhard <rene@debian.org> Mon, 27 Jun 2011 16:33:27 +0200
+ -- Rene Engelhard <rene@debian.org> Tue, 28 Jun 2011 09:49:36 +0000
libreoffice (1:3.3.3-1) unstable; urgency=medium
diff --git a/patches/bsh-hardcode-path.diff b/patches/bsh-hardcode-path.diff
new file mode 100644
index 0000000..4ee390d
--- /dev/null
+++ b/patches/bsh-hardcode-path.diff
@@ -0,0 +1,21 @@
+--- /dev/null 2011-06-27 18:29:01.643585831 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/bsh-hardcode-path.diff 2011-06-28 11:11:47.000000000 +0000
+@@ -0,0 +1,11 @@
++--- scripting/java/build.xml 2011-06-28 11:11:12.000000000 +0000
+++++ scripting/java/build.xml-old 2011-06-28 11:10:53.000000000 +0000
++@@ -52,7 +52,7 @@
++ <pathelement location="${solar.jar}/juh.jar"/>
++ <pathelement location="${solar.jar}/java_uno.jar"/>
++ <pathelement location="${solar.jar}/ridl.jar"/>
++- <pathelement location="${env.BSH_JAR}"/>
+++ <pathelement location="/usr/share/java/bsh.jar"/>
++ <pathelement location="${jardir}"/>
++ </path>
++
+--- libreoffice-3.4.0/libreoffice-build/patches/dev300/apply-old 2011-06-28 11:18:27.000000000 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/apply 2011-06-28 11:18:39.000000000 +0000
+@@ -2392,3 +2392,4 @@
+
+ [ TemporaryHacks ]
+ disable-rhino.diff
++bsh-hardcode-path.diff
diff --git a/patches/disable-rhino.diff b/patches/disable-rhino.diff
new file mode 100644
index 0000000..d585f77
--- /dev/null
+++ b/patches/disable-rhino.diff
@@ -0,0 +1,912 @@
+--- /dev/null 2011-06-27 18:29:01.643585831 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/disable-rhino.diff 2011-06-28 11:09:55.000000000 +0000
+@@ -0,0 +1,901 @@
++--- scripting/prj/build.lst-old 2011-06-27 20:07:54.000000000 +0000
+++++ scripting/prj/build.lst 2011-06-27 20:06:28.000000000 +0000
++@@ -1,4 +1,4 @@
++-tc scripting : filter oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 rhino BSH:beanshell javaunohelper NULL
+++tc scripting : filter oovbaapi vbahelper bridges rdbmaker vcl xmlscript basic sfx2 BSH:beanshell javaunohelper NULL
++ tc scripting usr1 - all tc1_mkout NULL
++ tc scripting\inc nmake - all tc1_inc NULL
++ tc scripting\source\provider nmake - all tc1_scriptingprovider tc1_inc NULL
++diff -urN scripting-old//java/build.xml scripting/java/build.xml
++--- scripting-old//java/build.xml 2011-06-28 08:26:38.000000000 +0000
+++++ scripting/java/build.xml 2011-06-28 08:30:38.000000000 +0000
++@@ -53,7 +53,6 @@
++ <pathelement location="${solar.jar}/java_uno.jar"/>
++ <pathelement location="${solar.jar}/ridl.jar"/>
++ <pathelement location="${env.BSH_JAR}"/>
++- <pathelement location="${solar.jar}/js.jar"/>
++ <pathelement location="${jardir}"/>
++ </path>
++
++@@ -184,21 +183,6 @@
++ </fileset>
++ </jar>
++
++- <jar jarfile="${jardir}/ScriptProviderForJavaScript.jar"
++- basedir="${jardir}">
++- <manifest>
++- <attribute name="Built-By" value="Sun Microsystems"/>
++- <attribute name="RegistrationClassName"
++- value="com.sun.star.script.framework.provider.javascript.ScriptProviderForJavaScript"/>
++- <attribute name="Class-Path" value="ScriptFramework.jar js.jar"/>
++- <attribute name="UNO-Type-Path" value=""/>
++- </manifest>
++- <include name="**/provider/javascript/*.class"/>
++- <fileset dir=".">
++- <include name="**/provider/javascript/*.js"/>
++- </fileset>
++- </jar>
++-
++ <jar jarfile="${jardir}/ScriptFramework.jar"
++ basedir="${jardir}">
++ <manifest>
++@@ -272,7 +256,6 @@
++ <!-- ====================== Clean Generated Files ===================== -->
++ <target name="clean">
++ <delete file="${jardir}/ScriptProviderForJava.jar"/>
++- <delete file="${jardir}/ScriptProviderForJavaScript.jar"/>
++ <delete file="${jardir}/ScriptProviderForBeanShell.jar"/>
++ <delete file="${jardir}/ScriptFramework.jar"/>
++ <delete file="${jardir}/office.jar"/>
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java 2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java 1970-01-01 00:00:00.000000000 +0000
++@@ -1,376 +0,0 @@
++-/*************************************************************************
++- *
++- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++- *
++- * Copyright 2000, 2010 Oracle and/or its affiliates.
++- *
++- * OpenOffice.org - a multi-platform office productivity suite
++- *
++- * This file is part of OpenOffice.org.
++- *
++- * OpenOffice.org is free software: you can redistribute it and/or modify
++- * it under the terms of the GNU Lesser General Public License version 3
++- * only, as published by the Free Software Foundation.
++- *
++- * OpenOffice.org is distributed in the hope that it will be useful,
++- * but WITHOUT ANY WARRANTY; without even the implied warranty of
++- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++- * GNU Lesser General Public License version 3 for more details
++- * (a copy is included in the LICENSE file that accompanied this code).
++- *
++- * You should have received a copy of the GNU Lesser General Public License
++- * version 3 along with OpenOffice.org. If not, see
++- * <http://www.openoffice.org/license.html>
++- * for a copy of the LGPLv3 License.
++- *
++- ************************************************************************/
++-
++-package com.sun.star.script.framework.provider.javascript;
++-
++-import org.mozilla.javascript.Context;
++-import org.mozilla.javascript.Scriptable;
++-import org.mozilla.javascript.ImporterTopLevel;
++-import org.mozilla.javascript.tools.debugger.Main;
++-import org.mozilla.javascript.tools.debugger.ScopeProvider;
++-
++-import com.sun.star.script.provider.XScriptContext;
++-import com.sun.star.script.framework.container.ScriptMetaData;
++-import com.sun.star.script.framework.provider.ScriptEditor;
++-import com.sun.star.script.framework.log.LogUtils;
++-
++-import java.io.InputStream;
++-import java.io.IOException;
++-import java.net.URL;
++-
++-import java.util.Map;
++-import java.util.HashMap;
++-
++-import javax.swing.SwingUtilities;
++-import java.awt.event.WindowAdapter;
++-import java.awt.event.WindowEvent;
++-
++-public class ScriptEditorForJavaScript implements ScriptEditor
++-{
++- // global ScriptEditorForJavaScript instance
++- private static ScriptEditorForJavaScript theScriptEditorForJavaScript;
++-
++- // template for JavaScript scripts
++- private static String JSTEMPLATE;
++-
++- static private Main rhinoWindow;
++- private URL scriptURL;
++- // global list of ScriptEditors, key is URL of file being edited
++- private static Map BEING_EDITED = new HashMap();
++-
++- static {
++- try {
++- URL url =
++- ScriptEditorForJavaScript.class.getResource("template.js");
++-
++- InputStream in = url.openStream();
++- StringBuffer buf = new StringBuffer();
++- byte[] b = new byte[1024];
++- int len = 0;
++-
++- while ((len = in.read(b)) != -1) {
++- buf.append(new String(b, 0, len));
++- }
++-
++- in.close();
++-
++- JSTEMPLATE = buf.toString();
++- }
++- catch (IOException ioe) {
++- JSTEMPLATE = "// JavaScript script";
++- }
++- catch (Exception e) {
++- JSTEMPLATE = "// JavaScript script";
++- }
++- }
++-
++- /**
++- * Returns the global ScriptEditorForJavaScript instance.
++- */
++- public static ScriptEditorForJavaScript getEditor()
++- {
++- if (theScriptEditorForJavaScript == null)
++- {
++- synchronized(ScriptEditorForJavaScript.class)
++- {
++- if (theScriptEditorForJavaScript == null)
++- {
++- theScriptEditorForJavaScript =
++- new ScriptEditorForJavaScript();
++- }
++- }
++- }
++- return theScriptEditorForJavaScript;
++- }
++-
++- /**
++- * Get the ScriptEditorForJavaScript instance for this URL
++- *
++- * @param url The URL of the script source file
++- *
++- * @return The ScriptEditorForJavaScript associated with
++- * the given URL if one exists, otherwise null.
++- */
++- public static ScriptEditorForJavaScript getEditor(URL url)
++- {
++- return (ScriptEditorForJavaScript)BEING_EDITED.get(url);
++- }
++-
++- /**
++- * Returns whether or not the script source being edited in this
++- * ScriptEditorForJavaScript has been modified
++- */
++- public boolean isModified()
++- {
++- return rhinoWindow.isModified( scriptURL );
++- }
++-
++- /**
++- * Returns the text being displayed in this ScriptEditorForJavaScript
++- *
++- * @return The text displayed in this ScriptEditorForJavaScript
++- */
++- public String getText()
++- {
++- return rhinoWindow.getText( scriptURL );
++- }
++-
++- /**
++- * Returns the Rhino Debugger url of this ScriptEditorForJavaScript
++- *
++- * @return The url of this ScriptEditorForJavaScript
++- */
++- public String getURL()
++- {
++- return scriptURL.toString();
++- }
++-
++- /**
++- * Returns the template text for JavaScript scripts
++- *
++- * @return The template text for JavaScript scripts
++- */
++- public String getTemplate()
++- {
++- return JSTEMPLATE;
++- }
++-
++- /**
++- * Returns the default extension for JavaScript scripts
++- *
++- * @return The default extension for JavaScript scripts
++- */
++- public String getExtension()
++- {
++- return "js";
++- }
++-
++- /**
++- * Opens an editor window for the specified ScriptMetaData.
++- * If an editor window is already open for that data it will be
++- * moved to the front.
++- *
++- * @param metadata The metadata describing the script
++- * @param context The context in which to execute the script
++- *
++- */
++- public void edit(final XScriptContext context, ScriptMetaData entry)
++- {
++- try {
++- String sUrl = entry.getParcelLocation();
++- if ( !sUrl.endsWith( "/" ) )
++- {
++- sUrl += "/";
++- }
++- sUrl += entry.getLanguageName();
++- URL url = entry.getSourceURL();
++-
++- // check if there is already an editing session for this script
++- //if (BEING_EDITED.containsKey(url))
++- if ( rhinoWindow != null )
++- {
++- ScriptEditorForJavaScript editor =
++- (ScriptEditorForJavaScript) BEING_EDITED.get(url);
++- if ( editor == null )
++- {
++- editor = new ScriptEditorForJavaScript( context, url );
++- editor.edit( context, entry );
++- }
++- else
++- {
++- rhinoWindow.showScriptWindow( url );
++- }
++- }
++- else
++- {
++- ScriptEditorForJavaScript editor =
++- new ScriptEditorForJavaScript( context, url );
++-
++- }
++- rhinoWindow.toFront();
++- }
++- catch ( IOException e )
++- {
++- LogUtils.DEBUG("Caught exception: " + e);
++- LogUtils.DEBUG(LogUtils.getTrace(e));
++- }
++- }
++-
++- // Ensures that new instances of this class can only be created using
++- // the factory methods
++- private ScriptEditorForJavaScript()
++- {
++- }
++-
++- private ScriptEditorForJavaScript(XScriptContext context, URL url)
++- {
++- initUI();
++- Scriptable scope = getScope( context );
++- this.rhinoWindow.openFile(url, scope, new closeHandler( url ) );
++-
++-
++- this.scriptURL = url;
++- synchronized( ScriptEditorForJavaScript.class )
++- {
++- BEING_EDITED.put(url, this);
++- }
++-
++- }
++-
++- /**
++- * Executes the script edited by the editor
++- *
++- */
++-
++- public Object execute() throws Exception
++- {
++- rhinoWindow.toFront();
++-
++- return this.rhinoWindow.runScriptWindow( scriptURL );
++- }
++-
++- /**
++- * Indicates the line where error occured
++- *
++- */
++- public void indicateErrorLine( int lineNum )
++- {
++- this.rhinoWindow.toFront();
++- this.rhinoWindow.highlighLineInScriptWindow( scriptURL, lineNum );
++- }
++- // This code is based on the main method of the Rhino Debugger Main class
++- // We pass in the XScriptContext in the global scope for script execution
++- private void initUI() {
++- try {
++- synchronized ( ScriptEditorForJavaScript.class )
++- {
++- if ( this.rhinoWindow != null )
++- {
++- return;
++- }
++-
++- final Main sdb = new Main("Rhino JavaScript Debugger");
++- swingInvoke(new Runnable() {
++- public void run() {
++- sdb.pack();
++- sdb.setSize(640, 640);
++- sdb.setVisible(true);
++- }
++- });
++- sdb.setExitAction(new Runnable() {
++- public void run() {
++- sdb.clearAllBreakpoints();
++- sdb.dispose();
++- shutdown();
++- }
++- });
++- Context.addContextListener(sdb);
++- sdb.setScopeProvider(new ScopeProvider() {
++- public Scriptable getScope() {
++- return org.mozilla.javascript.tools.shell.Main.getScope();
++- }
++- });
++- sdb.addWindowListener( new WindowAdapter() {
++- public void windowClosing(WindowEvent e) {
++- shutdown();
++- }
++- });
++- this.rhinoWindow = sdb;
++- }
++- } catch (Exception exc) {
++- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
++- }
++- }
++-
++- private static void swingInvoke(Runnable f) {
++- if (SwingUtilities.isEventDispatchThread()) {
++- f.run();
++- return;
++- }
++- try {
++- SwingUtilities.invokeAndWait(f);
++- } catch (Exception exc) {
++- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
++- }
++- }
++-
++- private void shutdown()
++- {
++- // dereference Rhino Debugger window
++- this.rhinoWindow = null;
++- this.scriptURL = null;
++- // remove all scripts from BEING_EDITED
++- synchronized( BEING_EDITED )
++- {
++- java.util.Iterator iter = BEING_EDITED.keySet().iterator();
++- java.util.Vector keysToRemove = new java.util.Vector();
++- while ( iter.hasNext() )
++- {
++-
++- URL key = (URL)iter.next();
++- keysToRemove.add( key );
++- }
++- for ( int i=0; i<keysToRemove.size(); i++ )
++- {
++- BEING_EDITED.remove( keysToRemove.elementAt( i ) );
++- }
++- keysToRemove = null;
++- }
++-
++- }
++- private Scriptable getScope(XScriptContext xsctxt )
++- {
++- Context ctxt = Context.enter();
++- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
++-
++- Scriptable jsCtxt = Context.toObject(xsctxt, scope);
++- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
++-
++- Scriptable jsArgs = Context.toObject(
++- new Object[0], scope);
++- scope.put("ARGUMENTS", scope, jsArgs);
++-
++- Context.exit();
++- return scope;
++- }
++-
++- class closeHandler implements Runnable
++- {
++- URL url;
++- closeHandler( URL url )
++- {
++- this.url = url;
++- }
++- public void run()
++- {
++- synchronized( BEING_EDITED )
++- {
++- Object o = BEING_EDITED.remove( this.url );
++- }
++- }
++- }
++-}
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java 2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java 1970-01-01 00:00:00.000000000 +0000
++@@ -1,392 +0,0 @@
++-/*************************************************************************
++-*
++- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++- *
++- * Copyright 2000, 2010 Oracle and/or its affiliates.
++- *
++- * OpenOffice.org - a multi-platform office productivity suite
++- *
++- * This file is part of OpenOffice.org.
++- *
++- * OpenOffice.org is free software: you can redistribute it and/or modify
++- * it under the terms of the GNU Lesser General Public License version 3
++- * only, as published by the Free Software Foundation.
++- *
++- * OpenOffice.org is distributed in the hope that it will be useful,
++- * but WITHOUT ANY WARRANTY; without even the implied warranty of
++- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++- * GNU Lesser General Public License version 3 for more details
++- * (a copy is included in the LICENSE file that accompanied this code).
++- *
++- * You should have received a copy of the GNU Lesser General Public License
++- * version 3 along with OpenOffice.org. If not, see
++- * <http://www.openoffice.org/license.html>
++- * for a copy of the LGPLv3 License.
++- *
++-************************************************************************/
++-package com.sun.star.script.framework.provider.javascript;
++-
++-import com.sun.star.uno.XComponentContext;
++-import com.sun.star.lang.XMultiComponentFactory;
++-import com.sun.star.lang.XMultiServiceFactory;
++-import com.sun.star.lang.XSingleServiceFactory;
++-import com.sun.star.frame.XModel;
++-import com.sun.star.registry.XRegistryKey;
++-import com.sun.star.comp.loader.FactoryHelper;
++-
++-import com.sun.star.document.XScriptInvocationContext;
++-import com.sun.star.reflection.InvocationTargetException;
++-
++-import java.net.URL;
++-
++-import com.sun.star.script.provider.XScript;
++-
++-import com.sun.star.script.provider.ScriptExceptionRaisedException;
++-import com.sun.star.script.provider.ScriptFrameworkErrorException;
++-import com.sun.star.script.provider.ScriptFrameworkErrorType;
++-
++-import com.sun.star.script.framework.log.LogUtils;
++-import com.sun.star.script.framework.provider.ScriptContext;
++-import com.sun.star.script.framework.provider.ClassLoaderFactory;
++-import com.sun.star.script.framework.provider.ScriptProvider;
++-import com.sun.star.script.framework.provider.ScriptEditor;
++-import com.sun.star.script.framework.container.ScriptMetaData;
++-
++-import org.mozilla.javascript.Context;
++-import org.mozilla.javascript.ImporterTopLevel;
++-import org.mozilla.javascript.Scriptable;
++-import org.mozilla.javascript.JavaScriptException;
++-
++-public class ScriptProviderForJavaScript
++-{
++- public static class _ScriptProviderForJavaScript extends ScriptProvider
++- {
++- public _ScriptProviderForJavaScript(XComponentContext ctx)
++- {
++- super(ctx, "JavaScript");
++- }
++-
++- public XScript getScript( /*IN*/String scriptURI )
++- throws com.sun.star.uno.RuntimeException,
++- ScriptFrameworkErrorException
++- {
++- ScriptMetaData scriptData = null;
++- try
++- {
++- scriptData = getScriptData( scriptURI );
++- ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel, m_xInvocContext );
++- return script;
++- }
++- catch ( com.sun.star.uno.RuntimeException re )
++- {
++- throw new ScriptFrameworkErrorException( "Failed to create script object: " + re.getMessage(),
++- null, scriptData.getLanguageName(), language, ScriptFrameworkErrorType.UNKNOWN );
++- }
++- }
++-
++- public boolean hasScriptEditor()
++- {
++- return true;
++- }
++-
++- public ScriptEditor getScriptEditor()
++- {
++- return ScriptEditorForJavaScript.getEditor();
++- }
++- }
++-
++- /**
++- * Returns a factory for creating the service.
++- * This method is called by the <code>JavaLoader</code>
++- * <p>
++- *
++- * @param implName the name of the implementation for which a service is desired
++- * @param multiFactory the service manager to be used if needed
++- * @param regKey the registryKey
++- * @return returns a <code>XSingleServiceFactory</code> for creating
++- * the component
++- * @see com.sun.star.comp.loader.JavaLoader
++- */
++- public static XSingleServiceFactory __getServiceFactory( String implName,
++- XMultiServiceFactory multiFactory,
++- XRegistryKey regKey )
++- {
++- XSingleServiceFactory xSingleServiceFactory = null;
++-
++- if ( implName.equals( ScriptProviderForJavaScript._ScriptProviderForJavaScript.class.getName() ) )
++- {
++- xSingleServiceFactory = FactoryHelper.getServiceFactory(
++- ScriptProviderForJavaScript._ScriptProviderForJavaScript.class,
++- "com.sun.star.script.provider.ScriptProviderForJavaScript",
++- multiFactory,
++- regKey );
++- }
++-
++- return xSingleServiceFactory;
++- }
++-
++-
++- /**
++- * Writes the service information into the given registry key.
++- * This method is called by the <code>JavaLoader</code>
++- * <p>
++- *
++- * @param regKey the registryKey
++- * @return returns true if the operation succeeded
++- * @see com.sun.star.comp.loader.JavaLoader
++- */
++- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
++- {
++- String impl = "com.sun.star.script.framework.provider.javascript." +
++- "ScriptProviderForJavaScript$_ScriptProviderForJavaScript";
++-
++- String service1 = "com.sun.star.script.provider." +
++- "ScriptProvider";
++- String service2 = "com.sun.star.script.provider." +
++- "LanguageScriptProvider";
++- String service3 = "com.sun.star.script.provider." +
++- "ScriptProviderForJavaScript";
++- String service4 = "com.sun.star.script.browse." +
++- "BrowseNode";
++-
++- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
++- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
++- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
++- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
++- {
++- return true;
++- }
++- return false;
++- }
++-}
++-class ScriptImpl implements XScript
++-{
++- private ScriptMetaData metaData;
++- private XComponentContext m_xContext;
++- private XMultiComponentFactory m_xMultiComponentFactory;
++- private XModel m_xModel;
++- private XScriptInvocationContext m_xInvocContext;
++-
++- ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel, XScriptInvocationContext xInvocContext ) throws com.sun.star.uno.RuntimeException
++- {
++- this.metaData = metaData;
++- this.m_xContext = ctx;
++- this.m_xModel = xModel;
++- this.m_xInvocContext = xInvocContext;
++- try
++- {
++- this.m_xMultiComponentFactory = m_xContext.getServiceManager();
++- }
++- catch ( Exception e )
++- {
++- LogUtils.DEBUG( LogUtils.getTrace( e ) );
++- throw new com.sun.star.uno.RuntimeException(
++- "Error constructing ScriptImpl: [javascript]");
++- }
++- LogUtils.DEBUG("ScriptImpl [javascript] script data = " + metaData );
++- }
++-
++- /**
++- * The invoke method of the ScriptProviderForJavaScript runs the
++- * JavaScript script specified in the URI
++- *
++- *
++- *
++- * @param aParams All parameters; pure, out params are
++- * undefined in sequence, i.e., the value
++- * has to be ignored by the callee
++- *
++- * @param aOutParamIndex Out indices
++- *
++- * @param aOutParam Out parameters
++- *
++- * @returns The value returned from the function
++- * being invoked
++- *
++- * @throws ScriptFrameworkErrorException If there is no matching script name
++- *
++- *
++- * @throws InvocationTargetException If the running script throws
++- * an exception this information
++- * is captured and rethrown as
++- * ScriptErrorRaisedException or
++- * ScriptExceptionRaisedException
++- */
++-
++- public Object invoke(
++- /*IN*/Object[] params,
++- /*OUT*/short[][] aOutParamIndex,
++- /*OUT*/Object[][] aOutParam )
++-
++- throws ScriptFrameworkErrorException, InvocationTargetException
++- {
++- // Initialise the out paramters - not used at the moment
++- aOutParamIndex[0] = new short[0];
++- aOutParam[0] = new Object[0];
++-
++-
++-
++- ClassLoader cl = null;
++- URL sourceUrl = null;
++- try {
++- cl = ClassLoaderFactory.getURLClassLoader( metaData );
++- sourceUrl = metaData.getSourceURL();
++- }
++- catch ( java.net.MalformedURLException mfu )
++- {
++- throw new ScriptFrameworkErrorException(
++- mfu.getMessage(), null,
++- metaData.getLanguageName(), metaData.getLanguage(),
++- ScriptFrameworkErrorType.MALFORMED_URL );
++- }
++- catch ( com.sun.star.script.framework.provider.NoSuitableClassLoaderException nsc )
++- {
++- // Framework error
++- throw new ScriptFrameworkErrorException(
++- nsc.getMessage(), null,
++- metaData.getLanguageName(), metaData.getLanguage(),
++- ScriptFrameworkErrorType.UNKNOWN );
++- }
++- Context ctxt = null;
++-
++- try
++- {
++- String editorURL = sourceUrl.toString();
++- Object result = null;
++- String source = null;
++- ScriptEditorForJavaScript editor =
++- ScriptEditorForJavaScript.getEditor(
++- metaData.getSourceURL() );
++-
++- if (editor != null)
++- {
++- editorURL = editor.getURL();
++- result = editor.execute();
++- if ( result != null &&
++- result.getClass().getName().equals( "org.mozilla.javascript.Undefined" ) )
++- {
++- // Always return a string
++- // TODO revisit
++- return Context.toString( result );
++- }
++-
++- }
++-
++- if (editor != null && editor.isModified() == true)
++- {
++- LogUtils.DEBUG("GOT A MODIFIED SOURCE");
++- source = editor.getText();
++- }
++- else
++- {
++- metaData.loadSource();
++- source = metaData.getSource();
++-
++- }
++-
++- if ( source == null || source.length() == 0 ) {
++- throw new ScriptFrameworkErrorException(
++- "Failed to read source data for script", null,
++- metaData.getLanguageName(), metaData.getLanguage(),
++- ScriptFrameworkErrorType.UNKNOWN );
++- }
++-
++- /* Set the context ClassLoader on the current thread to
++- be our custom ClassLoader. This is the suggested method
++- for setting up a ClassLoader to be used by the Rhino
++- interpreter
++- */
++- if (cl != null) {
++- Thread.currentThread().setContextClassLoader(cl);
++- }
++-
++- // Initialize a Rhino Context object
++- ctxt = Context.enter();
++-
++- /* The ImporterTopLevel ensures that importClass and
++- importPackage statements work in Javascript scripts
++- Make the XScriptContext available as a global variable
++- to the script
++- */
++- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
++-
++- Scriptable jsCtxt = Context.toObject(
++- ScriptContext.createContext(
++- m_xModel, m_xInvocContext, m_xContext,
++- m_xMultiComponentFactory), scope);
++- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
++-
++- Scriptable jsArgs = Context.toObject(params, scope);
++- scope.put("ARGUMENTS", scope, jsArgs);
++-
++- result = ctxt.evaluateString(scope,
++- source, "<stdin>", 1, null);
++- result = ctxt.toString(result);
++- return result;
++- }
++- catch (JavaScriptException jse) {
++- LogUtils.DEBUG( "Caught JavaScriptException exception for JavaScript type = " + jse.getClass() );
++- String message = jse.getMessage();
++- //int lineNo = jse.getLineNumber();
++- Object wrap = jse.getValue();
++- LogUtils.DEBUG( "\t message " + message );
++- LogUtils.DEBUG( "\t wrapped type " + wrap.getClass() );
++- LogUtils.DEBUG( "\t wrapped toString " + wrap.toString() );
++- ScriptExceptionRaisedException se = new
++- ScriptExceptionRaisedException( message );
++- se.lineNum = -1;
++- se.language = "JavaScript";
++- se.scriptName = metaData.getLanguageName();
++- se.exceptionType = wrap.getClass().getName();
++- se.language = metaData.getLanguage();
++- LogUtils.DEBUG( "ExceptionRaised exception " );
++- LogUtils.DEBUG( "\t message " + se.getMessage() );
++- LogUtils.DEBUG( "\t lineNum " + se.lineNum );
++- LogUtils.DEBUG( "\t language " + se.language );
++- LogUtils.DEBUG( "\t scriptName " + se.scriptName );
++- raiseEditor( se.lineNum );
++- throw new InvocationTargetException( "JavaScript uncaught exception" + metaData.getLanguageName(), null, se );
++- }
++- catch (Exception ex) {
++- LogUtils.DEBUG("Caught Exception " + ex );
++- LogUtils.DEBUG("rethrowing as ScriptFramework error" );
++- throw new ScriptFrameworkErrorException(
++- ex.getMessage(), null,
++- metaData.getLanguageName(), metaData.getLanguage(),
++- ScriptFrameworkErrorType.UNKNOWN );
++- }
++- finally {
++- if ( ctxt != null )
++- {
++- Context.exit();
++- }
++- }
++- }
++-
++- private void raiseEditor( int lineNum )
++- {
++- ScriptEditorForJavaScript editor = null;
++- try
++- {
++- URL sourceUrl = metaData.getSourceURL();
++- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
++- if ( editor == null )
++- {
++- editor = ScriptEditorForJavaScript.getEditor();
++- editor.edit(
++- ScriptContext.createContext(m_xModel, m_xInvocContext,
++- m_xContext, m_xMultiComponentFactory), metaData );
++- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
++- }
++- if ( editor != null )
++- {
++- System.out.println("** Have raised IDE for JavaScript, calling indicateErrorLine for line " + lineNum );
++- editor.indicateErrorLine( lineNum );
++- }
++- }
++- catch( Exception ignore )
++- {
++- }
++- }
++-}
++-
++diff -urN scripting-old//java/com/sun/star/script/framework/provider/javascript/template.js scripting/java/com/sun/star/script/framework/provider/javascript/template.js
++--- scripting-old//java/com/sun/star/script/framework/provider/javascript/template.js 2011-06-28 08:26:37.000000000 +0000
+++++ scripting/java/com/sun/star/script/framework/provider/javascript/template.js 1970-01-01 00:00:00.000000000 +0000
++@@ -1,37 +0,0 @@
++-// Hello World in JavaScript
++-// Import standard OpenOffice.org API classes. For more information on
++-// these classes and the OpenOffice.org API, see the OpenOffice.org
++-// Developers Guide at:
++-// http://api.openoffice.org/
++-
++-importClass(Packages.com.sun.star.uno.UnoRuntime);
++-importClass(Packages.com.sun.star.text.XTextDocument);
++-importClass(Packages.com.sun.star.text.XText);
++-importClass(Packages.com.sun.star.text.XTextRange);
++-importClass(Packages.com.sun.star.frame.XModel);
++-
++-// Import XScriptContext class. An instance of this class is available
++-// to all JavaScript scripts in the global variable "XSCRIPTCONTEXT". This
++-// variable can be used to access the document for which this script
++-// was invoked.
++-//
++-// Methods available are:
++-//
++-// XSCRIPTCONTEXT.getDocument() returns XModel
++-// XSCRIPTCONTEXT.getInvocationContext() returns XScriptInvocationContext or NULL
++-// XSCRIPTCONTEXT.getDesktop() returns XDesktop
++-// XSCRIPTCONTEXT.getComponentContext() returns XComponentContext
++-//
++-// For more information on using this class see the scripting
++-// developer guides at:
++-//
++-// http://api.openoffice.org/docs/DevelopersGuide/ScriptingFramework/ScriptingFramework.xhtml
++-//
++-
++-oDoc = UnoRuntime.queryInterface(XModel,XSCRIPTCONTEXT.getInvocationContext());
++-if ( !oDoc )
++- oDoc = XSCRIPTCONTEXT.getDocument();
++-xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
++-xText = xTextDoc.getText();
++-xTextRange = xText.getEnd();
++-xTextRange.setString( "Hello World (in JavaScript)" );
++diff -urN scp2-old//source/ooo/file_ooo.scp scp2/source/ooo/file_ooo.scp
++--- scp2-old//source/ooo/file_ooo.scp 2011-06-28 08:32:41.000000000 +0000
+++++ scp2/source/ooo/file_ooo.scp 2011-06-28 08:33:19.000000000 +0000
++@@ -453,10 +453,6 @@
++ #endif
++
++ #ifdef SOLAR_JAVA
++-STD_JAR_FILE( gid_File_Jar_Js, js )
++-#endif
++-
++-#ifdef SOLAR_JAVA
++
++ #ifndef MACOSX
++
++@@ -503,7 +499,6 @@
++ UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
++ UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
++ UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
++-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
++ #endif
++
++ #ifdef SOLAR_JAVA
++@@ -1261,12 +1256,6 @@
++ End
++ #endif
++
++-File gid_File_Scripts_Javascript
++- Dir = gid_Dir_Share_Scripts;
++- ARCHIVE_TXT_FILE_BODY;
++- Name = "ScriptsJavaScript.zip";
++-End
++-
++ // new user interface configuration files
++ File gid_File_Share_Config_Sofficecfg_uiconfig_Zip
++ TXT_FILE_BODY;
+--- libreoffice-3.4.0/libreoffice-build/patches/dev300/apply-old 2011-06-28 11:17:59.000000000 +0000
++++ libreoffice-3.4.0/libreoffice-build/patches/dev300/apply 2011-06-28 11:18:15.000000000 +0000
+@@ -2390,3 +2390,5 @@
+ [ Gcc46 ]
+ gcc4.6.0.diff
+
++[ TemporaryHacks ]
++disable-rhino.diff
diff --git a/patches/series b/patches/series
index 8d8e176..efd170b 100644
--- a/patches/series
+++ b/patches/series
@@ -12,3 +12,5 @@ gcc4.6.0.diff
odk-jni-include.diff
disable-optional-outplace-ole.diff
jurt-soffice-location.diff
+disable-rhino.diff
+bsh-hardcode-path.diff
--
LibreOffice packaging repository
Reply to: