nss: upgrade to release 3.73
[LibreOffice.git] / ure / source / README
blobaad11505e971c1ff9e9cca2dd3d8337e9907867c
2 # This file is part of the LibreOffice project.
4 # This Source Code Form is subject to the terms of the Mozilla Public
5 # License, v. 2.0. If a copy of the MPL was not distributed with this
6 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 # This file incorporates work covered by the following license notice:
10 #   Licensed to the Apache Software Foundation (ASF) under one or more
11 #   contributor license agreements. See the NOTICE file distributed
12 #   with this work for additional information regarding copyright
13 #   ownership. The ASF licenses this file to you under the Apache
14 #   License, Version 2.0 (the "License"); you may not use this file
15 #   except in compliance with the License. You may obtain a copy of
16 #   the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 Overview of URE installation
20 -----------------------------
22 ELF platforms (Linux, Solaris, *BSD):
24 /opt/libreoffice/ure/LICENSE
25 /opt/libreoffice/ure/THIRDPARTYLICENSEREADME.html
26 /opt/libreoffice/ure/README
27 /opt/libreoffice/ure/bin/uno
28 /opt/libreoffice/ure/bin/regmerge
29 /opt/libreoffice/ure/bin/regview
30 /opt/libreoffice/ure/bin/javaldx
31 /opt/libreoffice/ure/lib/libuno_cppu.so.3
32 /opt/libreoffice/ure/lib/libuno_cppuhelpergcc3.so.3
33 /opt/libreoffice/ure/lib/libuno_purpenvhelpergcc3.so.3
34 /opt/libreoffice/ure/lib/libuno_sal.so.3
35 /opt/libreoffice/ure/lib/libuno_salhelpergcc3.so.3
36 /opt/libreoffice/ure/share/java/unoloader.jar
37 /opt/libreoffice/ure/share/java/juh.jar
38 /opt/libreoffice/ure/share/java/jurt.jar
39 /opt/libreoffice/ure/share/java/libreoffice.jar
40 /opt/libreoffice/ure/share/java/ridl.jar
41 /opt/libreoffice/ure/share/misc/types.rdb
42 /opt/libreoffice/ure/share/misc/services.rdb
43 /opt/libreoffice/ure/lib/libxml2.so.2  [external]
44 /opt/libreoffice/ure/bin/uno.bin  [private]
45 /opt/libreoffice/ure/lib/unorc  [private]
46 /opt/libreoffice/ure/lib/libreglo.so  [private]
47 /opt/libreoffice/ure/lib/libstorelo.so  [private]
48 /opt/libreoffice/ure/lib/libunoidllo.so  [private]
49 /opt/libreoffice/ure/lib/libxmlreaderlo.so  [private]
50 /opt/libreoffice/ure/lib/libjvmaccesslo.so  [private]
51 /opt/libreoffice/ure/lib/libjvmfwklo.so  [private]
52 /opt/libreoffice/ure/lib/JREProperties.class  [private]
53 /opt/libreoffice/ure/lib/jvmfwk3rc  [private]
54 /opt/libreoffice/ure/lib/libgcc3_uno.so  [private]
55 /opt/libreoffice/ure/lib/libjava_uno.so  [private]
56 /opt/libreoffice/ure/lib/libunsafe_uno_uno.so  [private]
57 /opt/libreoffice/ure/lib/libaffine_uno_uno.so  [private]
58 /opt/libreoffice/ure/lib/liblog_uno_uno.so  [private]
59 /opt/libreoffice/ure/lib/libjpipe.so  [private]
60 /opt/libreoffice/ure/lib/libjuh.so  [private]
61 /opt/libreoffice/ure/lib/libjuhx.so  [private]
62 /opt/libreoffice/ure/lib/libsal_textenclo.so  [private]
63 /opt/libreoffice/ure/lib/libacceptorlo.so  [private]
64 /opt/libreoffice/ure/lib/libbinaryurplo.so  [private]
65 /opt/libreoffice/ure/lib/libbootstraplo.so  [private]
66 /opt/libreoffice/ure/lib/libconnectorlo.so  [private]
67 /opt/libreoffice/ure/lib/libintrospectionlo.so  [private]
68 /opt/libreoffice/ure/lib/libinvocadaptlo.so  [private]
69 /opt/libreoffice/ure/lib/libinvocationlo.so  [private]
70 /opt/libreoffice/ure/lib/libjavaloaderlo.so  [private]
71 /opt/libreoffice/ure/lib/libjavavmlo.so  [private]
72 /opt/libreoffice/ure/lib/libnamingservicelo.so  [private]
73 /opt/libreoffice/ure/lib/libproxyfaclo.so  [private]
74 /opt/libreoffice/ure/lib/libreflectionlo.so  [private]
75 /opt/libreoffice/ure/lib/libstreamslo.so  [private]
76 /opt/libreoffice/ure/lib/libtextinstreamlo.so  [private]
77 /opt/libreoffice/ure/lib/libtextoutstreamlo.so  [private]
78 /opt/libreoffice/ure/lib/libstocserviceslo.so  [private]
79 /opt/libreoffice/ure/lib/libuuresolverlo.so  [private]
80 /opt/libreoffice/ure/share/java/java_uno.jar  [private]
81 /opt/libreoffice/ure/share/misc/javavendors.xml  [private]
83 Windows:
85 Program Files\URE\LICENSE
86 Program Files\URE\THIRDPARTYLICENSEREADME.html
87 Program Files\URE\README
88 Program Files\URE\bin\uno.exe
89 Program Files\URE\bin\regmerge.exe
90 Program Files\URE\bin\regview.exe
91 Program Files\URE\bin\cppu3.dll
92 Program Files\URE\bin\cppuhelper3MSC.dll
93 Program Files\URE\bin\purpenvhelper3MSC.dll
94 Program Files\URE\bin\sal3.dll
95 Program Files\URE\bin\salhelper3MSC.dll
96 Program Files\URE\java\unoloader.jar
97 Program Files\URE\java\libreoffice.jar
98 Program Files\URE\java\juh.jar
99 Program Files\URE\java\jurt.jar
100 Program Files\URE\java\ridl.jar
101 Program Files\URE\misc\types.rdb
102 Program Files\URE\misc\services.rdb
103 Program Files\URE\bin\libxml2.dll  [external]
104 Program Files\URE\bin\uno.ini  [private]
105 Program Files\URE\bin\reglo.dll  [private]
106 Program Files\URE\bin\storelo.dll  [private]
107 Program Files\URE\bin\unoidllo.dll  [private]
108 Program Files\URE\bin\xmlreaderlo.dll  [private]
109 Program Files\URE\bin\jvmaccesslo.dll  [private]
110 Program Files\URE\bin\jvmfwklo.dll  [private]
111 Program Files\URE\bin\JREProperties.class  [private]
112 Program Files\URE\bin\jvmfwk3.ini  [private]
113 Program Files\URE\bin\msci_uno.dll  [private]
114 Program Files\URE\bin\java_uno.dll  [private]
115 Program Files\URE\bin\cli_uno.dll [private]
116 Program Files\URE\bin\unsafe_uno_uno.dll  [private]
117 Program Files\URE\bin\affine_uno_uno.dll  [private]
118 Program Files\URE\bin\log_uno_uno.dll  [private]
119 Program Files\URE\bin\jpipe.dll  [private]
120 Program Files\URE\bin\jpipx.dll  [private]
121 Program Files\URE\bin\juh.dll  [private]
122 Program Files\URE\bin\juhx.dll  [private]
123 Program Files\URE\bin\sal_textenclo.dll  [private]
124 Program Files\URE\bin\acceptorlo.dll  [private]
125 Program Files\URE\bin\binaryurplo.dll  [private]
126 Program Files\URE\bin\bootstraplo.dll  [private]
127 Program Files\URE\bin\connectorlo.dll  [private]
128 Program Files\URE\bin\introspectionlo.dll  [private]
129 Program Files\URE\bin\invocadaptlo.dll  [private]
130 Program Files\URE\bin\invocationlo.dll  [private]
131 Program Files\URE\bin\javaloaderlo.dll  [private]
132 Program Files\URE\bin\javavmlo.dll  [private]
133 Program Files\URE\bin\namingservicelo.dll  [private]
134 Program Files\URE\bin\proxyfaclo.dll  [private]
135 Program Files\URE\bin\reflectionlo.dll  [private]
136 Program Files\URE\bin\streamslo.dll  [private]
137 Program Files\URE\bin\textinstreamlo.dll  [private]
138 Program Files\URE\bin\textoutstreamlo.dll  [private]
139 Program Files\URE\bin\stocserviceslo.dll  [private]
140 Program Files\URE\bin\uuresolverlo.dll  [private]
141 Program Files\URE\bin\uwinapi.dll  [private]
142 Program Files\URE\java\java_uno.jar  [private]
143 Program Files\URE\misc\javavendors.xml  [private]
145 %windir%\assembly\cli_basetypes.dll [GAC]
146 %windir%\assembly\cli_ure.dll [GAC]
147 %windir%\assembly\cli_uretypes.dll [GAC]
148 %windir%\assembly\cli_cppuhelper.dll [GAC]
149 %windir%\assembly\policy.1.0.cli_basetypes.dll [GAC]
150 %windir%\assembly\policy.1.0.cli_ure.dll [GAC]
151 %windir%\assembly\policy.1.0.cli_uretypes.dll [GAC]
152 %windir%\assembly\policy.1.0.cli_cppuhelper.dll [GAC]
154 Files marked as [external] are included in the URE installation because the URE
155 needs them and it cannot be guaranteed that they are available on a given
156 system.  Applications using the URE may need those files too, so they are made
157 available as non-private files of the URE installation.  However, in an ideal
158 world, those files would not need to be included in the URE installation.
160 Files marked as [private] are private to the URE installation.  To avoid
161 stability issues, applications that use the URE should not access the
162 functionality of these files.
164 Files marked as [GAC] are installed in the Global Assembly Cache on Windows. The
165 file path reflects the path as seen in the Explorer with the Assembly
166 Cache Viewer Tool (Shfusion.dll) installed. The actual paths are different.
169 Public Files in a URE Installation
170 ----------------------------------
172 A URE installation contains the following public files:
174 - uno is the executable file that runs UNO components.  For more details, see
175 the SDK Developer's Guide.
177 - regmerge and regview are tools that work with binary registries that contain
178 UNO type or UNO service information.  For more details, see the SDK Developer's
179 Guide.
181 - javaldx is a helper program on Linux, Solaris, and *BSD that
182 enables Java executables to use a Java VM, such as OpenJDK or the Sun JDK/JRE.
183 Executables such as uno run this helper automatically.
185 - cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO
186 runtime dynamic libraries that client code can call.  For details on the
187 functionality that these libraries offer, see the "C++ Reference" section of the
188 SDK HTML documentation.  The corresponding C++ header files are not in the URE,
189 but rather in the SDK.
191 - libreoffice.jar and unoloader.jar are the public Java UNO runtime
192 Java[tm] Archives (JARs) that client code can call.
193 juh.jar, jurt.jar, ridl.jar, unoil.jar are still provided for backwards compatibility,
194 but are basically empty and have been merged into libreoffice.jar.
195 For details on the functionality that these files offer, see the
196 "Java UNO Runtime Reference" section of the SDK HTML documentation.
198 - types.rdb and services.rdb are preconfigured UNO type and service registries.
199 For more details, see the "Deploying a URE" section of this README.
202 Deploying a URE
203 ---------------
205 By default, the URE is installed in /opt/libreoffice/ure on Linux,
206 Solaris, and *BSD, and in Program Files\URE on Windows. If you
207 want, you can override this location when you install the URE, for example, with
208 rpm --relocate on Linux.  The URE is designed so that multiple instances of the
209 URE can coexist on a single system in different locations.
211 On Windows, the path to the installed URE is stored in the registry under the
212 path "HKEY_CLASSES_ROOT\Software\LibreOffice\URE" and key "Path".
215 UNO Deployment Variables
216 ------------------------
218 The URE installation is preconfigured with several UNO types and UNO services.
219 The available types and services are listed in the types.rdb and services.rdb
220 files respectively.  The location of these files is stored by two UNO deployment
221 variables, namely UNO_TYPES and UNO_SERVICES.  These variables are set up by a
222 unorc or uno.ini that is private to the URE installation.  This private file
223 also contains the private deployment variables URE_INTERNAL_LIB_DIR,
224 URE_INTERNAL_JAVA_DIR, and URE_INTERNAL_JAVA_CLASSPATH, which are required by
225 the URE.
227 The UNO_TYPES and UNO_SERVICES variables automatically search the following
228 locations for types.rdb and services.rdb files:
230 Linux, Solaris, and *BSD:
232 - <URE installation>/share/misc/ types.rdb and services.rdb, respectively
233 - any URLs listed in the public deployment variables URE_MORE_TYPES and
234   URE_MORE_SERVICES, respectively
236 Windows:
238 - <URE installation>\misc\ types.rdb and services.rdb, respectively
239 - any URLs listed in the public deployment variables URE_MORE_TYPES and
240   URE_MORE_SERVICES, respectively
242 NOTE: The URE on Windows does not support a system-wide deployment of additional
243 types.rdb and services.rdb files.  That is, you cannot store additional
244 types.rdb and services.rdb files in a Documents and Settings\All
245 Users\Application Data\URE directory.
247 URE_MORE_TYPES and URE_MORE_SERVICES each contain zero or more space-separated
248 URI descriptors.  A URI descriptor is either a URI (denoting an individual file)
249 or a URI embedded in "<" and ">*" (denoting all the files contained non-
250 recursively within the directory denoted by the given URI).
252 The Java UNO environment needs type information in the form of Java class files
253 instead of rdb files.  Additional types are searched for in any URLs listed in
254 the public deployment variable URE_MORE_JAVA_TYPES.
256 For details on how to override the UNO deployment variables, see the SDK
257 Developer's Guide or go to http://udk.openoffice.org/common/man/concept/
258 micro_deployment.html.
261 URE Java Framework
262 ------------------
264 When a URE executable, such as uno, starts a Java VM, the URE Java Framework
265 searches for a suitable JDK/JRE installation.  For more information on the URE
266 Java Framework, go to http://udk.openoffice.org/common/man/spec/
267 javavendorextension.sxw.  The private javavendors.xml file in a URE installation
268 provides preconfigured support for various JDK/JRE versions.  The private
269 jvmfwk3rc or jvmfwk3.ini file specifies the location of a suitable JDK/JRE
270 installation.  When an executable tries to start a Java VM, the URE searches the
271 relevant Java settings file for information on a suitable JDK/JRE version.
273 NOTE: On any platform, you can delete the javasettings_${_OS}_${_ARCH}.xml file
274 if the file contains problematic stale data.
276 By default, the URE does not search for a Java settings file, but instead
277 searches for a suitable JDK/JRE installation whenever necessary.  You can
278 override this by setting the URE_OVERRIDE_JAVA_JFW_SHARED_DATA and
279 URE_OVERRIDE_JAVA_JFW_USER_DATA deployment variables.  If
280 URE_OVERRIDE_JAVA_JFW_USER_DATA is set, the URE will update the relevant
281 information in
282 ${URE_OVERRIDE_JAVA_JFW_USER_DATA}/javasettings_${_OS}_${_ARCH}.xml when it
283 searches for a suitable JDK/JRE installation.  You can also use the
284 UNO_JAVA_JFW_JREHOME deployment variable to specify the location of a JDK/JRE
285 installation.  For more information on this variable, see
286 http://udk.openoffice.org/common/man/spec/javavendorextension.sxw.
288 The URE allows clients to extend the content of UNO_JAVA_JFW_CLASSPATH_URLS (see
289 http://udk.openoffice.org/common/man/spec/javavendorextension.sxw):  The content
290 of the public deployment variable URE_MORE_JAVA_CLASSPATH_URLS, if set, is
291 added to the end of the URE's UNO_JAVA_JFW_CLASSPATH_URLS list.
293 You might experience problems in an SDK environment that uses different JDK/JRE
294 versions for the SDK and the URE.  This problem arises when the OO_SDK_JAVA_HOME
295 SDK environment variable specifies a different Java VM than the Java VM that is
296 used in the URE Java Framework.  See the "Installation Guide" section of the SDK
297 HTML documentation to find out how to set the  OO_SDK_JAVA_HOME environment
298 variable.
301 C++ and Java UNO Components
302 ---------------------------
304 C++ UNO components run from within the uno executable can depend on an
305 environment in which the public C++ UNO runtime dynamic libraries (cppu,
306 cppuhelper, purpenvhelper, sal, salhelper) and the external dynamic libraries
307 (libxml2 etc.) are already available (that is, on Linux, Solaris, and
308 *BSD, a component dynamic library need not make sure that the UNO
309 runtime dynamic libraries it needs can be found on its RPATH).
311 Similarly, Java UNO components can depend on an environment in which the public
312 Java UNO runtime JARs are already available (that is, a component JAR need not
313 list in its manifest Class-Path the UNO runtime JARs it needs).
315 If a Java UNO component requires additional UNO types, use the UNO-Type-Path
316 manifest entry to specify the location of the UNO types.  The UNO-Type-Path is
317 similar to the Class-Path manifest entry and can contain URLs of JARs and
318 directories that contain the Java classes that represent additional UNO types.
319 The UnoClassLoader evaluates the UNO-Type-Path manifest entry to ensure that the
320 additional UNO types are available to the Java UNO environment.
322 The UNO-Type-Path can have the following entries:
324 - UNO-Type-Path:
325 Current JAR does not contain UNO types.
327 - UNO-Type-Path: <>
328 Current JAR contains UNO types.
330 - UNO-Type-Path: any/other/jar.jar yet/another/jar.jar
331 Current JAR brings other JARs that contain UNO types.
333 - UNO-Type-Path: any/other/jar.jar <> yet/another/jar.jar
334 Current JAR and other JARs that the current JARs uses contain UNO types.
336 NOTE: If you do not include the UNO-Type-Path manifest entry, the URE assumes
337 that the current JAR contains UNO types.
339 If a Java application requires the Java UNO environment, the UnoClassLoader must
340 be set up to load the relevant Java classes.  For example, Runner.java in the
341 uretest bundle is packed as runner.jar, which the makefiles use to launch the
342 javaclient.jar application.  For more information, see
343 com.sun.star.lib.unoloader.UnoClassLoader and
344 com.sun.star.lib.unoloader.UnoLoader in the "Java UNO Runtime Reference" section
345 of the SDK HTML documentation.