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