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