Skip to content

You are not logged in. Register orLog In

start:

Author: Kay Ramme

State: final

Version: 1.0

Date: 06/09/2005

Type: Project Overview



Standalone UNO

The first version of a Uno Runtime Environment (URE) will just be the core UNO (Universal Network Objects1) stuff moved out of an OpenOffice.org (short: OOo) 2 installation into an own package. Naming and versioning issues will be cleaned up. The resulting package will be freely locatable and will be multiple installable by using different locations. The package will be installed as “unbundled”3 by default and will be upgradable. The package will follow the targets system guide lines for package installations. The SDK will be adapted so that it can alternatively utilize a URE installation, or an OOo installation.

The URE will be available with OOo 2.0, while OOo 2.0 will not make any use of it. OOo is planned to be adapted to it in the early cycles of its next major.

For Bin-Uno (stands for Binary-Uno, this is UNO used by native languages such as 'C' or 'C++')4 the core services and types will be available in RDB5 files similar to the current OOo types.rdb and services.rdb 6. The Java-Uno7 (this is UNO for Java) core services will not be available via the provided registries, this equals the current OOo installations. Everything related to instantiating additional (AKA non core UNO components) Java-Uno components out of Bin-Uno will need to be configured by hand (e.g. using regcomp) . Bin-Uno core services will only be available to Java-Uno via the Java wrappers of the native registry based bootstrap methods.

The first steps towards a URE are to clean up naming and versioning of the public files, to define the URE interface and to define the deployment schemes.

UNO and the URE will remain a base technology for OpenOffice.org and future development of the URE will continue to happen in the UDK project as part of the broader OpenOffice.org community.

Not Covered

It follows a list of things, which will not be covered or available in the URE released with OOo 2.0.

  • any kind bootstrapping, except of what is available in the published APIs and deals with RDB files. Everything in http://udk.openoffice.org/common/man/spec/transparentofficecomponents.html will not be supported by the URE.

  • configuration via the Configuration Manager

  • UCB (Universal Content Manager)

  • any kind of configuration and distribution of services, except what has been stated above

  • any kind of extensibility, e.g. Bin-Uno packages, bridges, protocols etc.

  • documentation outside the SDK: e.g. man or info pages

  • explicit debugging support, as libraries build with -g or anything like this

  • the Java Usage Framework8 will be part of the URE, but will likely not be configured automatically

  • the SDK will continue being a self-contained-package


The following requirements, tasks and non coverage's describe an to be build URE.

Requirements

IDX

Item

Platform

Proof

1

standalone usable

Linux, Windows, Solaris

standalone installation

2

parallel installable

Linux, Windows, Solaris

multiple private de-/installations + component and client tests

3

supports all core Bin-Uno services

Linux, Windows, Solaris

instantiation of all Bin-Uno core services

4

Supports all core Java-Uno services

Linux, Windows, Solaris

instantiation of all Java-Uno core services

5

freely locatable

Linux, Windows, Solaris

de-/Installation into /tmp + component and client tests

6

system locatable

Linux, Windows, Solaris

de-/installation + component and client tests

7

C++ support for gcc

Linux

C++ component + C++ client test

8

C++ support for Solaris CC

Solaris

C++ component + C++ client test

9

C++ support for MS cl

Windows

C++ component + C++ client test

10

Java support

Linux, Windows, Solaris

Java component + Java client test

11

Java_Uno-Remote_Uno support

Linux, Windows, Solaris

Java-Uno-Client against Java-Uno-Server

12

Bin_Uno-Remote_Uno support

Linux, Windows, Solaris

Bin-Uno-Client against Bin-Uno-Server

13

upgradeable installations

Linux, Windows, Solaris

compare an upgraded package to the package upgrade

14

UNO core types must be easily accessible

Linux, Windows, Solaris

similar effort for using these types as in an OOo installation

15

UNO core services must be easily accessible

Linux, Windows, Solaris

similar effort for using these services as in an OOo installation

16

Bin-Uno: no need for LD_LIBRARY_PATH

Linux, Solaris

Bin-Uno component and client tests without LD_LIBRARY_PATH

17

Java-Uno: no need for CLASSPATH

Linux, Solaris, Windows

Java-Uno component and client tests without CLASSPATH

18

target platform compliance

Linux, Solaris, Windows

check against platform installation guide lines

Tasks

The following list gives an overview of the things needed to be done for a URE.

Task

Type

create CVS module

mandatory

define interface

mandatory

define deployment schema

mandatory

ensure proper versioning

mandatory

ensure proper naming

mandatory

ensure proper linking

mandatory

ensure Java “download extensions” compliance

mandatory

introduce ure/types.rdb and ure/services.rdb

mandatory

create packaging

mandatory

adapt the SDK

mandatory

tests and test plans

mandatory

testing

mandatory

adapt OOo installation sets

mandatory, achievable earliest in the next OOo major

Tasks in Detail

Create CVS Module

A URE module will be created in the OOo CVS repository. The module will be build as part of the normal OOo builds, will deliver the URE packages and will contain all implementation details regarding the building of the packages.

Defined Interface

Every file in the URE will be either defined as public or private. Meaning that all files declared as public will stay compatible and will be available in future releases of the same URE major version, all relativized to OOo needs and developments.

Deployment Schema

A deployment schema for every target platform will be created, which exactly states where which file of the URE will be installed to. The deployment schemes will be created according to target platforms guide lines (e.g. Linux FHS9).

Versioning

All public files of the URE will follow the platform or language recommended versioning schemes. Where no recommendations are available, best practices will be followed.

Naming

All public files of the URE will follow the platform or language recommendations regarding naming. Where no recommendations are available, best practices will be followed.

Proper Linking

Under UNIX, all public shared libraries must be linked in a manner, that there is no need for an application to set the LD_LIBRARY_PATH environment variable.

Java “Download Extensions”

All Java-Uno JAR files must be usable as so called “download extensions”10. In practice that means that JAR files are linked against each other. If this is followed for the application JAR files as well, than there is no need to set the CLASSPATH variable.

Core Types&Services

Create corresponding generating implementation to the OOo types.rdb and services.rdb implementation for the URE core types and services.

Packaging

Create OOo compatible packaging files to generate requirement fulfilling packages.

SDK

The OOo 2.0 SDK will be able to utilize an installed URE. During the configuration of a OOo 2.0 SDK it will be possible to either select an URE installation or an OOo installation. Starting with the next OOo major and the adoption of the URE in OOo, the SDK is planned to be changed to require an URE.

Tests and Test Plans

A set of tests and test plans will be created, these tests will ensure that the above requirements are met. Outside of this, these tests will not ensure any bug freeness or anything else.

Testing

Testing will hopefully be reduced to trigger the available automatic tests and to check the results.

Adapt OpenOffice.org

The OOo installation sets are planned to be changed to not include any UNO runtime files in the next OOo major cycle anymore. The URE package is planned to be part of the set of packages provided with an OOo installation set and is planned to be therefor available for download with the OOo installation sets.

5RDB files are OOo specific repository files