xref: /trunk/main/ure/source/README (revision cdf0e10c)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28
29Overview of URE installation
30-----------------------------
31
32Linux x86, Solaris x86, and Solaris SPARC:
33
34/opt/openoffice.org/ure/LICENSE
35/opt/openoffice.org/ure/THIRDPARTYLICENSEREADME.html
36/opt/openoffice.org/ure/README
37/opt/openoffice.org/ure/bin/uno
38/opt/openoffice.org/ure/bin/regcomp
39/opt/openoffice.org/ure/bin/regmerge
40/opt/openoffice.org/ure/bin/regview
41/opt/openoffice.org/ure/bin/javaldx
42/opt/openoffice.org/ure/lib/libuno_cppu.so.3
43/opt/openoffice.org/ure/lib/libuno_cppuhelpergcc3.so.3  [Linux x86 only]
44/opt/openoffice.org/ure/lib/libuno_cppuhelperC52.so.3  [Solaris only]
45/opt/openoffice.org/ure/lib/libuno_purpenvhelpergcc3.so.3  [Linux x86 only]
46/opt/openoffice.org/ure/lib/libuno_purpenvhelperC52.so.3  [Solaris only]
47/opt/openoffice.org/ure/lib/libuno_sal.so.3
48/opt/openoffice.org/ure/lib/libuno_salhelpergcc3.so.3  [Linux x86 only]
49/opt/openoffice.org/ure/lib/libuno_salhelperC52.so.3  [Solaris only]
50/opt/openoffice.org/ure/lib/libstlport_gcc.so  [Linux x86 only]
51/opt/openoffice.org/ure/lib/libstlport_sunpro.so  [Solaris only]
52/opt/openoffice.org/ure/share/java/unoloader.jar
53/opt/openoffice.org/ure/share/java/juh.jar
54/opt/openoffice.org/ure/share/java/jurt.jar
55/opt/openoffice.org/ure/share/java/ridl.jar
56/opt/openoffice.org/ure/share/misc/types.rdb
57/opt/openoffice.org/ure/share/misc/services.rdb
58/opt/openoffice.org/ure/lib/libxml2.so.2  [external]
59/opt/openoffice.org/ure/lib/libgcc_s.so.1  [external; Linux x86 only]
60/opt/openoffice.org/ure/lib/libstdc++.so.6  [external; Linux x86 only]
61/opt/openoffice.org/ure/bin/startup.sh  [private]
62/opt/openoffice.org/ure/bin/uno.bin  [private]
63/opt/openoffice.org/ure/bin/regcomp.bin  [private]
64/opt/openoffice.org/ure/lib/unorc  [private]
65/opt/openoffice.org/ure/lib/libreg.so.3  [private]
66/opt/openoffice.org/ure/lib/libstore.so.3  [private]
67/opt/openoffice.org/ure/lib/libxmlreader.so  [private]
68/opt/openoffice.org/ure/lib/libjvmaccessgcc3.so.3  [private; Linux x86 only]
69/opt/openoffice.org/ure/lib/libjvmaccessC52.so.3  [private; Solaris only]
70/opt/openoffice.org/ure/lib/libjvmfwk.so.3  [private]
71/opt/openoffice.org/ure/lib/sunjavaplugin.so  [private]
72/opt/openoffice.org/ure/lib/JREProperties.class  [private]
73/opt/openoffice.org/ure/lib/jvmfwk3rc  [private]
74/opt/openoffice.org/ure/lib/libgcc3_uno.so  [private; Linux x86 only]
75/opt/openoffice.org/ure/lib/libsunpro5_uno.so  [private; Solaris only]
76/opt/openoffice.org/ure/lib/libjava_uno.so  [private]
77/opt/openoffice.org/ure/lib/libunsafe_uno_uno.so  [private]
78/opt/openoffice.org/ure/lib/libaffine_uno_uno.so  [private]
79/opt/openoffice.org/ure/lib/liblog_uno_uno.so  [private]
80/opt/openoffice.org/ure/lib/libjpipe.so  [private]
81/opt/openoffice.org/ure/lib/libjuh.so  [private]
82/opt/openoffice.org/ure/lib/libjuhx.so  [private]
83/opt/openoffice.org/ure/lib/acceptor.uno.so  [private]
84/opt/openoffice.org/ure/lib/binaryurp.uno.so  [private]
85/opt/openoffice.org/ure/lib/bootstrap.uno.so  [private]
86/opt/openoffice.org/ure/lib/connector.uno.so  [private]
87/opt/openoffice.org/ure/lib/introspection.uno.so  [private]
88/opt/openoffice.org/ure/lib/invocadapt.uno.so  [private]
89/opt/openoffice.org/ure/lib/invocation.uno.so  [private]
90/opt/openoffice.org/ure/lib/javaloader.uno.so  [private]
91/opt/openoffice.org/ure/lib/javavm.uno.so  [private]
92/opt/openoffice.org/ure/lib/namingservice.uno.so  [private]
93/opt/openoffice.org/ure/lib/proxyfac.uno.so  [private]
94/opt/openoffice.org/ure/lib/reflection.uno.so  [private]
95/opt/openoffice.org/ure/lib/streams.uno.so  [private]
96/opt/openoffice.org/ure/lib/textinstream.uno.so  [private]
97/opt/openoffice.org/ure/lib/textoutstream.uno.so  [private]
98/opt/openoffice.org/ure/lib/stocservices.uno.so  [private]
99/opt/openoffice.org/ure/lib/uuresolver.uno.so  [private]
100/opt/openoffice.org/ure/share/java/java_uno.jar  [private]
101/opt/openoffice.org/ure/share/misc/javavendors.xml  [private]
102
103Windows:
104
105Program Files\URE\LICENSE
106Program Files\URE\THIRDPARTYLICENSEREADME.html
107Program Files\URE\README
108Program Files\URE\bin\uno.exe
109Program Files\URE\bin\regcomp.exe
110Program Files\URE\bin\regmerge.exe
111Program Files\URE\bin\regview.exe
112Program Files\URE\bin\cppu3.dll
113Program Files\URE\bin\cppuhelper3MSC.dll
114Program Files\URE\bin\purpenvhelper3MSC.dll
115Program Files\URE\bin\sal3.dll
116Program Files\URE\bin\salhelper3MSC.dll
117Program Files\URE\bin\stlport_vc7145.dll
118Program Files\URE\java\unoloader.jar
119Program Files\URE\java\juh.jar
120Program Files\URE\java\jurt.jar
121Program Files\URE\java\ridl.jar
122Program Files\URE\misc\types.rdb
123Program Files\URE\misc\services.rdb
124Program Files\URE\bin\libxml2.dll  [external]
125Program Files\URE\bin\uno.ini  [private]
126Program Files\URE\bin\reg3.dll  [private]
127Program Files\URE\bin\store3.dll  [private]
128Program Files\URE\bin\xmlreader.dll  [private]
129Program Files\URE\bin\jvmaccess3MSC.dll  [private]
130Program Files\URE\bin\jvmfwk3.dll  [private]
131Program Files\URE\bin\sunjavaplugin.dll  [private]
132Program Files\URE\bin\JREProperties.class  [private]
133Program Files\URE\bin\jvmfwk3.ini  [private]
134Program Files\URE\bin\msci_uno.dll  [private]
135Program Files\URE\bin\java_uno.dll  [private]
136Program Files\URE\bin\cli_uno.dll [private]
137Program Files\URE\bin\unsafe_uno_uno.dll  [private]
138Program Files\URE\bin\affine_uno_uno.dll  [private]
139Program Files\URE\bin\log_uno_uno.dll  [private]
140Program Files\URE\bin\jpipe.dll  [private]
141Program Files\URE\bin\jpipx.dll  [private]
142Program Files\URE\bin\juh.dll  [private]
143Program Files\URE\bin\juhx.dll  [private]
144Program Files\URE\bin\acceptor.uno.dll  [private]
145Program Files\URE\bin\binaryurp.uno.dll  [private]
146Program Files\URE\bin\bootstrap.uno.dll  [private]
147Program Files\URE\bin\connector.uno.dll  [private]
148Program Files\URE\bin\introspection.uno.dll  [private]
149Program Files\URE\bin\invocadapt.uno.dll  [private]
150Program Files\URE\bin\invocation.uno.dll  [private]
151Program Files\URE\bin\javaloader.uno.dll  [private]
152Program Files\URE\bin\javavm.uno.dll  [private]
153Program Files\URE\bin\namingservice.uno.dll  [private]
154Program Files\URE\bin\proxyfac.uno.dll  [private]
155Program Files\URE\bin\reflection.uno.dll  [private]
156Program Files\URE\bin\streams.uno.dll  [private]
157Program Files\URE\bin\textinstream.uno.dll  [private]
158Program Files\URE\bin\textoutstream.uno.dll  [private]
159Program Files\URE\bin\stocservices.uno.dll  [private]
160Program Files\URE\bin\uuresolver.uno.dll  [private]
161Program Files\URE\bin\unicows.dll  [private]
162Program Files\URE\bin\uwinapi.dll  [private]
163Program Files\URE\java\java_uno.jar  [private]
164Program Files\URE\misc\javavendors.xml  [private]
165
166%windir%\assembly\cli_basetypes.dll [GAC]
167%windir%\assembly\cli_ure.dll [GAC]
168%windir%\assembly\cli_uretypes.dll [GAC]
169%windir%\assembly\cli_cppuhelper.dll [GAC]
170%windir%\assembly\policy.1.0.cli_basetypes.dll [GAC]
171%windir%\assembly\policy.1.0.cli_ure.dll [GAC]
172%windir%\assembly\policy.1.0.cli_uretypes.dll [GAC]
173%windir%\assembly\policy.1.0.cli_cppuhelper.dll [GAC]
174
175Files marked as [external] are included in the URE installation because the URE
176needs them and it cannot be guaranteed that they are available on a given
177system.  Applications using the URE may need those files too, so they are made
178available as non-private files of the URE installation.  However, in an ideal
179world, those files would not need to be included in the URE installation.
180
181Files marked as [private] are private to the URE installation.  To avoid
182stability issues, applications that use the URE should not access the
183functionality of these files.
184
185Files marked as [GAC] are installed in the Global Assembly Cache on Windows. The
186file path reflects the path as seen in the Explorer with the Assembly
187Cache Viewer Tool (Shfusion.dll) installed. The actual paths are different.
188
189
190Public Files in a URE Installation
191----------------------------------
192
193A URE installation contains the following public files:
194
195- uno is the executable file that runs UNO components.  For more details, see
196the SDK Developer's Guide.
197
198- regcomp, regmerge, and regview are tools that work with binary registries that
199contain UNO type or UNO service information.  For more details, see the SDK
200Developer's Guide.
201
202- javaldx is a helper program on Linux x86, Solaris x86, and Solaris SPARC that
203enables Java executables to use a Java VM, such as the Sun JDK/JRE.  Executables
204such as uno and regcomp run this helper automatically.
205
206- cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO
207runtime dynamic libraries that client code can call.  For details on the
208functionality that these libraries offer, see the "C++ Reference" section of the
209SDK HTML documentation.  The corresponding C++ header files are not in the URE,
210but rather in the SDK.
211
212-  stlport is the dynamic library of STLport 4.5, which is used in the public
213interface of cppuhelper and salhelper, and thus also has to be part of the
214public interface of the URE.  The corresponding C++ header files are not in the
215URE, but rather in the SDK.
216
217- unoloader.jar, juh.jar, jurt.jar, and ridl.jar are the public Java UNO runtime
218Java[tm] Archives (JARs) that client code can call.  For details on the
219functionality that these files offer, see the "Java UNO Runtime Reference"
220section of the SDK HTML documentation.
221
222- types.rdb and services.rdb are preconfigured UNO type and service registries.
223For more details, see the "Deploying a URE" section of this README.
224
225
226Deploying a URE
227---------------
228
229By default, the URE is installed in /opt/openoffice.org/ure on Linux x86,
230Solaris x86, and Solaris SPARC, and in Program Files\URE on Windows. If you
231want, you can override this location when you install the URE, for example, with
232rpm --relocate on Linux.  The URE is designed so that multiple instances of the
233URE can coexist on a single system in different locations.
234
235On Windows, the path to the installed URE is stored in the registry under the
236path "HKEY_CLASSES_ROOT\Software\OpenOffice.org\URE" and key "Path".
237
238
239UNO Deployment Variables
240------------------------
241
242The URE installation is preconfigured with several UNO types and UNO services.
243The available types and services are listed in the types.rdb and services.rdb
244files respectively.  The location of these files is stored by two UNO deployment
245variables, namely UNO_TYPES and UNO_SERVICES.  These variables are set up by a
246unorc or uno.ini that is private to the URE installation.  This private file
247also contains the private deployment variables URE_INTERNAL_LIB_DIR,
248URE_INTERNAL_JAVA_DIR, and URE_INTERNAL_JAVA_CLASSPATH, which are required by
249the URE.
250
251The UNO_TYPES and UNO_SERVICES variables automatically search the following
252locations for types.rdb and services.rdb files:
253
254Linux x86, Solaris x86, and Solaris SPARC:
255
256- <URE installation>/share/misc/ types.rdb and services.rdb, respectively
257- /etc/opt/ure/ types.rdb and services.rdb, respectively
258- ~/.ure/ types.rdb and services.rdb, respectively
259- any URLs listed in the public deployment variables URE_MORE_TYPES and
260  URE_MORE_SERVICES, respectively
261
262Windows:
263
264- <URE installation>\misc\ types.rdb and services.rdb, respectively
265- Documents and Settings\<User Name>\Application Data\URE\ types.rdb and
266  services.rdb, respectively
267- any URLs listed in the public deployment variables URE_MORE_TYPES and
268  URE_MORE_SERVICES, respectively
269
270NOTE: The URE on Windows does not support a system-wide deployment of additional
271types.rdb and services.rdb files.  That is, you cannot store additional
272types.rdb and services.rdb files in a Documents and Settings\All
273Users\Application Data\URE directory.
274
275The Java UNO environment needs type information in the form of Java class files
276instead of rdb files.  Additional types are searched for in any URLs listed in
277the public deployment variable URE_MORE_JAVA_TYPES.
278
279For details on how to override the UNO deployment variables, see the SDK
280Developer's Guide or go to http://udk.openoffice.org/common/man/concept/
281micro_deployment.html.
282
283If you want to deploy additional UNO types and services, use regcomp.
284
285CAUTION: Do not deploy these types and services to the types.rdb and
286services.rdb in the URE installation.
287
288
289URE Java Framework
290------------------
291
292When a URE executable, such as uno, starts a Java VM, the URE Java Framework
293searches for a suitable JDK/JRE installation.  For more information on the URE
294Java Framework, go to http://udk.openoffice.org/common/man/spec/
295javavendorextension.sxw.  The private javavendors.xml file in a URE installation
296provides preconfigured support for various JDK/JRE versions.  The private
297jvmfwk3rc or jvmfwk3.ini file specifies the location of a suitable JDK/JRE
298installation.  When an executable tries to start a Java VM, the URE searches the
299relevant Java settings file for information on a suitable JDK/JRE version.
300
301NOTE: On any platform, you can delete the javasettings_${_OS}_${_ARCH}.xml file
302if the file contains problematic stale data.
303
304By default, the URE searches for a Java settings file in the following
305locations:
306
307Linux x86, Solaris x86, and Solaris SPARC:
308
309- /etc/opt/ure/javasettings_${_OS}_${_ARCH}.xml
310- ~/.ure/javasettings_${_OS}_${_ARCH}.xml
311
312NOTE: If these files do not contain information about a JDK/JRE, the URE
313searches for a suitable JDK/JRE installation and stores the relevant information
314in the ~/.ure/javasettings_${_OS}_${_ARCH}.xml file.  If you want all users to
315access the same JDK/JRE, log on as root and copy an existing
316~/.ure/javasettings_${_OS}_${_ARCH}.xml to
317/etc/opt/ure/javasettings_${_OS}_${_ARCH}.xml.
318
319Windows:
320
321- Documents and Settings\<User Name>\Application
322  Data\URE\javasettings_${_OS}_${_ARCH}.xml
323
324NOTE: If this file does not contain information about a JDK/JRE, the URE
325searches for a suitable JDK/JRE installation and stores the relevant information
326in the Documents and Settings\<User Name>\Application
327Data\URE\javasettings_${_OS}_${_ARCH}.xml file.  The URE on Windows does not
328by default support a system-wide deployment of the Java settings file.  That is,
329you cannot store the file in a Documents and Settings\All Users\Application
330Data\URE directory.
331
332You can override these paths by setting the URE_OVERRIDE_JAVA_JFW_SHARED_DATA
333and URE_OVERRIDE_JAVA_JFW_USER_DATA deployment variables.  You can also use the
334UNO_JAVA_JFW_JREHOME deployment variable to specify the location of a JDK/JRE
335installation.  For more information on this variable, see
336http://udk.openoffice.org/common/man/spec/javavendorextension.sxw.
337
338The URE allows clients to extend the content of UNO_JAVA_JFW_CLASSPATH_URLS (see
339http://udk.openoffice.org/common/man/spec/javavendorextension.sxw):  The content
340of the public deployment variable URE_MORE_JAVA_CLASSPATH_URLS, if set, is
341added to the end of the URE's UNO_JAVA_JFW_CLASSPATH_URLS list.
342
343You might experience problems in an SDK environment that uses different JDK/JRE
344versions for the SDK and the URE.  This problem arises when the OO_SDK_JAVA_HOME
345SDK environment variable specifies a different Java VM than the Java VM that is
346used in the URE Java Framework.  See the "Installation Guide" section of the SDK
347HTML documentation to find out how to set the  OO_SDK_JAVA_HOME environment
348variable.
349
350
351GNU Compiler Collection on Linux x86
352------------------------------------
353
354On Linux x86, the URE uses libgcc_s.so.1 to run binary UNO components that were
355compiled with the GNU Compiler Collection (GCC).  The libgcc_s.so.1 corresponds
356to GCC 3.4.1 as built on a glibc 2.2.4 system.  To avoid GCC compatibility
357issues, use the same GCC version (or later) when you compile the UNO binaries.
358Otherwise, use LD_PRELOAD to replace the libgcc_s.so.1 in URE with a matching
359version.
360
361
362C++ and Java UNO Components
363---------------------------
364
365C++ UNO components run from within the uno executable can depend on an
366environment in which the public C++ UNO runtime dynamic libraries (cppu,
367cppuhelper, purpenvhelper, sal, salhelper, stlport) and the external dynamic
368libraries (libxml2 etc.) are already available (that is, on Linux x86, Solaris
369x86, and Solaris SPARC, a component dynamic library need not make sure that the
370UNO runtime dynamic libraries it needs can be found on its RPATH).
371
372Similarly, Java UNO components can depend on an environment in which the public
373Java UNO runtime JARs are already available (that is, a component JAR need not
374list in its manifest Class-Path the UNO runtime JARs it needs).
375
376If a Java UNO component requires additional UNO types, use the UNO-Type-Path
377manifest entry to specify the location of the UNO types.  The UNO-Type-Path is
378similar to the Class-Path manifest entry and can contain URLs of JARs and
379directories that contain the Java classes that represent additional UNO types.
380The UnoClassLoader evaluates the UNO-Type-Path manifest entry to ensure that the
381additional UNO types are available to the Java UNO environment.
382
383The UNO-Type-Path can have the following entries:
384
385- UNO-Type-Path:
386Current JAR does not contain UNO types.
387
388- UNO-Type-Path: <>
389Current JAR contains UNO types.
390
391- UNO-Type-Path: any/other/jar.jar yet/another/jar.jar
392Current JAR brings other JARs that contain UNO types.
393
394- UNO-Type-Path: any/other/jar.jar <> yet/another/jar.jar
395Current JAR and other JARs that the current JARs uses contain UNO types.
396
397NOTE: If you do not include the UNO-Type-Path manifest entry, the URE assumes
398that the current JAR contains UNO types.
399
400If a Java application requires the Java UNO environment, the UnoClassLoader must
401be set up to load the relevant Java classes.  For example, Runner.java in the
402uretest bundle is packed as runner.jar, which the makefiles use to launch the
403javaclient.jar application.  For more information, see
404com.sun.star.lib.unoloader.UnoClassLoader and
405com.sun.star.lib.unoloader.UnoLoader in the "Java UNO Runtime Reference" section
406of the SDK HTML documentation.
407