diff options
Diffstat (limited to 'ure')
32 files changed, 2865 insertions, 0 deletions
diff --git a/ure/prj/build.lst b/ure/prj/build.lst new file mode 100644 index 000000000000..7618bf3299b7 --- /dev/null +++ b/ure/prj/build.lst @@ -0,0 +1,2 @@ +ur ure : LIBXSLT:libxslt binaryurp cli_ure io javaunohelper remotebridges solenv stoc NULL +ur ure\source nmake - all ur_source NULL diff --git a/ure/prj/d.lst b/ure/prj/d.lst new file mode 100644 index 000000000000..22cfb161c19a --- /dev/null +++ b/ure/prj/d.lst @@ -0,0 +1,11 @@ +mkdir: %_DEST%\bin%_EXT%\ure +mkdir: %_DEST%\xml%_EXT%\ure +..\%__SRC%\bin\uretest.zip %COMMON_DEST%\bin%_EXT%\uretest.zip +..\%__SRC%\misc\services.rdb %_DEST%\xml%_EXT%\ure\services.rdb +..\source\README %_DEST%\bin%_EXT%\ure\README +..\source\THIRDPARTYLICENSEREADME.html %_DEST%\bin%_EXT%\ure\THIRDPARTYLICENSEREADME.html +..\source\jvmfwk3.ini %_DEST%\bin%_EXT%\ure\jvmfwk3.ini +..\source\jvmfwk3rc %_DEST%\bin%_EXT%\ure\jvmfwk3rc +..\source\startup.sh %_DEST%\bin%_EXT%\ure\startup.sh +..\source\uno.ini %_DEST%\bin%_EXT%\ure\uno.ini +..\source\unorc %_DEST%\bin%_EXT%\ure\unorc diff --git a/ure/source/README b/ure/source/README new file mode 100644 index 000000000000..fdf1c7e85d9b --- /dev/null +++ b/ure/source/README @@ -0,0 +1,406 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +Overview of URE installation +----------------------------- + +Linux x86, Solaris x86, and Solaris SPARC: + +/opt/openoffice.org/ure/LICENSE +/opt/openoffice.org/ure/THIRDPARTYLICENSEREADME.html +/opt/openoffice.org/ure/README +/opt/openoffice.org/ure/bin/uno +/opt/openoffice.org/ure/bin/regcomp +/opt/openoffice.org/ure/bin/regmerge +/opt/openoffice.org/ure/bin/regview +/opt/openoffice.org/ure/bin/javaldx +/opt/openoffice.org/ure/lib/libuno_cppu.so.3 +/opt/openoffice.org/ure/lib/libuno_cppuhelpergcc3.so.3 [Linux x86 only] +/opt/openoffice.org/ure/lib/libuno_cppuhelperC52.so.3 [Solaris only] +/opt/openoffice.org/ure/lib/libuno_purpenvhelpergcc3.so.3 [Linux x86 only] +/opt/openoffice.org/ure/lib/libuno_purpenvhelperC52.so.3 [Solaris only] +/opt/openoffice.org/ure/lib/libuno_sal.so.3 +/opt/openoffice.org/ure/lib/libuno_salhelpergcc3.so.3 [Linux x86 only] +/opt/openoffice.org/ure/lib/libuno_salhelperC52.so.3 [Solaris only] +/opt/openoffice.org/ure/lib/libstlport_gcc.so [Linux x86 only] +/opt/openoffice.org/ure/lib/libstlport_sunpro.so [Solaris only] +/opt/openoffice.org/ure/share/java/unoloader.jar +/opt/openoffice.org/ure/share/java/juh.jar +/opt/openoffice.org/ure/share/java/jurt.jar +/opt/openoffice.org/ure/share/java/ridl.jar +/opt/openoffice.org/ure/share/misc/types.rdb +/opt/openoffice.org/ure/share/misc/services.rdb +/opt/openoffice.org/ure/lib/libxml2.so.2 [external] +/opt/openoffice.org/ure/lib/libgcc_s.so.1 [external; Linux x86 only] +/opt/openoffice.org/ure/lib/libstdc++.so.6 [external; Linux x86 only] +/opt/openoffice.org/ure/bin/startup.sh [private] +/opt/openoffice.org/ure/bin/uno.bin [private] +/opt/openoffice.org/ure/bin/regcomp.bin [private] +/opt/openoffice.org/ure/lib/unorc [private] +/opt/openoffice.org/ure/lib/libreg.so.3 [private] +/opt/openoffice.org/ure/lib/libstore.so.3 [private] +/opt/openoffice.org/ure/lib/libxmlreader.so [private] +/opt/openoffice.org/ure/lib/libjvmaccessgcc3.so.3 [private; Linux x86 only] +/opt/openoffice.org/ure/lib/libjvmaccessC52.so.3 [private; Solaris only] +/opt/openoffice.org/ure/lib/libjvmfwk.so.3 [private] +/opt/openoffice.org/ure/lib/sunjavaplugin.so [private] +/opt/openoffice.org/ure/lib/JREProperties.class [private] +/opt/openoffice.org/ure/lib/jvmfwk3rc [private] +/opt/openoffice.org/ure/lib/libgcc3_uno.so [private; Linux x86 only] +/opt/openoffice.org/ure/lib/libsunpro5_uno.so [private; Solaris only] +/opt/openoffice.org/ure/lib/libjava_uno.so [private] +/opt/openoffice.org/ure/lib/libunsafe_uno_uno.so [private] +/opt/openoffice.org/ure/lib/libaffine_uno_uno.so [private] +/opt/openoffice.org/ure/lib/liblog_uno_uno.so [private] +/opt/openoffice.org/ure/lib/libjpipe.so [private] +/opt/openoffice.org/ure/lib/libjuh.so [private] +/opt/openoffice.org/ure/lib/libjuhx.so [private] +/opt/openoffice.org/ure/lib/acceptor.uno.so [private] +/opt/openoffice.org/ure/lib/binaryurp.uno.so [private] +/opt/openoffice.org/ure/lib/bootstrap.uno.so [private] +/opt/openoffice.org/ure/lib/connector.uno.so [private] +/opt/openoffice.org/ure/lib/introspection.uno.so [private] +/opt/openoffice.org/ure/lib/invocadapt.uno.so [private] +/opt/openoffice.org/ure/lib/invocation.uno.so [private] +/opt/openoffice.org/ure/lib/javaloader.uno.so [private] +/opt/openoffice.org/ure/lib/javavm.uno.so [private] +/opt/openoffice.org/ure/lib/namingservice.uno.so [private] +/opt/openoffice.org/ure/lib/proxyfac.uno.so [private] +/opt/openoffice.org/ure/lib/reflection.uno.so [private] +/opt/openoffice.org/ure/lib/streams.uno.so [private] +/opt/openoffice.org/ure/lib/textinstream.uno.so [private] +/opt/openoffice.org/ure/lib/textoutstream.uno.so [private] +/opt/openoffice.org/ure/lib/stocservices.uno.so [private] +/opt/openoffice.org/ure/lib/uuresolver.uno.so [private] +/opt/openoffice.org/ure/share/java/java_uno.jar [private] +/opt/openoffice.org/ure/share/misc/javavendors.xml [private] + +Windows: + +Program Files\URE\LICENSE +Program Files\URE\THIRDPARTYLICENSEREADME.html +Program Files\URE\README +Program Files\URE\bin\uno.exe +Program Files\URE\bin\regcomp.exe +Program Files\URE\bin\regmerge.exe +Program Files\URE\bin\regview.exe +Program Files\URE\bin\cppu3.dll +Program Files\URE\bin\cppuhelper3MSC.dll +Program Files\URE\bin\purpenvhelper3MSC.dll +Program Files\URE\bin\sal3.dll +Program Files\URE\bin\salhelper3MSC.dll +Program Files\URE\bin\stlport_vc7145.dll +Program Files\URE\java\unoloader.jar +Program Files\URE\java\juh.jar +Program Files\URE\java\jurt.jar +Program Files\URE\java\ridl.jar +Program Files\URE\misc\types.rdb +Program Files\URE\misc\services.rdb +Program Files\URE\bin\libxml2.dll [external] +Program Files\URE\bin\uno.ini [private] +Program Files\URE\bin\reg3.dll [private] +Program Files\URE\bin\store3.dll [private] +Program Files\URE\bin\xmlreader.dll [private] +Program Files\URE\bin\jvmaccess3MSC.dll [private] +Program Files\URE\bin\jvmfwk3.dll [private] +Program Files\URE\bin\sunjavaplugin.dll [private] +Program Files\URE\bin\JREProperties.class [private] +Program Files\URE\bin\jvmfwk3.ini [private] +Program Files\URE\bin\msci_uno.dll [private] +Program Files\URE\bin\java_uno.dll [private] +Program Files\URE\bin\cli_uno.dll [private] +Program Files\URE\bin\unsafe_uno_uno.dll [private] +Program Files\URE\bin\affine_uno_uno.dll [private] +Program Files\URE\bin\log_uno_uno.dll [private] +Program Files\URE\bin\jpipe.dll [private] +Program Files\URE\bin\jpipx.dll [private] +Program Files\URE\bin\juh.dll [private] +Program Files\URE\bin\juhx.dll [private] +Program Files\URE\bin\acceptor.uno.dll [private] +Program Files\URE\bin\binaryurp.uno.dll [private] +Program Files\URE\bin\bootstrap.uno.dll [private] +Program Files\URE\bin\connector.uno.dll [private] +Program Files\URE\bin\introspection.uno.dll [private] +Program Files\URE\bin\invocadapt.uno.dll [private] +Program Files\URE\bin\invocation.uno.dll [private] +Program Files\URE\bin\javaloader.uno.dll [private] +Program Files\URE\bin\javavm.uno.dll [private] +Program Files\URE\bin\namingservice.uno.dll [private] +Program Files\URE\bin\proxyfac.uno.dll [private] +Program Files\URE\bin\reflection.uno.dll [private] +Program Files\URE\bin\streams.uno.dll [private] +Program Files\URE\bin\textinstream.uno.dll [private] +Program Files\URE\bin\textoutstream.uno.dll [private] +Program Files\URE\bin\stocservices.uno.dll [private] +Program Files\URE\bin\uuresolver.uno.dll [private] +Program Files\URE\bin\unicows.dll [private] +Program Files\URE\bin\uwinapi.dll [private] +Program Files\URE\java\java_uno.jar [private] +Program Files\URE\misc\javavendors.xml [private] + +%windir%\assembly\cli_basetypes.dll [GAC] +%windir%\assembly\cli_ure.dll [GAC] +%windir%\assembly\cli_uretypes.dll [GAC] +%windir%\assembly\cli_cppuhelper.dll [GAC] +%windir%\assembly\policy.1.0.cli_basetypes.dll [GAC] +%windir%\assembly\policy.1.0.cli_ure.dll [GAC] +%windir%\assembly\policy.1.0.cli_uretypes.dll [GAC] +%windir%\assembly\policy.1.0.cli_cppuhelper.dll [GAC] + +Files marked as [external] are included in the URE installation because the URE +needs them and it cannot be guaranteed that they are available on a given +system. Applications using the URE may need those files too, so they are made +available as non-private files of the URE installation. However, in an ideal +world, those files would not need to be included in the URE installation. + +Files marked as [private] are private to the URE installation. To avoid +stability issues, applications that use the URE should not access the +functionality of these files. + +Files marked as [GAC] are installed in the Global Assembly Cache on Windows. The +file path reflects the path as seen in the Explorer with the Assembly +Cache Viewer Tool (Shfusion.dll) installed. The actual paths are different. + + +Public Files in a URE Installation +---------------------------------- + +A URE installation contains the following public files: + +- uno is the executable file that runs UNO components. For more details, see +the SDK Developer's Guide. + +- regcomp, regmerge, and regview are tools that work with binary registries that +contain UNO type or UNO service information. For more details, see the SDK +Developer's Guide. + +- javaldx is a helper program on Linux x86, Solaris x86, and Solaris SPARC that +enables Java executables to use a Java VM, such as the Sun JDK/JRE. Executables +such as uno and regcomp run this helper automatically. + +- cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO +runtime dynamic libraries that client code can call. For details on the +functionality that these libraries offer, see the "C++ Reference" section of the +SDK HTML documentation. The corresponding C++ header files are not in the URE, +but rather in the SDK. + +- stlport is the dynamic library of STLport 4.5, which is used in the public +interface of cppuhelper and salhelper, and thus also has to be part of the +public interface of the URE. The corresponding C++ header files are not in the +URE, but rather in the SDK. + +- unoloader.jar, juh.jar, jurt.jar, and ridl.jar are the public Java UNO runtime +Java[tm] Archives (JARs) that client code can call. For details on the +functionality that these files offer, see the "Java UNO Runtime Reference" +section of the SDK HTML documentation. + +- types.rdb and services.rdb are preconfigured UNO type and service registries. +For more details, see the "Deploying a URE" section of this README. + + +Deploying a URE +--------------- + +By default, the URE is installed in /opt/openoffice.org/ure on Linux x86, +Solaris x86, and Solaris SPARC, and in Program Files\URE on Windows. If you +want, you can override this location when you install the URE, for example, with +rpm --relocate on Linux. The URE is designed so that multiple instances of the +URE can coexist on a single system in different locations. + +On Windows, the path to the installed URE is stored in the registry under the +path "HKEY_CLASSES_ROOT\Software\OpenOffice.org\URE" and key "Path". + + +UNO Deployment Variables +------------------------ + +The URE installation is preconfigured with several UNO types and UNO services. +The available types and services are listed in the types.rdb and services.rdb +files respectively. The location of these files is stored by two UNO deployment +variables, namely UNO_TYPES and UNO_SERVICES. These variables are set up by a +unorc or uno.ini that is private to the URE installation. This private file +also contains the private deployment variables URE_INTERNAL_LIB_DIR, +URE_INTERNAL_JAVA_DIR, and URE_INTERNAL_JAVA_CLASSPATH, which are required by +the URE. + +The UNO_TYPES and UNO_SERVICES variables automatically search the following +locations for types.rdb and services.rdb files: + +Linux x86, Solaris x86, and Solaris SPARC: + +- <URE installation>/share/misc/ types.rdb and services.rdb, respectively +- /etc/opt/ure/ types.rdb and services.rdb, respectively +- ~/.ure/ types.rdb and services.rdb, respectively +- any URLs listed in the public deployment variables URE_MORE_TYPES and + URE_MORE_SERVICES, respectively + +Windows: + +- <URE installation>\misc\ types.rdb and services.rdb, respectively +- Documents and Settings\<User Name>\Application Data\URE\ types.rdb and + services.rdb, respectively +- any URLs listed in the public deployment variables URE_MORE_TYPES and + URE_MORE_SERVICES, respectively + +NOTE: The URE on Windows does not support a system-wide deployment of additional +types.rdb and services.rdb files. That is, you cannot store additional +types.rdb and services.rdb files in a Documents and Settings\All +Users\Application Data\URE directory. + +The Java UNO environment needs type information in the form of Java class files +instead of rdb files. Additional types are searched for in any URLs listed in +the public deployment variable URE_MORE_JAVA_TYPES. + +For details on how to override the UNO deployment variables, see the SDK +Developer's Guide or go to http://udk.openoffice.org/common/man/concept/ +micro_deployment.html. + +If you want to deploy additional UNO types and services, use regcomp. + +CAUTION: Do not deploy these types and services to the types.rdb and +services.rdb in the URE installation. + + +URE Java Framework +------------------ + +When a URE executable, such as uno, starts a Java VM, the URE Java Framework +searches for a suitable JDK/JRE installation. For more information on the URE +Java Framework, go to http://udk.openoffice.org/common/man/spec/ +javavendorextension.sxw. The private javavendors.xml file in a URE installation +provides preconfigured support for various JDK/JRE versions. The private +jvmfwk3rc or jvmfwk3.ini file specifies the location of a suitable JDK/JRE +installation. When an executable tries to start a Java VM, the URE searches the +relevant Java settings file for information on a suitable JDK/JRE version. + +NOTE: On any platform, you can delete the javasettings_${_OS}_${_ARCH}.xml file +if the file contains problematic stale data. + +By default, the URE searches for a Java settings file in the following +locations: + +Linux x86, Solaris x86, and Solaris SPARC: + +- /etc/opt/ure/javasettings_${_OS}_${_ARCH}.xml +- ~/.ure/javasettings_${_OS}_${_ARCH}.xml + +NOTE: If these files do not contain information about a JDK/JRE, the URE +searches for a suitable JDK/JRE installation and stores the relevant information +in the ~/.ure/javasettings_${_OS}_${_ARCH}.xml file. If you want all users to +access the same JDK/JRE, log on as root and copy an existing +~/.ure/javasettings_${_OS}_${_ARCH}.xml to +/etc/opt/ure/javasettings_${_OS}_${_ARCH}.xml. + +Windows: + +- Documents and Settings\<User Name>\Application + Data\URE\javasettings_${_OS}_${_ARCH}.xml + +NOTE: If this file does not contain information about a JDK/JRE, the URE +searches for a suitable JDK/JRE installation and stores the relevant information +in the Documents and Settings\<User Name>\Application +Data\URE\javasettings_${_OS}_${_ARCH}.xml file. The URE on Windows does not +by default support a system-wide deployment of the Java settings file. That is, +you cannot store the file in a Documents and Settings\All Users\Application +Data\URE directory. + +You can override these paths by setting the URE_OVERRIDE_JAVA_JFW_SHARED_DATA +and URE_OVERRIDE_JAVA_JFW_USER_DATA deployment variables. You can also use the +UNO_JAVA_JFW_JREHOME deployment variable to specify the location of a JDK/JRE +installation. For more information on this variable, see +http://udk.openoffice.org/common/man/spec/javavendorextension.sxw. + +The URE allows clients to extend the content of UNO_JAVA_JFW_CLASSPATH_URLS (see +http://udk.openoffice.org/common/man/spec/javavendorextension.sxw): The content +of the public deployment variable URE_MORE_JAVA_CLASSPATH_URLS, if set, is +added to the end of the URE's UNO_JAVA_JFW_CLASSPATH_URLS list. + +You might experience problems in an SDK environment that uses different JDK/JRE +versions for the SDK and the URE. This problem arises when the OO_SDK_JAVA_HOME +SDK environment variable specifies a different Java VM than the Java VM that is +used in the URE Java Framework. See the "Installation Guide" section of the SDK +HTML documentation to find out how to set the OO_SDK_JAVA_HOME environment +variable. + + +GNU Compiler Collection on Linux x86 +------------------------------------ + +On Linux x86, the URE uses libgcc_s.so.1 to run binary UNO components that were +compiled with the GNU Compiler Collection (GCC). The libgcc_s.so.1 corresponds +to GCC 3.4.1 as built on a glibc 2.2.4 system. To avoid GCC compatibility +issues, use the same GCC version (or later) when you compile the UNO binaries. +Otherwise, use LD_PRELOAD to replace the libgcc_s.so.1 in URE with a matching +version. + + +C++ and Java UNO Components +--------------------------- + +C++ UNO components run from within the uno executable can depend on an +environment in which the public C++ UNO runtime dynamic libraries (cppu, +cppuhelper, purpenvhelper, sal, salhelper, stlport) and the external dynamic +libraries (libxml2 etc.) are already available (that is, on Linux x86, Solaris +x86, and Solaris SPARC, a component dynamic library need not make sure that the +UNO runtime dynamic libraries it needs can be found on its RPATH). + +Similarly, Java UNO components can depend on an environment in which the public +Java UNO runtime JARs are already available (that is, a component JAR need not +list in its manifest Class-Path the UNO runtime JARs it needs). + +If a Java UNO component requires additional UNO types, use the UNO-Type-Path +manifest entry to specify the location of the UNO types. The UNO-Type-Path is +similar to the Class-Path manifest entry and can contain URLs of JARs and +directories that contain the Java classes that represent additional UNO types. +The UnoClassLoader evaluates the UNO-Type-Path manifest entry to ensure that the +additional UNO types are available to the Java UNO environment. + +The UNO-Type-Path can have the following entries: + +- UNO-Type-Path: +Current JAR does not contain UNO types. + +- UNO-Type-Path: <> +Current JAR contains UNO types. + +- UNO-Type-Path: any/other/jar.jar yet/another/jar.jar +Current JAR brings other JARs that contain UNO types. + +- UNO-Type-Path: any/other/jar.jar <> yet/another/jar.jar +Current JAR and other JARs that the current JARs uses contain UNO types. + +NOTE: If you do not include the UNO-Type-Path manifest entry, the URE assumes +that the current JAR contains UNO types. + +If a Java application requires the Java UNO environment, the UnoClassLoader must +be set up to load the relevant Java classes. For example, Runner.java in the +uretest bundle is packed as runner.jar, which the makefiles use to launch the +javaclient.jar application. For more information, see +com.sun.star.lib.unoloader.UnoClassLoader and +com.sun.star.lib.unoloader.UnoLoader in the "Java UNO Runtime Reference" section +of the SDK HTML documentation. diff --git a/ure/source/THIRDPARTYLICENSEREADME.html b/ure/source/THIRDPARTYLICENSEREADME.html new file mode 100644 index 000000000000..eeacd59bbea7 --- /dev/null +++ b/ure/source/THIRDPARTYLICENSEREADME.html @@ -0,0 +1,556 @@ +DO NOT TRANSLATE OR LOCALIZE + +*************************************************************************** + +%%The following software may be included in this product: +libxml2 + +Use of any of this software is governed by the terms of the license below: + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Additional License(s) + +Except where otherwise noted in the source code (trio files, hash.c and list.c) +covered by a similar licence but with different Copyright notices: + + Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Daniel Veillard shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from him. + +*************************************************************************** + +%%The following software may be included in this product: +STLport + +Use of any of this software is governed by the terms of the license below: + +License Agreement + +Boris Fomitchev grants Licensee a non-exclusive, non-transferable, royalty-free +license to use STLport and its documentation without fee. + +By downloading, using, or copying STLport or any portion thereof, Licensee +agrees to abide by the intellectual property laws and all other applicable laws +of the United States of America, and to all of the terms and conditions of this +Agreement. + +Licensee shall maintain the following copyright and permission notices on +STLport sources and its documentation unchanged : +Copyright 1999,2000 Boris Fomitchev + +This material is provided "as is", with absolutely no warranty expressed or +implied. Any use is at your own risk. +Permission to use or copy this software for any purpose is hereby granted +without fee, provided the above notices are retained on all copies. Permission +to modify the code and to distribute modified code is granted, provided the +above notices are retained, and a notice that the code was modified is included +with the above copyright notice. + +The Licensee may distribute binaries compiled with STLport (whether original or +modified) without any royalties or restrictions. + +The Licensee may distribute original or modified STLport sources, provided that: + + * The conditions indicated in the above permission notice are met; + * The following copyright notices are retained when present, and conditions +provided in accompanying permission notices are met : + +Copyright 1994 Hewlett-Packard Company + +Copyright 1996,97 Silicon Graphics Computer Systems, Inc. + +Copyright 1997 Moscow Center for SPARC Technology. + + Permission to use, copy, modify, distribute and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright notice +and this permission notice appear in supporting documentation. Hewlett-Packard +Company makes no representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. + + Permission to use, copy, modify, distribute and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright notice +and this permission notice appear in supporting documentation. Silicon Graphics +makes no representations about the suitability of this software for any purpose. +It is provided "as is" without express or implied warranty. + + Permission to use, copy, modify, distribute and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright notice +and this permission notice appear in supporting documentation. Moscow Center for +SPARC Technology makes no representations about the suitability of this +software for any purpose. It is provided "as is" without express or implied +warranty. + +*************************************************************************** + +%%The following software may be included in this product: +libstdc++ + +Use of any of this software is governed by the terms of the license below: + +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +Additional License(s) + +I didn't search the source code, our program is dynamically linking +against the libstdc++ library installed on the system. However, here +is the additional Licenses info from opensource review#1994: + + +here is header one of the source files from the libstdc++ directory + +// Explicit instantiation file. + +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +// Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library 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 General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free +software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you +compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be +covered by +// the GNU General Public License. + +// +// ISO C++ 14882: +// + + + +And here is a header from a file from libgcc, they look the same +version to me + +/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. + Contributed by Jakub Jelinek . + + This file is part of GNU CC. + + GNU CC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GNU CC 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU CC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, if you link this library with other files, + some of which are compiled with GCC, to produce an executable, + this library does not by itself cause the resulting executable + to be covered by the GNU General Public License. + This exception does not however invalidate any other reasons why + the executable file might be covered by the GNU General Public +License. */ + +/* Locate the FDE entry for a given address, using PT_GNU_EH_FRAME ELF + segment and dl_iterate_phdr to avoid register/deregister calls at + DSO load/unload. */ + +*************************************************************************** + diff --git a/ure/source/delzip b/ure/source/delzip new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/ure/source/delzip diff --git a/ure/source/jvmfwk3.ini b/ure/source/jvmfwk3.ini new file mode 100644 index 000000000000..55c029dd4021 --- /dev/null +++ b/ure/source/jvmfwk3.ini @@ -0,0 +1,5 @@ +[Bootstrap] +UNO_JAVA_JFW_VENDOR_SETTINGS=${ORIGIN}/../misc/javavendors.xml +UNO_JAVA_JFW_SHARED_DATA=${URE_OVERRIDE_JAVA_JFW_SHARED_DATA} ${SYSUSERCONFIG}/URE/javasettings_${_OS}_${_ARCH}.xml +UNO_JAVA_JFW_USER_DATA=${URE_OVERRIDE_JAVA_JFW_USER_DATA} ${SYSUSERCONFIG}/URE/javasettings_${_OS}_${_ARCH}.xml +UNO_JAVA_JFW_CLASSPATH_URLS=${URE_MORE_JAVA_CLASSPATH_URLS} diff --git a/ure/source/jvmfwk3rc b/ure/source/jvmfwk3rc new file mode 100644 index 000000000000..d0b09f89058b --- /dev/null +++ b/ure/source/jvmfwk3rc @@ -0,0 +1,5 @@ +[Bootstrap] +UNO_JAVA_JFW_VENDOR_SETTINGS=${ORIGIN}/../share/misc/javavendors.xml +UNO_JAVA_JFW_SHARED_DATA=${URE_OVERRIDE_JAVA_JFW_SHARED_DATA} file:///etc/opt/ure/javasettings_${_OS}_${_ARCH}.xml +UNO_JAVA_JFW_USER_DATA=${URE_OVERRIDE_JAVA_JFW_USER_DATA} ${SYSUSERHOME}/.ure/javasettings_${_OS}_${_ARCH}.xml +UNO_JAVA_JFW_CLASSPATH_URLS=${URE_MORE_JAVA_CLASSPATH_URLS} diff --git a/ure/source/makefile.mk b/ure/source/makefile.mk new file mode 100644 index 000000000000..bdd43656b32c --- /dev/null +++ b/ure/source/makefile.mk @@ -0,0 +1,69 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +PRJ = .. +PRJNAME = ure +TARGET = source + +ZIP1TARGET = uretest +ZIP1FLAGS = -r +ZIP1LIST = uretest + +my_components = \ + acceptor \ + binaryurp \ + bootstrap \ + connector \ + introspection \ + invocadapt \ + invocation \ + javaloader \ + javavm \ + juh \ + namingservice \ + proxyfac \ + reflection \ + stocservices \ + streams \ + textinstream \ + textoutstream \ + uuresolver + +.INCLUDE: settings.mk +.INCLUDE: target.mk + +ALLTAR : $(MISC)/services.rdb + +$(MISC)/services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \ + $(MISC)/services.input $(my_components:^"$(SOLARXMLDIR)/":+".component") + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/services.input + +$(MISC)/services.input : + echo \ + '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \ + > $@ diff --git a/ure/source/startup.sh b/ure/source/startup.sh new file mode 100644 index 000000000000..7130d172809b --- /dev/null +++ b/ure/source/startup.sh @@ -0,0 +1,47 @@ +#!/bin/sh +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# Pass -env arguments on to javaldx; needs to be fixed: +my_envargs= +for my_arg in "$@" ; do + case ${my_arg} in + -env:*) my_envargs="${my_envargs} ${my_arg}" ;; + esac +done + +# Extend the LD_LIBRARY_PATH for Java: +epath=`dirname "$0"` +if [ -x "${epath}/javaldx" ] ; then + jpath=`"${epath}/javaldx" $my_envargs` + if [ -n "${jpath}" ]; then + LD_LIBRARY_PATH=${jpath}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} + export LD_LIBRARY_PATH + fi +fi + +exec "$0.bin" "$@" diff --git a/ure/source/uno.ini b/ure/source/uno.ini new file mode 100644 index 000000000000..590125f8193f --- /dev/null +++ b/ure/source/uno.ini @@ -0,0 +1,6 @@ +[Bootstrap] +URE_INTERNAL_LIB_DIR=${ORIGIN} +URE_INTERNAL_JAVA_DIR=${ORIGIN}/../java +URE_INTERNAL_JAVA_CLASSPATH=${URE_MORE_JAVA_TYPES} +UNO_TYPES=${ORIGIN}/../misc/types.rdb ?${SYSUSERCONFIG}/URE/types.rdb ${URE_MORE_TYPES} +UNO_SERVICES=${ORIGIN}/../misc/services.rdb ?${SYSUSERCONFIG}/URE/services.rdb ${URE_MORE_SERVICES} diff --git a/ure/source/unorc b/ure/source/unorc new file mode 100644 index 000000000000..50b8e8f1fe80 --- /dev/null +++ b/ure/source/unorc @@ -0,0 +1,6 @@ +[Bootstrap] +URE_INTERNAL_LIB_DIR=${ORIGIN} +URE_INTERNAL_JAVA_DIR=${ORIGIN}/../share/java +URE_INTERNAL_JAVA_CLASSPATH=${URE_MORE_JAVA_TYPES} +UNO_TYPES=${ORIGIN}/../share/misc/types.rdb ?file:///etc/opt/ure/types.rdb ?${SYSUSERHOME}/.ure/types.rdb ${URE_MORE_TYPES} +UNO_SERVICES=${ORIGIN}/../share/misc/services.rdb ?file:///etc/opt/ure/services.rdb ?${SYSUSERHOME}/.ure/services.rdb ${URE_MORE_SERVICES} diff --git a/ure/source/uretest/JavaClient.java b/ure/source/uretest/JavaClient.java new file mode 100644 index 000000000000..71b3113372ed --- /dev/null +++ b/ure/source/uretest/JavaClient.java @@ -0,0 +1,72 @@ +/************************************************************************* + * + * 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 test.java.javaclient; + +import com.sun.star.bridge.XBridge; +import com.sun.star.bridge.XBridgeFactory; +import com.sun.star.comp.helper.Bootstrap; +import com.sun.star.connection.Connector; +import com.sun.star.lang.XComponent; +import com.sun.star.lang.XMultiComponentFactory; +import com.sun.star.lib.uno.helper.UnoUrl; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XComponentContext; +import test.types.Data; +import test.types.XServer; + +public final class JavaClient { + public static void main(String[] arguments) throws Exception { + XComponentContext context = Bootstrap.createInitialComponentContext( + null); + XMultiComponentFactory manager = context.getServiceManager(); + if (manager == null) { + throw new NullPointerException("no service manager"); + } + XBridgeFactory factory = UnoRuntime.queryInterface( + XBridgeFactory.class, + manager.createInstanceWithContext( + "com.sun.star.bridge.BridgeFactory", context)); + if (factory == null) { + throw new NullPointerException("no bridge factory"); + } + UnoUrl url = UnoUrl.parseUnoUrl(arguments[0]); + XBridge bridge = factory.createBridge( + "", url.getProtocolAndParametersAsString(), + Connector.create(context).connect( + url.getConnectionAndParametersAsString()), + null); + Data d = UnoRuntime.queryInterface( + XServer.class, bridge.getInstance(url.getRootOid())).getData(); + UnoRuntime.queryInterface(XComponent.class, bridge).dispose(); + if (!d.m1.equals("Hello") || d.m2 != 42) { + throw new RuntimeException("Data object contains bad values"); + } + } + + private JavaClient() {} +} diff --git a/ure/source/uretest/JavaMain.java b/ure/source/uretest/JavaMain.java new file mode 100644 index 000000000000..a6054b26ea1c --- /dev/null +++ b/ure/source/uretest/JavaMain.java @@ -0,0 +1,70 @@ +/************************************************************************* + * + * 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 test.java.javamain; + +import com.sun.star.comp.loader.FactoryHelper; +import com.sun.star.lang.XMain; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XSingleServiceFactory; +import com.sun.star.registry.XRegistryKey; +import com.sun.star.uno.XComponentContext; +import test.java.tester.Tester; + +public final class JavaMain implements XMain { + public JavaMain(XComponentContext context) { + this.context = context; + } + + public int run(String[] arguments) { + Tester.test(context); + return 0; + } + + public static boolean __writeRegistryServiceInfo(XRegistryKey key) { + return + FactoryHelper.writeRegistryServiceInfo( + IMPLEMENTATION_NAME, SERVICE_NAME, key); + } + + public static XSingleServiceFactory __getServiceFactory( + String name, XMultiServiceFactory factory, XRegistryKey key) + { + if (name.equals(IMPLEMENTATION_NAME)) { + return FactoryHelper.getServiceFactory( + JavaMain.class, SERVICE_NAME, factory, key); + } else { + return null; + } + } + + private static final String IMPLEMENTATION_NAME + = "test.java.javamain.Component"; + private static final String SERVICE_NAME = "test.dummy.JavaMain"; + + private final XComponentContext context; +} diff --git a/ure/source/uretest/JavaNative.java b/ure/source/uretest/JavaNative.java new file mode 100644 index 000000000000..cbbb988f5e69 --- /dev/null +++ b/ure/source/uretest/JavaNative.java @@ -0,0 +1,41 @@ +/************************************************************************* + * + * 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 test.java.javanative; + +import com.sun.star.comp.helper.Bootstrap; +import test.java.tester.Tester; + +public final class JavaNative { + public static void main(String[] arguments) throws Exception { + Tester.test( + Bootstrap.defaultBootstrap_InitialComponentContext( + arguments[0], null)); + } + + private JavaNative() {} +} diff --git a/ure/source/uretest/JavaTest.java b/ure/source/uretest/JavaTest.java new file mode 100644 index 000000000000..307ec3453096 --- /dev/null +++ b/ure/source/uretest/JavaTest.java @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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 test.java.javatest; + +import com.sun.star.comp.loader.FactoryHelper; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XSingleServiceFactory; +import com.sun.star.registry.XRegistryKey; +import test.types.TestException; +import test.types.XTest; + +public final class JavaTest implements XTest { + public JavaTest() {} + + public void throwException() throws TestException { + throw new TestException("test", this); + } + + public static boolean __writeRegistryServiceInfo(XRegistryKey key) { + return + FactoryHelper.writeRegistryServiceInfo( + IMPLEMENTATION_NAME, SERVICE_NAME, key); + } + + public static XSingleServiceFactory __getServiceFactory( + String name, XMultiServiceFactory factory, XRegistryKey key) + { + if (name.equals(IMPLEMENTATION_NAME)) { + return FactoryHelper.getServiceFactory( + JavaTest.class, SERVICE_NAME, factory, key); + } else { + return null; + } + } + + private static final String IMPLEMENTATION_NAME + = "test.java.javatest.Component"; + private static final String SERVICE_NAME = "test.types.JavaTest"; +} diff --git a/ure/source/uretest/Makefile b/ure/source/uretest/Makefile new file mode 100644 index 000000000000..7aaf580eb642 --- /dev/null +++ b/ure/source/uretest/Makefile @@ -0,0 +1,310 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# The following variable can be set, if necessary (see README): +#GCCS_COMPAT := LD_PRELOAD=/lib/libgcc_s.so.1 + + +.DELETE_ON_ERROR: + + +PRJ = $(OO_SDK_HOME) + +include $(PRJ)/settings/settings.mk +include $(PRJ)/settings/std.mk + +ifeq "$(PLATFORM)" "windows" +qt = " +qt2 = +cwd = $(subst \,/,$(shell cd)) +link_output_switch = -out: +link_std_libs = kernel32.lib msvcrt.lib +ure_java_url = $(subst $(subst .,., ),%%20,$(subst \,/,$(URLPREFIX)$(OO_SDK_URE_JAVA_DIR))) +ure_unorc_url = $(subst $(subst .,., ),%%20,$(subst \,/,$(URLPREFIX)$(OO_SDK_URE_LIB_DIR)/uno.ini)) +else +qt = ' +qt2 = ' +cwd = $(PWD) +link_output_switch = $(subst .,.,-o ) +link_std_libs = +ure_java_url = $(URLPREFIX)$(OO_SDK_URE_JAVA_DIR) +ure_unorc_url = $(URLPREFIX)$(OO_SDK_URE_LIB_DIR)/unorc +endif + + +.PHONY: ALL +ALL: test + +include $(PRJ)/settings/stdtarget.mk + + +.PHONY: test +test: test-cpptest test-javatest test-javanative test-clientserver + +.PHONY: test-cpptest +test-cpptest: out.sdk/cppmain.uno.$(SHAREDLIB_EXT) out.sdk/types.rdb \ + out.sdk/services.rdb + $(GCCS_COMPAT) uno \ + -c test.cpp.cppmain.Component -l $(URLPREFIX)$(cwd)/$< \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" \ + -ro out.sdk/services.rdb + +.PHONY: test-javatest +test-javatest: out.sdk/javamain.uno.jar out.sdk/types.rdb out.sdk/services.rdb + $(GCCS_COMPAT) uno \ + -c test.java.javamain.Component -l $(URLPREFIX)$(cwd)/$< \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" \ + -ro out.sdk/services.rdb + +.PHONY: test-javanative +test-javanative: out.sdk/runner.jar out.sdk/javanative.jar \ + out.sdk/javanative.rc out.sdk/services.rdb out.sdk/types.rdb + $(GCCS_COMPAT) $(SDK_JAVA) -jar out.sdk/runner.jar $(ure_java_url)/ \ + $(URLPREFIX)$(cwd)/out.sdk/javanative.jar \ + $(URLPREFIX)$(cwd)/out.sdk/javanative.rc + +do_server = $(GCCS_COMPAT) uno -c test.cpp.cppserver.Component \ + -l $(URLPREFIX)$(cwd)/out.sdk/cppserver.uno.$(SHAREDLIB_EXT) \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_TYPES))" -ro out.sdk/types.rdb \ + -ro "$(subst \,/,$(URLPREFIX)$(URE_SERVICES))" -ro out.sdk/services.rdb \ + -u "uno:pipe,name=ure_test;urp;server" --singleaccept +do_client = $(SDK_JAVA) -jar out.sdk/runner.jar $(ure_java_url)/ \ + $(URLPREFIX)$(cwd)/out.sdk/javaclient.jar \ + "uno:pipe,name=ure_test;urp;server" +.PHONY: test-clientserver +test-clientserver: out.sdk/cppserver.uno.$(SHAREDLIB_EXT) out.sdk/runner.jar \ + out.sdk/javaclient.jar +ifeq "$(PLATFORM)" "windows" + echo $(subst %,%%,$(do_server)) > out.sdk/server.bat + echo $(subst %,%%,$(do_client)) > out.sdk/client.bat + @ echo Execute test-clientserver manually: start out.sdk\server.bat + @ echo and then simultaneously start out.sdk\client.bat +else + $(do_server) & + sleep 5 && $(do_client) +endif + + +.PHONY: clean +clean: + $(DELRECURSIVE) $(subst /,$(PS),out.sdk) + + +out.sdk/cppmain.uno.$(SHAREDLIB_EXT): out.sdk/cppmain.$(OBJ_EXT) version.map | \ + out.sdk + $(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \ + $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(SALHELPERLIB) \ + $(STLPORTLIB) $(link_std_libs) + +out.sdk/cppmain.$(OBJ_EXT): cppmain.cc out.sdk/cpputypes.cppumaker.flag \ + out.sdk/types.cppumaker.flag | out.sdk + $(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \ + $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \ + $(CC_DEFINES) $< + + +out.sdk/cpptest.uno.$(SHAREDLIB_EXT): out.sdk/cpptest.$(OBJ_EXT) version.map | \ + out.sdk + $(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \ + $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(link_std_libs) + +out.sdk/cpptest.$(OBJ_EXT): cpptest.cc out.sdk/cpputypes.cppumaker.flag \ + out.sdk/types.cppumaker.flag | out.sdk + $(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \ + $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \ + $(CC_DEFINES) $< + + +out.sdk/cppserver.uno.$(SHAREDLIB_EXT): out.sdk/cppserver.$(OBJ_EXT) \ + version.map | out.sdk + $(LINK) $(COMP_LINK_FLAGS) $(link_output_switch)$@ $< $(LINK_LIBS) \ + $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) $(link_std_libs) + +out.sdk/cppserver.$(OBJ_EXT): cppserver.cc out.sdk/cpputypes.cppumaker.flag \ + out.sdk/types.cppumaker.flag | out.sdk + $(CC) $(CC_FLAGS) $(CC_OUTPUT_SWITCH)$@ -I$(PRJ)/include/stl \ + $(CC_INCLUDES) -Iout.sdk/include/cpputypes -Iout.sdk/include/types \ + $(CC_DEFINES) $< + + +out.sdk/cpputypes.cppumaker.flag: | out.sdk + $(CPPUMAKER) -O./out.sdk/include/cpputypes \ + "-Tcom.sun.star.lang.DisposedException;com.sun.star.lang.EventObject;com.sun.star.lang.XMain;com.sun.star.lang.XMultiComponentFactory;com.sun.star.lang.XMultiServiceFactory;com.sun.star.lang.XSingleComponentFactory;com.sun.star.lang.XSingleServiceFactory;com.sun.star.lang.XTypeProvider;com.sun.star.registry.XRegistryKey;com.sun.star.uno.DeploymentException;com.sun.star.uno.Exception;com.sun.star.uno.RuntimeException;com.sun.star.uno.XAggregation;com.sun.star.uno.XComponentContext;com.sun.star.uno.XCurrentContext;com.sun.star.uno.XInterface;com.sun.star.uno.XWeak" \ + -B/UCR "$(URE_TYPES)" + touch $@ + +out.sdk/types.cppumaker.flag: out.sdk/types.rdb | out.sdk + $(CPPUMAKER) -O./out.sdk/include/types -B/UCR $< "-X$(URE_TYPES)" + touch $@ + + +out.sdk/javamain.uno.jar: \ + out.sdk/class/javamain/test/java/javamain/JavaMain.class \ + out.sdk/javamain.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/javamain.mf -C out.sdk/class/javamain test + +out.sdk/javamain.mf: javamain.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& tester.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@ + +out.sdk/class/javamain/test/java/javamain/JavaMain.class: JavaMain.java \ + out.sdk/tester.jar | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javamain) + $(MKDIR) $(subst /,$(PS),out.sdk/class/javamain) + $(SDK_JAVAC) $(JAVAC_FLAGS) \ + -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/tester.jar" \ + -sourcepath . -d out.sdk/class/javamain $< + + +out.sdk/runner.jar: out.sdk/class/runner/test/java/runner/Runner.class \ + out.sdk/runner.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/runner.mf -C out.sdk/class/runner test + +out.sdk/runner.mf: runner.mf.template | out.sdk + sed -e \ + $(qt)s~^Class-Path:$$~& $(ure_java_url)/unoloader.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& ~$(qt) $< > $@ + +out.sdk/class/runner/test/java/runner/Runner.class: Runner.java | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/runner) + $(MKDIR) $(subst /,$(PS),out.sdk/class/runner) + $(SDK_JAVAC) $(JAVAC_FLAGS) -sourcepath . -d out.sdk/class/runner $< + + +out.sdk/tester.jar: out.sdk/class/tester/test/java/tester/Tester.class \ + out.sdk/tester.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/tester.mf -C out.sdk/class/tester test + +out.sdk/tester.mf: tester.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@ + +out.sdk/class/tester/test/java/tester/Tester.class: Tester.java \ + out.sdk/types.jar | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/tester) + $(MKDIR) $(subst /,$(PS),out.sdk/class/tester) + $(SDK_JAVAC) $(JAVAC_FLAGS) \ + -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \ + -sourcepath . -d out.sdk/class/tester $< + + +out.sdk/javatest.uno.jar: \ + out.sdk/class/javatest/test/java/javatest/JavaTest.class \ + out.sdk/javatest.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/javatest.mf -C out.sdk/class/javatest test + +out.sdk/javatest.mf: javatest.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@ + +out.sdk/class/javatest/test/java/javatest/JavaTest.class: JavaTest.java \ + out.sdk/types.jar | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javatest) + $(MKDIR) $(subst /,$(PS),out.sdk/class/javatest) + $(SDK_JAVAC) $(JAVAC_FLAGS) \ + -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \ + -sourcepath . -d out.sdk/class/javatest $< + + +out.sdk/javanative.jar: \ + out.sdk/class/javanative/test/java/javanative/JavaNative.class \ + out.sdk/javanative.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/javanative.mf -C out.sdk/class/javanative test + +out.sdk/javanative.mf: javanative.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& tester.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@ + +out.sdk/class/javanative/test/java/javanative/JavaNative.class: \ + JavaNative.java out.sdk/tester.jar | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javanative) + $(MKDIR) $(subst /,$(PS),out.sdk/class/javanative) + $(SDK_JAVAC) $(JAVAC_FLAGS) \ + -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/tester.jar" \ + -sourcepath . -d out.sdk/class/javanative $< + +out.sdk/javanative.rc: | out.sdk + echo $(qt2)URE_INTERNAL_LIB_DIR=$${$(subst :,\u003A,$(ure_unorc_url)):URE_INTERNAL_LIB_DIR}$(qt2) > $@ + echo $(qt2)URE_INTERNAL_JAVA_DIR=$${$(subst :,\u003A,$(ure_unorc_url)):URE_INTERNAL_JAVA_DIR}$(qt2) >> $@ + echo $(qt2)UNO_TYPES=$${$(subst :,\u003A,$(ure_unorc_url)):UNO_TYPES} $(URLPREFIX)$(cwd)/out.sdk/types.rdb$(qt2) >> $@ + echo $(qt2)UNO_SERVICES=$${$(subst :,\u003A,$(ure_unorc_url)):UNO_SERVICES} $(URLPREFIX)$(cwd)/out.sdk/services.rdb$(qt2) >> $@ + + +out.sdk/javaclient.jar: \ + out.sdk/class/javaclient/test/java/javaclient/JavaClient.class \ + out.sdk/javaclient.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/javaclient.mf -C out.sdk/class/javaclient test + +out.sdk/javaclient.mf: javaclient.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& types.jar~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& types.jar~$(qt) $< > $@ + +out.sdk/class/javaclient/test/java/javaclient/JavaClient.class: \ + JavaClient.java out.sdk/types.jar | out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/javaclient) + $(MKDIR) $(subst /,$(PS),out.sdk/class/javaclient) + $(SDK_JAVAC) $(JAVAC_FLAGS) \ + -classpath "$(CLASSPATH)$(PATH_SEPARATOR)out.sdk/types.jar" \ + -sourcepath . -d out.sdk/class/javaclient $< + + +out.sdk/types.jar: out.sdk/types.javamaker.flag out.sdk/types.mf | out.sdk + $(SDK_JAR) cfm $@ out.sdk/types.mf -C out.sdk/class/types test + +out.sdk/types.mf: types.mf.template | out.sdk + sed -e $(qt)s~^Class-Path:$$~& ~$(qt) \ + -e $(qt)s~^UNO-Type-Path:$$~& \<\>~$(qt) $< > $@ + +out.sdk/types.javamaker.flag: out.sdk/types.rdb | out.sdk out.sdk/class + - $(DELRECURSIVE) $(subst /,$(PS),out.sdk/class/types) + $(JAVAMAKER) -O./out.sdk/class/types -B/UCR $< "-X$(URE_TYPES)" + touch $@ + + +out.sdk/types.rdb: out.sdk/types.urd | out.sdk + $(REGMERGE) $@ /UCR $< + +out.sdk/types.urd: types.idl | out.sdk + $(IDLC) -O$(@D) -I$(IDL_DIR) -cid -we $< + + +out.sdk/services.rdb: out.sdk/cpptest.uno.$(SHAREDLIB_EXT) \ + out.sdk/javatest.uno.jar | out.sdk + $(DEL) $(subst /,$(PS),$@) + $(REGCOMP) -register -r $@ \ + -c $(URLPREFIX)$(cwd)/out.sdk/cpptest.uno.$(SHAREDLIB_EXT) + $(REGCOMP) -register -br "$(URE_TYPES)" -br "$(URE_SERVICES)" -r $@ \ + -c $(URLPREFIX)$(cwd)/out.sdk/javatest.uno.jar + + +out.sdk: + $(MKDIR) $(subst /,$(PS),$@) + +out.sdk/class: | out.sdk + $(MKDIR) $(subst /,$(PS),$@) diff --git a/ure/source/uretest/Makefile.pln b/ure/source/uretest/Makefile.pln new file mode 100644 index 000000000000..d5062a56810d --- /dev/null +++ b/ure/source/uretest/Makefile.pln @@ -0,0 +1,315 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# The following variable must be set (see README): +#SDK_HOME := /opt/openoffice.org/basis3.1/sdk + +# The following variables can be set, if necessary (see README): +#URE_HOME := /opt/openoffice.org/ure +#GXX_INCLUDE_PATH := /usr/include/g++ +#GCCS_COMPAT := LD_PRELOAD=/lib/libgcc_s.so.1 + + +URE_HOME ?= /opt/openoffice.org/ure +GXX_INCLUDE_PATH ?= /usr/include/g++ + +.DELETE_ON_ERROR: + + +.PHONY: test +test: test-regview test-cpptest test-javatest test-javanative test-clientserver + +.PHONY: test-regview +test-regview: out.pln/services.rdb + $(URE_HOME)/bin/regview $< > /dev/null + +.PHONY: test-cpptest +test-cpptest: out.pln/cppmain.uno.so out.pln/types.rdb out.pln/services.rdb + $(GCCS_COMPAT) $(URE_HOME)/bin/uno \ + -c test.cpp.cppmain.Component -l file://$(PWD)/$< \ + -ro $(URE_HOME)/share/misc/types.rdb -ro out.pln/types.rdb \ + -ro $(URE_HOME)/share/misc/services.rdb -ro out.pln/services.rdb + +.PHONY: test-javatest +test-javatest: out.pln/javamain.uno.jar out.pln/types.rdb out.pln/services.rdb + $(GCCS_COMPAT) $(URE_HOME)/bin/uno \ + -c test.java.javamain.Component -l file://$(PWD)/$< \ + -ro $(URE_HOME)/share/misc/types.rdb -ro out.pln/types.rdb \ + -ro $(URE_HOME)/share/misc/services.rdb -ro out.pln/services.rdb + +.PHONY: test-javanative +test-javanative: out.pln/runner.jar out.pln/javanative.jar \ + out.pln/javanative.rc out.pln/services.rdb out.pln/types.rdb + $(GCCS_COMPAT) LD_LIBRARY_PATH=$(URE_HOME)/lib java \ + -jar out.pln/runner.jar file://$(URE_HOME)/share/java/ \ + file://$(PWD)/out.pln/javanative.jar \ + file://$(PWD)/out.pln/javanative.rc + +.PHONY: test-clientserver +test-clientserver: out.pln/cppserver.uno.so out.pln/runner.jar \ + out.pln/javaclient.jar + $(GCCS_COMPAT) $(URE_HOME)/bin/uno -c test.cpp.cppserver.Component \ + -l file://$(PWD)/out.pln/cppserver.uno.so \ + -ro $(URE_HOME)/share/misc/types.rdb -ro out.pln/types.rdb \ + -ro $(URE_HOME)/share/misc/services.rdb \ + -u 'uno:pipe,name=ure_test;urp;server' --singleaccept & + sleep 5 && \ + java -jar out.pln/runner.jar file://$(URE_HOME)/share/java/ \ + file://$(PWD)/out.pln/javaclient.jar \ + 'uno:pipe,name=ure_test;urp;server' + + +.PHONY: clean +clean: + rm -rf out.pln + + +out.pln/cppmain.uno.so: out.pln/cppmain.o version.map | out.pln \ + out.pln/lib/libuno_cppu.so out.pln/lib/libuno_cppuhelpergcc3.so \ + out.pln/lib/libuno_sal.so out.pln/lib/libuno_salhelpergcc3.so \ + out.pln/lib/libstlport_gcc.so + g++ -shared -o $@ -Wl,-z,defs -Wl,--fatal-warnings \ + -Wl,--version-script=version.map $< -Lout.pln/lib -luno_cppu \ + -luno_cppuhelpergcc3 -luno_sal -luno_salhelpergcc3 -lstlport_gcc + +out.pln/cppmain.o: cppmain.cc out.pln/cpputypes.cppumaker.flag \ + out.pln/types.cppumaker.flag | out.pln + g++ -c -o $@ -fpic -Wall -Wno-ctor-dtor-privacy -I $(SDK_HOME)/include/stl \ + -I $(SDK_HOME)/include -I out.pln/include/cpputypes \ + -I out.pln/include/types -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) -DLINUX -DUNX $< + + +out.pln/cpptest.uno.so: out.pln/cpptest.o version.map | out.pln \ + out.pln/lib/libuno_cppu.so out.pln/lib/libuno_cppuhelpergcc3.so \ + out.pln/lib/libuno_sal.so + g++ -shared -o $@ -Wl,-z,defs -Wl,--fatal-warnings \ + -Wl,--version-script=version.map $< -Lout.pln/lib -luno_cppu \ + -luno_cppuhelpergcc3 -luno_sal + +out.pln/cpptest.o: cpptest.cc out.pln/cpputypes.cppumaker.flag \ + out.pln/types.cppumaker.flag | out.pln + g++ -c -o $@ -fpic -Wall -Wno-ctor-dtor-privacy -I $(SDK_HOME)/include/stl \ + -I $(SDK_HOME)/include -I out.pln/include/cpputypes \ + -I out.pln/include/types -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) -DLINUX -DUNX $< + + +out.pln/cppserver.uno.so: out.pln/cppserver.o version.map | out.pln \ + out.pln/lib/libuno_cppu.so out.pln/lib/libuno_cppuhelpergcc3.so \ + out.pln/lib/libuno_sal.so + g++ -shared -o $@ -Wl,-z,defs -Wl,--fatal-warnings \ + -Wl,--version-script=version.map $< -Lout.pln/lib -luno_cppu \ + -luno_cppuhelpergcc3 -luno_sal + +out.pln/cppserver.o: cppserver.cc out.pln/cpputypes.cppumaker.flag \ + out.pln/types.cppumaker.flag | out.pln + g++ -c -o $@ -fpic -Wall -Wno-ctor-dtor-privacy -I $(SDK_HOME)/include/stl \ + -I $(SDK_HOME)/include -I out.pln/include/cpputypes \ + -I out.pln/include/types -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) -DLINUX -DUNX $< + + +out.pln/cpputypes.cppumaker.flag: | out.pln + LD_LIBRARY_PATH=$(URE_HOME)/lib $(SDK_HOME)/bin/cppumaker \ + -O./out.pln/include/cpputypes \ + '-Tcom.sun.star.lang.DisposedException;com.sun.star.lang.EventObject;com.sun.star.lang.XMain;com.sun.star.lang.XMultiComponentFactory;com.sun.star.lang.XMultiServiceFactory;com.sun.star.lang.XSingleComponentFactory;com.sun.star.lang.XSingleServiceFactory;com.sun.star.lang.XTypeProvider;com.sun.star.registry.XRegistryKey;com.sun.star.uno.DeploymentException;com.sun.star.uno.Exception;com.sun.star.uno.RuntimeException;com.sun.star.uno.XAggregation;com.sun.star.uno.XComponentContext;com.sun.star.uno.XCurrentContext;com.sun.star.uno.XInterface;com.sun.star.uno.XWeak' \ + -B/UCR $(URE_HOME)/share/misc/types.rdb + touch $@ + +out.pln/types.cppumaker.flag: out.pln/types.rdb | out.pln + LD_LIBRARY_PATH=$(URE_HOME)/lib $(SDK_HOME)/bin/cppumaker \ + -O./out.pln/include/types -B/UCR $< \ + -X$(URE_HOME)/share/misc/types.rdb + touch $@ + + +out.pln/javamain.uno.jar: \ + out.pln/class/javamain/test/java/javamain/JavaMain.class \ + out.pln/javamain.mf | out.pln + jar cfm $@ out.pln/javamain.mf -C out.pln/class/javamain test + +out.pln/javamain.mf: javamain.mf.template | out.pln + sed -e 's~^Class-Path:$$~& tester.jar~' \ + -e 's~^UNO-Type-Path:$$~& types.jar~' $< > $@ + +out.pln/class/javamain/test/java/javamain/JavaMain.class: JavaMain.java \ + out.pln/tester.jar | out.pln/class + rm -rf out.pln/class/javamain + mkdir out.pln/class/javamain + javac -classpath \ + $(URE_HOME)/share/java/jurt.jar:$(URE_HOME)/share/java/ridl.jar:out.pln/tester.jar \ + -sourcepath . -d out.pln/class/javamain $< + + +out.pln/runner.jar: out.pln/class/runner/test/java/runner/Runner.class \ + out.pln/runner.mf | out.pln + jar cfm $@ out.pln/runner.mf -C out.pln/class/runner test + +out.pln/runner.mf: runner.mf.template | out.pln + sed -e \ + 's~^Class-Path:$$~& file://$(URE_HOME)/share/java/unoloader.jar~' \ + -e 's~^UNO-Type-Path:$$~& ~' $< > $@ + +out.pln/class/runner/test/java/runner/Runner.class: Runner.java | out.pln/class + rm -rf out.pln/class/runner + mkdir out.pln/class/runner + javac -classpath $(URE_HOME)/share/java/unoloader.jar -sourcepath . \ + -d out.pln/class/runner $< + + +out.pln/tester.jar: out.pln/class/tester/test/java/tester/Tester.class \ + out.pln/tester.mf | out.pln + jar cfm $@ out.pln/tester.mf -C out.pln/class/tester test + +out.pln/tester.mf: tester.mf.template | out.pln + sed -e 's~^Class-Path:$$~& types.jar~' \ + -e 's~^UNO-Type-Path:$$~& types.jar~' $< > $@ + +out.pln/class/tester/test/java/tester/Tester.class: Tester.java \ + out.pln/types.jar | out.pln/class + rm -rf out.pln/class/tester + mkdir out.pln/class/tester + javac -classpath $(URE_HOME)/share/java/ridl.jar:out.pln/types.jar \ + -sourcepath . -d out.pln/class/tester $< + + +out.pln/javatest.uno.jar: \ + out.pln/class/javatest/test/java/javatest/JavaTest.class \ + out.pln/javatest.mf | out.pln + jar cfm $@ out.pln/javatest.mf -C out.pln/class/javatest test + +out.pln/javatest.mf: javatest.mf.template | out.pln + sed -e 's~^Class-Path:$$~& types.jar~' \ + -e 's~^UNO-Type-Path:$$~& types.jar~' $< > $@ + +out.pln/class/javatest/test/java/javatest/JavaTest.class: JavaTest.java \ + out.pln/types.jar | out.pln/class + rm -rf out.pln/class/javatest + mkdir out.pln/class/javatest + javac -classpath \ + $(URE_HOME)/share/java/jurt.jar:$(URE_HOME)/share/java/ridl.jar:out.pln/types.jar \ + -sourcepath . -d out.pln/class/javatest $< + + +out.pln/javanative.jar: \ + out.pln/class/javanative/test/java/javanative/JavaNative.class \ + out.pln/javanative.mf | out.pln + jar cfm $@ out.pln/javanative.mf -C out.pln/class/javanative test + +out.pln/javanative.mf: javanative.mf.template | out.pln + sed -e 's~^Class-Path:$$~& tester.jar~' \ + -e 's~^UNO-Type-Path:$$~& types.jar~' $< > $@ + +out.pln/class/javanative/test/java/javanative/JavaNative.class: \ + JavaNative.java out.pln/tester.jar | out.pln/class + rm -rf out.pln/class/javanative + mkdir out.pln/class/javanative + javac -classpath \ + $(URE_HOME)/share/java/juh.jar:$(URE_HOME)/share/java/ridl.jar:out.pln/tester.jar \ + -sourcepath . -d out.pln/class/javanative $< + +out.pln/javanative.rc: | out.pln + echo 'URE_INTERNAL_LIB_DIR=$${file\u003A//$(URE_HOME)/lib/unorc:URE_INTERNAL_LIB_DIR}' > $@ + echo 'URE_INTERNAL_JAVA_DIR=$${file\u003A//$(URE_HOME)/lib/unorc:URE_INTERNAL_JAVA_DIR}' >> $@ + echo 'UNO_TYPES=$${file\u003A//$(URE_HOME)/lib/unorc:UNO_TYPES} file://$(PWD)/out.pln/types.rdb' >> $@ + echo 'UNO_SERVICES=$${file\u003A//$(URE_HOME)/lib/unorc:UNO_SERVICES} file://$(PWD)/out.pln/services.rdb' >> $@ + + +out.pln/javaclient.jar: \ + out.pln/class/javaclient/test/java/javaclient/JavaClient.class \ + out.pln/javaclient.mf | out.pln + jar cfm $@ out.pln/javaclient.mf -C out.pln/class/javaclient test + +out.pln/javaclient.mf: javaclient.mf.template | out.pln + sed -e 's~^Class-Path:$$~& types.jar~' \ + -e 's~^UNO-Type-Path:$$~& types.jar~' $< > $@ + +out.pln/class/javaclient/test/java/javaclient/JavaClient.class: \ + JavaClient.java out.pln/types.jar | out.pln/class + rm -rf out.pln/class/javaclient + mkdir out.pln/class/javaclient + javac -classpath \ + $(URE_HOME)/share/java/juh.jar:$(URE_HOME)/share/java/ridl.jar:out.pln/types.jar \ + -sourcepath . -d out.pln/class/javaclient $< + + +out.pln/types.jar: out.pln/types.javamaker.flag out.pln/types.mf | out.pln + jar cfm $@ out.pln/types.mf -C out.pln/class/types test + +out.pln/types.mf: types.mf.template | out.pln + sed -e 's~^Class-Path:$$~& ~' -e 's~^UNO-Type-Path:$$~& \<\>~' $< > $@ + +out.pln/types.javamaker.flag: out.pln/types.rdb | out.pln out.pln/class + rm -rf out.pln/class/types + LD_LIBRARY_PATH=$(URE_HOME)/lib $(SDK_HOME)/bin/javamaker \ + -O./out.pln/class/types -B/UCR $< -X$(URE_HOME)/share/misc/types.rdb + touch $@ + + +out.pln/types.rdb: out.pln/types.urd | out.pln + $(URE_HOME)/bin/regmerge $@ /UCR $< + +out.pln/types.urd: types.idl | out.pln + LD_LIBRARY_PATH=$(URE_HOME)/lib $(SDK_HOME)/bin/idlc -O$(@D) \ + -I$(SDK_HOME)/idl -cid -we $< + + +out.pln/services.rdb: out.pln/cpptest.uno.so out.pln/javatest.uno.jar | out.pln + rm -f $@ + $(URE_HOME)/bin/regcomp -register -r $@ \ + -c file://$(PWD)/out.pln/cpptest.uno.so + $(URE_HOME)/bin/regcomp -register \ + -br $(URE_HOME)/share/misc/types.rdb \ + -br $(URE_HOME)/share/misc/services.rdb -r $@ \ + -c file://$(PWD)/out.pln/javatest.uno.jar + + +out.pln/lib/libuno_cppu.so: | out.pln/lib + ln -fs $(URE_HOME)/lib/libuno_cppu.so.3 $@ + +out.pln/lib/libuno_cppuhelpergcc3.so: | out.pln/lib + ln -fs $(URE_HOME)/lib/libuno_cppuhelpergcc3.so.3 $@ + +out.pln/lib/libuno_sal.so: | out.pln/lib + ln -fs $(URE_HOME)/lib/libuno_sal.so.3 $@ + +out.pln/lib/libuno_salhelpergcc3.so: | out.pln/lib + ln -fs $(URE_HOME)/lib/libuno_salhelpergcc3.so.3 $@ + +out.pln/lib/libstlport_gcc.so: | out.pln/lib + ln -fs $(URE_HOME)/lib/libstlport_gcc.so $@ + + +out.pln: + mkdir $@ + +out.pln/class: | out.pln + mkdir $@ + +out.pln/lib: | out.pln + mkdir $@ diff --git a/ure/source/uretest/README b/ure/source/uretest/README new file mode 100644 index 000000000000..9545667c96bf --- /dev/null +++ b/ure/source/uretest/README @@ -0,0 +1,115 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +This directory contains test files for the UNO Runtime Environment (URE) as well +as the Makefile and Makefile.pln makefiles. To execute the makefiles, you need +GNU make 3.80 or later. + + +Makefile +-------- + +Before you execute Makefile, you need to configure the Software Development Kit +(SDK) environment to work with a URE installation, a C++ compiler, and a JDK. +For more information, read the .../docs/install.html file in the SDK +installation. + +NOTE: On Linux x86, if the Makefile accesses a GCC that is incompatible with the +GCC that was used to build the URE, use the GCCS_COMPAT environment variable as +a workaround. For more details, see the UDK README file. + + +Makefile.pln +------------ + +You can only run Makefile.pln on Linux x86. You do not need to configure your +SDK environment to use this makefile, however, you do need to set the following +environment variables: + +- SDK_HOME +Points to the base directory of an OpenOffice.org SDK so that you can access UNO +programming tools and files that are not part of the URE. For example, idlc, +cppumaker, javamaker, UNOIDL files, and C++ headers. + +- PATH +Points to a GCC installation (including g++) as well as a JDK installation that +contains the java, javac, and jar executables. For the minimum version +requirements, see the SDK Installation Guide ($SDK_HOME/docs/install.html). + +- URE_HOME (optional) +Overwrites the default URE location, that is, /opt/openoffice.org/ure. + +- GXX_INCLUDE_PATH (optional) +Overwrites the default location of the GCC C++ headers (/usr/include/g++). This +information is needed by the STLport included in the URE. + +- GCCS_COMPAT (optional) +Fixes incompatibility issues between the GCC that was used to build the URE and +the GCC that Makefile.pln accesses. For more details, see the UDK README file. + + +Tests +----- + +Makefile and Makefile.pln can execute the following tests: + +- test-cpptest +Builds a C++ UNO component, cppmain.uno, and runs the component with the uno +executable. The component first attempts to instantiate all the UNO services +and singletons that are part of the URE installation. The component then tries +to instantiate and to call another C++ UNO component (ccptest.uno) as well as a +Java UNO component (javatest.uno). The test completes when these components +throw a special exception that is caught by cppmain.uno. + +- test-javatest +Builds a Java UNO component, javamain.uno, and runs the component with the uno +executable. The component tries to instantiate and to call a C++ UNO component +(cpptest.uno) as well as a Java UNO component (javatest.uno). The test +completes when these components throw a special exception that is caught by +javamain.uno. + +- test-javanative +Builds a Java UNO application, javanative.jar, and runs the application with the +java executable. The application bootstraps a native UNO environment, and then +tries to instantiate and to call a C++ UNO component (cpptest.uno) as well as a +Java UNO component( javatest.uno). The test completes when these components +throw a special exception that is caught by javanative.jar. + +- test-clientserver +Builds a server C++ UNO component, cppserver.uno, and a Java UNO application, +javaclient.uno. The uno executable runs the cppserver.uno component which +listens on a pipe connection. The java executable runs the javaclient.uno +component which connects to the server after a five second pause so that the +server has enough time to start. + +- test-regview (Makefile.pln only) +Checks that the regview executable of the URE installation works reliably. + +NOTE: The files that are generated when Makefile and Makefile.pln execute are +saved to different local directories. Makefile outputs the generated files to +./out.sdk whereas Makefile.pln outputs the files to ./out.pln. diff --git a/ure/source/uretest/Runner.java b/ure/source/uretest/Runner.java new file mode 100644 index 000000000000..dc6abcabd0ce --- /dev/null +++ b/ure/source/uretest/Runner.java @@ -0,0 +1,41 @@ +/************************************************************************* + * + * 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 test.java.runner; + +import java.net.URL; +import com.sun.star.lib.unoloader.UnoLoader; + +public final class Runner { + public static void main(String[] arguments) throws Exception { + String[] args = new String[arguments.length - 2]; + System.arraycopy(arguments, 2, args, 0, args.length); + UnoLoader.execute(new URL(arguments[0]), new URL(arguments[1]), args); + } + + private Runner() {} +} diff --git a/ure/source/uretest/Tester.java b/ure/source/uretest/Tester.java new file mode 100644 index 000000000000..39fd9545987e --- /dev/null +++ b/ure/source/uretest/Tester.java @@ -0,0 +1,55 @@ +/************************************************************************* + * + * 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 test.java.tester; + +import com.sun.star.uno.XComponentContext; +import test.types.CppTest; +import test.types.JavaTest; +import test.types.TestException; +import test.types.XTest; + +public final class Tester { + public static void test(XComponentContext context) { + testService(CppTest.create(context), CppTest.class.getName()); + testService(JavaTest.create(context), JavaTest.class.getName()); + } + + private static void testService(XTest test, String name) { + boolean ok = false; + try { + test.throwException(); + } catch (TestException e) { + ok = true; + } + if (!ok) { + throw new RuntimeException(name + ".throwException failed"); + } + } + + private Tester() {} +} diff --git a/ure/source/uretest/cppmain.cc b/ure/source/uretest/cppmain.cc new file mode 100644 index 000000000000..0be81b637053 --- /dev/null +++ b/ure/source/uretest/cppmain.cc @@ -0,0 +1,292 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include "sal/config.h" + +#include <cstddef> +#include <functional> +#include <memory> +#include <new> +#include <hash_map> + +#include "com/sun/star/lang/XMain.hpp" +#include "com/sun/star/lang/XMultiComponentFactory.hpp" +#include "com/sun/star/uno/Exception.hpp" +#include "com/sun/star/uno/Reference.hxx" +#include "com/sun/star/uno/RuntimeException.hpp" +#include "com/sun/star/uno/Sequence.hxx" +#include "com/sun/star/uno/XComponentContext.hpp" +#include "com/sun/star/uno/XInterface.hpp" +#include "cppuhelper/factory.hxx" +#include "cppuhelper/implbase1.hxx" +#include "cppuhelper/implementationentry.hxx" +#include "cppuhelper/interfacecontainer.hxx" +#include "cppuhelper/unourl.hxx" +#include "cppuhelper/weak.hxx" +#include "osl/mutex.hxx" +#include "osl/thread.h" +#include "rtl/malformeduriexception.hxx" +#include "rtl/string.h" +#include "rtl/ustrbuf.hxx" +#include "rtl/ustring.h" +#include "rtl/ustring.hxx" +#include "sal/types.h" +#include "salhelper/simplereferenceobject.hxx" +#include "uno/current_context.hxx" +#include "uno/environment.h" +#include "uno/lbnames.h" + +#include "test/types/CppTest.hpp" +#include "test/types/JavaTest.hpp" +#include "test/types/TestException.hpp" +#include "test/types/XTest.hpp" + +namespace css = ::com::sun::star; + +namespace { + +class Service: public ::cppu::WeakImplHelper1< ::css::lang::XMain > { +public: + explicit Service( + ::css::uno::Reference< ::css::uno::XComponentContext > const & context): + context_(context) {} + + virtual ::sal_Int32 SAL_CALL run( + ::css::uno::Sequence< ::rtl::OUString > const &) + throw (::css::uno::RuntimeException); + +private: + Service(Service &); // not defined + void operator =(Service &); // not defined + + virtual ~Service() {} + + void test( + ::css::uno::Reference< test::types::XTest > const & test, + ::rtl::OUString const & name); + + ::css::uno::Reference< ::css::uno::XComponentContext > context_; +}; + +::sal_Int32 Service::run(::css::uno::Sequence< ::rtl::OUString > const &) + throw (::css::uno::RuntimeException) +{ + osl_getThreadIdentifier(0); // check for sal + (new salhelper::SimpleReferenceObject)->release(); // check for salhelper + css::uno::getCurrentContext(); // check for cppu + try { // check for cppuhelper + std::auto_ptr< cppu::UnoUrl > dummy(new cppu::UnoUrl(rtl::OUString())); + } catch (rtl::MalformedUriException &) {} + { // check for stlport + osl::Mutex m; + std::auto_ptr< cppu::OMultiTypeInterfaceContainerHelperVar< + int, std::hash< int >, std::equal_to< int > > > dummy( + new cppu::OMultiTypeInterfaceContainerHelperVar< + int, std::hash< int >, std::equal_to< int > >(m)); + } + static char const * const services[] = { + "com.sun.star.beans.Introspection", + "com.sun.star.bridge.Bridge", + "com.sun.star.bridge.BridgeFactory", + "com.sun.star.bridge.IiopBridge", + "com.sun.star.bridge.UnoUrlResolver", + "com.sun.star.bridge.UrpBridge", + "com.sun.star.connection.Acceptor", + "com.sun.star.connection.Connector", + "com.sun.star.io.DataInputStream", + "com.sun.star.io.DataOutputStream", + "com.sun.star.io.MarkableInputStream", + "com.sun.star.io.MarkableOutputStream", + "com.sun.star.io.ObjectInputStream", + "com.sun.star.io.ObjectOutputStream", + "com.sun.star.io.Pipe", + "com.sun.star.io.Pump", + "com.sun.star.io.TextInputStream", + "com.sun.star.io.TextOutputStream", + "com.sun.star.java.JavaVirtualMachine", + "com.sun.star.lang.MultiServiceFactory", + "com.sun.star.lang.RegistryServiceManager", + "com.sun.star.lang.ServiceManager", + "com.sun.star.loader.Java", + "com.sun.star.loader.Java2", + "com.sun.star.loader.SharedLibrary", + "com.sun.star.reflection.CoreReflection", + "com.sun.star.reflection.ProxyFactory", + "com.sun.star.reflection.TypeDescriptionManager", + "com.sun.star.reflection.TypeDescriptionProvider", + "com.sun.star.registry.ImplementationRegistration", + "com.sun.star.registry.NestedRegistry", + "com.sun.star.registry.SimpleRegistry", + "com.sun.star.script.Converter", + "com.sun.star.script.Invocation", + "com.sun.star.script.InvocationAdapterFactory", + "com.sun.star.security.AccessController", + "com.sun.star.security.Policy", + "com.sun.star.uno.NamingService", + "com.sun.star.uri.ExternalUriReferenceTranslator", + "com.sun.star.uri.UriReferenceFactory", + "com.sun.star.uri.UriSchemeParser_vndDOTsunDOTstarDOTscript", + "com.sun.star.uri.VndSunStarPkgUrlReferenceFactory" + // "com.sun.star.beans.PropertyBag", + // "com.sun.star.beans.PropertySet", + // "com.sun.star.bridge.OleApplicationRegistration", + // "com.sun.star.bridge.OleBridgeSupplier", + // "com.sun.star.bridge.OleBridgeSupplier2", + // "com.sun.star.bridge.OleBridgeSupplierVar1", + // "com.sun.star.bridge.OleObjectFactory", + // "com.sun.star.bridge.oleautomation.ApplicationRegistration", + // "com.sun.star.bridge.oleautomation.BridgeSupplier", + // "com.sun.star.bridge.oleautomation.Factory", + // "com.sun.star.loader.Dynamic", + // "com.sun.star.registry.DefaultRegistry", + // "com.sun.star.script.AllListenerAdapter", + // "com.sun.star.script.Engine", + // "com.sun.star.script.JavaScript", + // "com.sun.star.test.TestFactory", + // "com.sun.star.util.BootstrapMacroExpander", + // "com.sun.star.util.MacroExpander", + // "com.sun.star.util.logging.Logger", + // "com.sun.star.util.logging.LoggerRemote" + }; + ::css::uno::Reference< ::css::lang::XMultiComponentFactory > manager( + context_->getServiceManager()); + if (!manager.is()) { + throw ::css::uno::RuntimeException( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("no service manager")), + static_cast< ::cppu::OWeakObject * >(this)); + } + for (::std::size_t i = 0; i < sizeof services / sizeof services[0]; ++i) { + ::css::uno::Reference< ::css::uno::XInterface > instance; + try { + instance = manager->createInstanceWithContext( + ::rtl::OUString::createFromAscii(services[i]), context_); + } catch (::css::uno::RuntimeException &) { + throw; + } catch (::css::uno::Exception &) { + throw ::css::uno::RuntimeException( + ::rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("error creating instance")), + static_cast< ::cppu::OWeakObject * >(this)); + } + if (!instance.is()) { + throw ::css::uno::RuntimeException( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("no instance")), + static_cast< ::cppu::OWeakObject * >(this)); + } + } + static char const * const singletons[] = { + "com.sun.star.util.theMacroExpander" }; + for (::std::size_t i = 0; i < sizeof singletons / sizeof singletons[0]; ++i) + { + ::rtl::OUStringBuffer b; + b.appendAscii(RTL_CONSTASCII_STRINGPARAM("/singletons/")); + b.appendAscii(singletons[i]); + ::css::uno::Reference< ::css::uno::XInterface > instance( + context_->getValueByName(b.makeStringAndClear()), + ::css::uno::UNO_QUERY_THROW); + } + test( + ::test::types::CppTest::create(context_), + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test.types.CppTest"))); + test( + ::test::types::JavaTest::create(context_), + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test.types.JavaTest"))); + return 0; +} + +void Service::test( + ::css::uno::Reference< test::types::XTest > const & test, + ::rtl::OUString const & name) +{ + bool ok = false; + try { + test->throwException(); + } catch (::test::types::TestException &) { + ok = true; + } + if (!ok) { + throw ::css::uno::RuntimeException( + (name + + ::rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM(".throwException failed"))), + static_cast< ::cppu::OWeakObject * >(this)); + } +} + +namespace CppMain { + +::css::uno::Reference< ::css::uno::XInterface > create( + ::css::uno::Reference< ::css::uno::XComponentContext > const & context) + SAL_THROW((::css::uno::Exception)) +{ + try { + return static_cast< ::cppu::OWeakObject * >(new Service(context)); + } catch (::std::bad_alloc &) { + throw ::css::uno::RuntimeException( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("std::bad_alloc")), + ::css::uno::Reference< ::css::uno::XInterface >()); + } +} + +::rtl::OUString getImplementationName() { + return ::rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("test.cpp.cppmain.Component")); +} + +::css::uno::Sequence< ::rtl::OUString > getSupportedServiceNames() { + return ::css::uno::Sequence< ::rtl::OUString >(); +} + +} + +::cppu::ImplementationEntry entries[] = { + { CppMain::create, CppMain::getImplementationName, + CppMain::getSupportedServiceNames, ::cppu::createSingleComponentFactory, + 0, 0 }, + { 0, 0, 0, 0, 0, 0 } }; + +} + +extern "C" ::sal_Bool SAL_CALL component_writeInfo( + void * serviceManager, void * registryKey) +{ + return ::cppu::component_writeInfoHelper( + serviceManager, registryKey, entries); +} + +extern "C" void * SAL_CALL component_getFactory( + char const * implName, void * serviceManager, void * registryKey) +{ + return ::cppu::component_getFactoryHelper( + implName, serviceManager, registryKey, entries); +} + +extern "C" void SAL_CALL component_getImplementationEnvironment( + char const ** envTypeName, ::uno_Environment **) +{ + *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} diff --git a/ure/source/uretest/cppserver.cc b/ure/source/uretest/cppserver.cc new file mode 100644 index 000000000000..e4e72e3933c7 --- /dev/null +++ b/ure/source/uretest/cppserver.cc @@ -0,0 +1,125 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include "sal/config.h" + +#include <new> + +#include "com/sun/star/uno/Exception.hpp" +#include "com/sun/star/uno/Reference.hxx" +#include "com/sun/star/uno/RuntimeException.hpp" +#include "com/sun/star/uno/Sequence.hxx" +#include "com/sun/star/uno/XComponentContext.hpp" +#include "com/sun/star/uno/XInterface.hpp" +#include "cppuhelper/factory.hxx" +#include "cppuhelper/implbase1.hxx" +#include "cppuhelper/implementationentry.hxx" +#include "cppuhelper/weak.hxx" +#include "rtl/ustring.h" +#include "rtl/ustring.hxx" +#include "sal/types.h" +#include "uno/environment.h" +#include "uno/lbnames.h" + +#include "test/types/Data.hpp" +#include "test/types/XServer.hpp" + +namespace css = ::com::sun::star; + +namespace { + +class Service: public ::cppu::WeakImplHelper1< ::test::types::XServer > { +public: + Service() {} + + virtual ::test::types::Data SAL_CALL getData() + throw (::css::uno::RuntimeException) + { + return ::test::types::Data( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Hello")), 42); + } + +private: + Service(Service &); // not defined + void operator =(Service &); // not defined + + virtual ~Service() {} +}; + +namespace CppServer { + +::css::uno::Reference< ::css::uno::XInterface > create( + ::css::uno::Reference< ::css::uno::XComponentContext > const &) + SAL_THROW((::css::uno::Exception)) +{ + try { + return static_cast< ::cppu::OWeakObject * >(new Service); + } catch (::std::bad_alloc &) { + throw ::css::uno::RuntimeException( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("std::bad_alloc")), + ::css::uno::Reference< ::css::uno::XInterface >()); + } +} + +::rtl::OUString getImplementationName() { + return ::rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("test.cpp.cppserver.Component")); +} + +::css::uno::Sequence< ::rtl::OUString > getSupportedServiceNames() { + return ::css::uno::Sequence< ::rtl::OUString >(); +} + +} + +::cppu::ImplementationEntry entries[] = { + { CppServer::create, CppServer::getImplementationName, + CppServer::getSupportedServiceNames, ::cppu::createSingleComponentFactory, + 0, 0 }, + { 0, 0, 0, 0, 0, 0 } }; + +} + +extern "C" ::sal_Bool SAL_CALL component_writeInfo( + void * serviceManager, void * registryKey) +{ + return ::cppu::component_writeInfoHelper( + serviceManager, registryKey, entries); +} + +extern "C" void * SAL_CALL component_getFactory( + char const * implName, void * serviceManager, void * registryKey) +{ + return ::cppu::component_getFactoryHelper( + implName, serviceManager, registryKey, entries); +} + +extern "C" void SAL_CALL component_getImplementationEnvironment( + char const ** envTypeName, ::uno_Environment **) +{ + *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} diff --git a/ure/source/uretest/cpptest.cc b/ure/source/uretest/cpptest.cc new file mode 100644 index 000000000000..c93050bd836b --- /dev/null +++ b/ure/source/uretest/cpptest.cc @@ -0,0 +1,125 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include "sal/config.h" + +#include "com/sun/star/uno/Exception.hpp" +#include "com/sun/star/uno/Reference.hxx" +#include "com/sun/star/uno/RuntimeException.hpp" +#include "com/sun/star/uno/Sequence.hxx" +#include "com/sun/star/uno/XComponentContext.hpp" +#include "com/sun/star/uno/XInterface.hpp" +#include "cppuhelper/factory.hxx" +#include "cppuhelper/implbase1.hxx" +#include "cppuhelper/implementationentry.hxx" +#include "cppuhelper/weak.hxx" +#include "rtl/ustring.h" +#include "rtl/ustring.hxx" +#include "sal/types.h" +#include "uno/environment.h" +#include "uno/lbnames.h" + +#include "test/types/TestException.hpp" +#include "test/types/XTest.hpp" + +namespace css = com::sun::star; + +namespace { + +class Service: public cppu::WeakImplHelper1< test::types::XTest > { +public: + Service() {} + + virtual void SAL_CALL throwException() + throw (test::types::TestException, css::uno::RuntimeException) + { + throw test::types::TestException( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")), + static_cast< cppu::OWeakObject * >(this)); + } + +private: + Service(Service &); // not defined + void operator =(Service &); // not defined + + virtual ~Service() {} +}; + +namespace CppTest { + +css::uno::Reference< css::uno::XInterface > create( + css::uno::Reference< css::uno::XComponentContext > const &) + SAL_THROW((css::uno::Exception)) +{ + try { + return static_cast< cppu::OWeakObject * >(new Service); + } catch (std::bad_alloc &) { + throw css::uno::RuntimeException( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("std::bad_alloc")), + css::uno::Reference< css::uno::XInterface >()); + } +} + +rtl::OUString getImplementationName() { + return rtl::OUString( + RTL_CONSTASCII_USTRINGPARAM("test.cpp.cpptest.Component")); +} + +css::uno::Sequence< rtl::OUString > getSupportedServiceNames() { + rtl::OUString s(RTL_CONSTASCII_USTRINGPARAM("test.types.CppTest")); + return css::uno::Sequence< rtl::OUString >(&s, 1); +} + +} + +cppu::ImplementationEntry entries[] = { + { CppTest::create, CppTest::getImplementationName, + CppTest::getSupportedServiceNames, cppu::createSingleComponentFactory, 0, + 0 }, + { 0, 0, 0, 0, 0, 0 } }; + +} + +extern "C" sal_Bool SAL_CALL component_writeInfo( + void * serviceManager, void * registryKey) +{ + return cppu::component_writeInfoHelper( + serviceManager, registryKey, entries); +} + +extern "C" void * SAL_CALL component_getFactory( + char const * implName, void * serviceManager, void * registryKey) +{ + return cppu::component_getFactoryHelper( + implName, serviceManager, registryKey, entries); +} + +extern "C" void SAL_CALL component_getImplementationEnvironment( + char const ** envTypeName, uno_Environment **) +{ + *envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} diff --git a/ure/source/uretest/javaclient.mf.template b/ure/source/uretest/javaclient.mf.template new file mode 100644 index 000000000000..745d23afbc2f --- /dev/null +++ b/ure/source/uretest/javaclient.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Main-Class: test/java/javaclient/JavaClient +Sealed: true +UNO-Type-Path: diff --git a/ure/source/uretest/javamain.mf.template b/ure/source/uretest/javamain.mf.template new file mode 100644 index 000000000000..8ef4aa210c7c --- /dev/null +++ b/ure/source/uretest/javamain.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Sealed: true +UNO-Type-Path: +RegistrationClassName: test.java.javamain.JavaMain diff --git a/ure/source/uretest/javanative.mf.template b/ure/source/uretest/javanative.mf.template new file mode 100644 index 000000000000..bb1103e025c8 --- /dev/null +++ b/ure/source/uretest/javanative.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Main-Class: test/java/javanative/JavaNative +Sealed: true +UNO-Type-Path: diff --git a/ure/source/uretest/javatest.mf.template b/ure/source/uretest/javatest.mf.template new file mode 100644 index 000000000000..8fc858aece29 --- /dev/null +++ b/ure/source/uretest/javatest.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Sealed: true +UNO-Type-Path: +RegistrationClassName: test.java.javatest.JavaTest diff --git a/ure/source/uretest/runner.mf.template b/ure/source/uretest/runner.mf.template new file mode 100644 index 000000000000..dc9c26613558 --- /dev/null +++ b/ure/source/uretest/runner.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Main-Class: test/java/runner/Runner +Sealed: true +UNO-Type-Path: diff --git a/ure/source/uretest/tester.mf.template b/ure/source/uretest/tester.mf.template new file mode 100644 index 000000000000..fc483bc7dae3 --- /dev/null +++ b/ure/source/uretest/tester.mf.template @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Class-Path: +Main-Class: test/java/tester/Tester +Sealed: true +UNO-Type-Path: diff --git a/ure/source/uretest/types.idl b/ure/source/uretest/types.idl new file mode 100644 index 000000000000..8d454801c38c --- /dev/null +++ b/ure/source/uretest/types.idl @@ -0,0 +1,52 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include "com/sun/star/uno/Exception.idl" +#include "com/sun/star/uno/XInterface.idl" + +module test { module types { + +exception TestException: com::sun::star::uno::Exception {}; + +interface XTest { + void throwException() raises (TestException); +}; + +service CppTest: XTest; + +service JavaTest: XTest; + +struct Data { + string m1; + long m2; +}; + +interface XServer { + Data getData(); +}; + +}; }; diff --git a/ure/source/uretest/types.mf.template b/ure/source/uretest/types.mf.template new file mode 100644 index 000000000000..c8fcee4b169b --- /dev/null +++ b/ure/source/uretest/types.mf.template @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Class-Path: +Sealed: true +UNO-Type-Path: diff --git a/ure/source/uretest/version.map b/ure/source/uretest/version.map new file mode 100644 index 000000000000..82a89b6b28fc --- /dev/null +++ b/ure/source/uretest/version.map @@ -0,0 +1,41 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +UDK_3_0_0 { + global: + component_getFactory; + component_getImplementationEnvironment; + component_writeInfo; + + _ZTI*; + _ZTS*; + + _ZN4_STL7num_put*; # for STLport + + local: + *; +}; |