#!/bin/sh
clear
echo Starting in `pwd`

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
SHLIB_PATH=.:$SHLIB_PATH
LIBPATH=.:$LIBPATH
export LD_LIBRARY_PATH SHLIB_PATH LIBPATH

PATH=../../idl:../../daemon:../../coss/naming:../../imr:../../ir:$PATH
ADDR=inet:`uname -n`:12456
IRADDR=inet:`uname -n`:12500
IDLPAR=-I../../include


echo "Starting IR ..."
ird --db=ir-db -ORBIIOPAddr $IRADDR &
ird_pid=$!
sleep 2
echo $ird_pid > ird.pid

#trap "kill $ird_pid" 0

# run BOA daemon
echo "Starting BOA ..."
micod --db=imr-db -ORBIIOPAddr $ADDR -ORBIfaceRepoAddr $IRADDR &
micod_pid=$!
sleep 2
echo $micod_pid > micod.pid

#trap "kill $micod_pid" 0

# register server
if [ ! -f imr-db ]
then

echo -n "Register RoleFactory server ..."
imr create RoleFactoryServer shared ./RoleFactoryServer.elf \
  IDL:omg.org/CosRelationships/RoleFactory:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."
  
echo -n "Register RelationshipFactory server ..."
imr create RelationshipFactoryServer shared ./RelationshipFactoryServer.elf \
  IDL:omg.org/CosRelationships/RelationshipFactory:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register RelationshipIterator server ..."
imr create RelationshipIteratorServer unshared ./RelationshipIteratorServer.elf \
  IDL:omg.org/CosRelationships/RelationshipIterator:1.0 -ORBImplRepoAddr $ADDR  
#sleep 1
echo "done."

echo -n "Register Bank server ..."
imr create Banking unshared ./BankServer.elf \
  IDL:Account:1.0 IDL:Bank:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Person server ..."
imr create PersonServer unshared ./PersonServer.elf \
  IDL:Person:1.0 IDL:PersonFactory:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Figure server ..."
imr create FigureServer unshared ./FigureServer.elf \
  IDL:Documents/Figure:1.0 IDL:Documents/FigureFactory:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Text server ..."
imr create TextServer unshared ./TextServer.elf \
  IDL:Documents/Text:1.0 IDL:Documents/TextFactory:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register OwnerRole server ..."
imr create OwnerRoleServer unshared ./OwnerRoleServer.elf \
  IDL:omg.org/Ownership/OwnerRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register OwnedByRole server ..."
imr create OwnedByRoleServer unshared ./OwnedByRoleServer.elf \
  IDL:omg.org/Ownership/OwnedByRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Ownership server ..."
imr create OwnershipServer unshared ./OwnershipServer.elf \
  IDL:omg.org/Ownership/Relationship:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register EmployerRole server ..."
imr create EmployerRoleServer unshared ./EmployerRoleServer.elf \
  IDL:omg.org/Employment/EmployerRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register EmployeeRole server ..."
imr create EmployeeRoleServer unshared ./EmployeeRoleServer.elf \
  IDL:omg.org/Employment/EmployeeRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Employment server ..."
imr create EmploymentServer unshared ./EmploymentServer.elf \
  IDL:omg.org/Employment/Relationship:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register ContainsRole server ..."
imr create ContainsRoleServer unshared ./ContainsRoleServer.elf \
  IDL:omg.org/Containment/ContainsRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register ContainedInRole server ..."
imr create ContainedInRoleServer unshared ./ContainedInRoleServer.elf \
  IDL:omg.org/Containment/ContainedInRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Containment server ..."
imr create ContainmentServer unshared ./ContainmentServer.elf \
  IDL:omg.org/Containment/Relationship:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register ReferencesRole server ..."
imr create ReferencesRoleServer unshared ./ReferencesRoleServer.elf \
  IDL:omg.org/Reference/ReferencesRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register ReferencedByRole server ..."
imr create ReferencedByRoleServer unshared ./ReferencedByRoleServer.elf \
  IDL:omg.org/Reference/ReferencedByRole:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Reference server ..."
imr create ReferenceServer unshared ./ReferenceServer.elf \
  IDL:omg.org/Reference/Relationship:1.0 -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


fi

if [ ! -f ir-db.idl ]
then

echo -n "Send ir.idl to IR ..."
idl $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir ../../include/mico/ir.idl
echo "done."

echo -n "Send CosObjectIdentity.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir ../../include/mico/CosObjectIdentity.idl
echo "done."

echo -n "Send CosRelationships.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir ../../include/mico/CosRelationships.idl
#sleep 1
echo "done."

echo -n "Send Bank.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Bank.idl
#sleep 1
echo "done."

echo -n "Send Person.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Person.idl
#sleep 1
echo "done."


echo -n "Send Documents.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Documents.idl
#sleep 1
echo "done."

echo -n "Send Employment.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Employment.idl
#sleep 1
echo "done."

echo -n "Send Ownership.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Ownership.idl
#sleep 1
echo "done."

echo -n "Send Containment.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Containment.idl
#sleep 1
echo "done."

echo -n "Send Reference.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Reference.idl
#sleep 1
echo "done."


fi



