Installation d'OpenORB. Vincent Englebert Version 2 décembre 2003 à 17:44 Ce document décrit les étapes succesives pour l'installation d'OpenORB. Vous devrez utiliser à cette fin le fichier ZIP disponible sur le site du cours et non les packages disponibles sur le site officiel d'OpenORB. Démarches 1. Installer le Sun Java 2 SDK, Standard Edition (J2SE) disponible à cet endroit: http://java.sun.com/j2se/downloads.html 2. Rapatrier le fichier openorb.zip du site du cours et le décompacter dans un répertoire vierge. Les fichiers vont s'installer sous le répertoire openorb que l'on désignera ultérieurement par $(DIRECT) . 3. Créer un fichier openorb.bat. Un modèle de fichier est disponible à cet endroit $(DIRECT)/openorb.bat.modele. Son contenu ressemble à ceci: @echo off set CLASSPATH=%CLASSPATH% echo echo echo echo set set set set set set set set set ------------------------------ SET PARAMETERS FOR OPENORB 1.3.1 -----------------------------CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\openorb_tools-1.3.1.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\openorb-1.3.1.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\openorb_examples-1.3.1.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\openorb_test-1.3.1.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\avalon-framework.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\logkit.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\excalibur-configuration.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\xerces.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\OpenORB-1.3.1\lib\junit.jar rem ---------------rem MANAGEMENT-BOARD rem ---------------set set set set set CLASSPATH=%CLASSPATH%;e:\programs\openorb\ManagementBoard-1.3.0\lib\openorb_board-1.3.0.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\ManagementBoard-1.3.0\lib\xerces.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\ManagementBoard-1.3.0\lib\junit.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\ManagementBoard-1.3.0\lib\jhall-1.1.1.jar CLASSPATH=%CLASSPATH%;e:\programs\openorb\ManagementBoard-1.3.0\lib\jlfgr-1.0.jar rem ---------------rem NAMING-SERVICE rem ---------------set CLASSPATH=%CLASSPATH%;e:\programs\openorb\NamingService-1.3.1\lib\openorb_ins-1.3.1.jar set CLASSPATH=%CLASSPATH%;e:\programs\openorb\NamingService-1.3.1\lib\openorb_tns-1.3.1.jar set CLASSPATH=%CLASSPATH%;e:\programs\openorb\NamingService-1.3.1\lib\openorb_ins_examples1.3.1.jar set CLASSPATH=%CLASSPATH%;e:\programs\openorb\NamingService-1.3.1\lib\openorb_ins_plugin-1.3.1.jar set CLASSPATH=%CLASSPATH%;e:\programs\openorb\NamingService-1.3.1\lib\openorb_tns_test-1.3.1.jar rem ------------------rem PERSISTENT-SERVICE rem ------------------set CLASSPATH=%CLASSPATH%;E:\programs\openorb\PersistentStateService-1.3.0\lib\openorb_pss1.3.0.jar rem --------------------rem TRANSACTION-SERVICE rem --------------------set CLASSPATH=%CLASSPATH%;E:\programs\openorb\TransactionService-1.3.0\lib\openorb_ots-1.3.0.jar set CLASSPATH=%CLASSPATH%;E:\programs\openorb\TransactionService-1.3.0\lib\openorb_ots_examples1.3.0.jar set CLASSPATH=%CLASSPATH%;E:\programs\openorb\TransactionService-1.3.0\lib\xerces.jar set CLASSPATH=%CLASSPATH%;E:\programs\openorb\TransactionService-1.3.0\lib\junit.jar rem ---------------------rem INTERFACE-REPOSITORY rem ---------------------set CLASSPATH=%CLASSPATH%;E:\programs\openorb\InterfaceRepository-1.3.0\lib\openorb_ir_plugin1.3.0.jar set CLASSPATH=%CLASSPATH%;E:\programs\openorb\InterfaceRepository-1.3.0\lib\openorb_ir-1.3.0.jar set CLASSPATH=%CLASSPATH%;E:\programs\openorb\InterfaceRepository-1.3.0\lib\openorb_ir_examples1.3.0.jar set PATH=%PATH%;e:\programs\openorb\OpenORB-1.3.1\bin e: cd \programs\openorb 3. Remplacer e:\programs\openorb par $(DIRECT) dans le fichier openorb.bat 4. Configurer votre machine abstraite java conformément aux directives du chapitre 3 de ORB.PDF comme suit: exécuter le programme $(DIRECT)/ShowMe.class, il vous affichera le répertoire home de Java. Placer le fichier $(DIRECT)/OpenORB-1.3.1/config/orb.properties dans le répertoire home de Java. 5. Placer le fichier $(DIRECT)/OpenORB-1.3.1/config/OpenORB.xml dans la home directory de l'utilisateur (cfr. votre profil, par exemple c:\documents and settings\tintin) 5. Pour utiliser une application OpenOrb, vous devez lancer une console et exécuter le programme openorb.bat qui initialisera toutes les variables d'environnement nécessaires. 6. Vous pouvez maintenant tester le naming service en invoquant le programme naming.bat. Vous pouvez alors récupérer l'IOR dans un fichier et l'utiliser dans d'autres applications . 7. Le répertoire $(DIRECT)/OpenORB-1.3.1/bin contient différents scripts.bat qui vous faciliteront la tâche. À vous d'adapter ces fichiers selon votre convenance. Ces scripts sont: A) naming.bat Exécute le naming service. Vous obtiendrez alors cette sortie: B) idl2java.bat Exécute le compilateur IDL vers Java. Exécutez cette commande sans arguments pour obtenir une ligne sur les différentes options de la ligne de commande. --------------------------------------------------------------OpenORB (c) 2002 The Community OpenORB IDL To Java Compiler --------------------------------------------------------------Options -all -boa Generate mapping for included files. Generate skeleton for BOA. -d directory_name Provide a way to specify the ouput dir. This option will not use the 'generated' directory. For example : org.openorb.compiler.IdlCompiler demo.idl -d /home/me/ -dynamic Generate stub with DII and skeleton with DSI ( portable way before CORBA 2.3 ). -D Define a symbol. It is equivalent to #define. -importLink link -I Allow specification of include directory. Example: org.openorb.compiler.IdlCompiler demo.idl -I /home/me/idl -I ../other -native native_name native_mapping Define native type mapping. For example : org.openorb.compiler.IdlCompiler demo.idl -native cookie java.lang.Object this command implies the mapping of cookie in java.lang.Object. -nolocalstub Generate stubs without local invocation path. -noprefix Don't use prefixes as packages names. -noreverseprefix The prefixes are used as package name but they are not reversed. -noskeleton Don't generate skeleton. -nostub Don't generate stub. -notie Don't generate TIE classes for delegation mode. -package package_name Generate files in package_name. Example: org.openorb.compiler.IdlCompiler demo.idl -package exemple -pidl -portablehelper Generate portable helper classes. Nonportable helpers must be compiled using OpenORB, but the generated class files will work anywhere. Portable helpers can be compiled anywhere and will work identically on all orbs with Any.extract_Streamable. -quiet Suppress any output. Same as -silence. -release Show version number. -silence Suppress any output. Same as -quiet. -verbose Show debug output. -jdk1.4 Generate classes that use JDK1.4 features. The generate classes will not compile on previous versions. -invokeMethod <Classes|Reflection|Switch> The method used to implement the xxxPOA invoke method. If not specified Classes is used. -minTableSize <size> The minimum size of method table. -XgenerateValueFactory <impl postfix> Generate default value factories for valuetypes. Creates instance of <valuetype name><impl postfix>. -XgenerateValueImpl <postfix> Generatae default implementation of valuetypes. Creates classes with name <valuetype name><postfix>. C) Interface.bat Le repository d'interfaces. D) Idl2rep.bat Le compilateur qui chargera le contenu d'un fichier idl dans le repository d'interfaces. Seuls les deux premiers scripts sont nécessaires pour le travail. Commentaires 1 Les références initiales Si vous comptez utiliser le naming service, vous aurez alors besoin de passer sa référence IOR. Vous pouvez le faire soit en paramétrant le fichier OpenORB.xml, soit en indiquant l'IOR en commande en ligne comme ceci: a) -ORBInitRef NameService=corbaloc:iiop:[email protected]:1239/NameService b) -ORBInitRef NameService=file:somefile.ior dans ce cas, somefile.ior est un fichier qui contiendrait la référence en question. Le principe est le même pour les autres services une fois que l'on connaît leur nom symbolique et leur IOR. 2 Documentation Chaque package (naming, openorb, ...) contient un manuel de référence (html & pdf) ainsi que la documentation Javadoc sous le répertoire doc. 3 Consultez les sources Le code source des différents package d'openOrb ne figurent pas dans la distribution que vous avez obtenue. Ils sont toutefois téléchargeables à partir du site d'OpenORB. N'hésitez pas à les consulter en cas de problèmes pointus, le code est lisible.