Search in sources :

Example 6 with POA

use of org.omg.PortableServer.POA in project ACS by ACS-Community.

the class ManagerDynComponentTest method initializeCORBA.

/**
	 * Initializes CORBA.
	 */
private void initializeCORBA() {
    System.out.println("Initializing CORBA...");
    // ORB stanza
    java.util.Properties orbprops = java.lang.System.getProperties();
    // to make code completely independed, properties have to be set using JVM -D mechanism
    // ORBacus
    //orbprops.put("org.omg.CORBA.ORBClass", "com.ooc.CORBA.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "com.ooc.CORBA.ORBSingleton");
    // JacORB
    //orbprops.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
    // Java JDK (none)
    orb = org.omg.CORBA.ORB.init(new String[0], orbprops);
    // POA stanza -- use RootPOA
    POA rootPOA = null;
    try {
        rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
    } catch (org.omg.CORBA.ORBPackage.InvalidName in) {
        throw new IllegalStateException("Cannot resolve RootPOA: " + in);
    }
    POAManager manager = rootPOA.the_POAManager();
    try {
        // activate POA
        manager.activate();
        // start CORBA event-handler thread 
        orbThread = new Thread(this);
        orbThread.start();
    } catch (Exception e) {
        throw new IllegalStateException("POAManager activation failed: " + e);
    }
    System.out.println("CORBA initialized.");
}
Also used : POA(org.omg.PortableServer.POA) ClientPOA(si.ijs.maci.ClientPOA) POAManager(org.omg.PortableServer.POAManager)

Example 7 with POA

use of org.omg.PortableServer.POA in project ACS by ACS-Community.

the class HibernateServer method run.

public void run(String[] args) {
    String iorFileName = null;
    final AcsLogger sharedLogger = AcsLoggerHelper.getInstance().getSharedLogger();
    try {
        Properties properties = System.getProperties();
        // default is JDK ORB
        boolean useJacORB = false;
        boolean profiler = false;
        int portNumber = Integer.parseInt(ACSPorts.getCDBPort());
        for (int i = 0; i < args.length; i++) {
            if (args[i].equals("-OAport") || args[i].equals("-OAPort")) {
                if (i < args.length - 1) {
                    portNumber = Integer.valueOf(args[++i]).intValue();
                }
            }
            if (args[i].equals("-OAIAddr")) {
                if (i < args.length - 1) {
                    properties.put("OAIAddr", args[++i]);
                }
            }
            if (args[i].equals("-orbacus")) {
                sharedLogger.log(AcsLogLevel.NOTICE, "ORBacus is no longer supported, switching to JacORB.");
                //System.err.println(
                //	"ORBacus is no longer supported, switching to JacORB.");
                useJacORB = true;
            }
            if (args[i].equals("-jacorb")) {
                useJacORB = true;
            }
            if (args[i].equals("-profiler")) {
                profiler = true;
            }
            if (args[i].equals("-o")) {
                if (i < args.length - 1) {
                    iorFileName = args[++i];
                } else {
                    iorFileName = "DAL.ior";
                }
            }
        }
        if (useJacORB) {
            if (Integer.getInteger("ACS.logstdout", 4) < 4) {
                sharedLogger.log(AcsLogLevel.INFO, "DALfs will use JacORB ORB");
            }
            properties.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
            properties.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
            // port
            properties.put("OAPort", Integer.toString(portNumber));
            // ORB implementation name
            properties.put("jacorb.implname", "ORB");
            /*
				 * by setting the following property, the ORB will
				 * accept client requests targeted at the object with
				 * key "CDB", so more readable corbaloc URLs
				 * can be used
				 */
            properties.put("jacorb.orb.objectKeyMap.CDB", "ORB/dalPOA/CDB");
        } else {
            properties.put("com.sun.CORBA.POA.ORBPersistentServerPort", Integer.toString(portNumber));
        }
        // create and initialize the ORB
        ORB orb = ORB.init(args, properties);
        // activate profiling
        if (orb instanceof AcsProfilingORB) {
            // This profiler will log ORB resource statistics every 10 seconds,
            // and will print every callback to requestStarted / requestFinished to stdout if the "-profiler" option is set (see above) 
            final boolean printIndividualCalls = profiler;
            AcsORBProfiler orbProfiler = new AcsORBProfilerImplBase(sharedLogger) {

                {
                    if (printIndividualCalls) {
                        debugRequestStarted = true;
                        debugRequestFinished = true;
                    }
                }
            };
            ((AcsProfilingORB) orb).registerAcsORBProfiler(orbProfiler);
        }
        // get reference to rootpoa & activate the POAManager
        POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
        /* create a user defined poa for the naming contexts */
        org.omg.CORBA.Policy[] policies = new org.omg.CORBA.Policy[2];
        policies[0] = rootpoa.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID);
        if (useJacORB)
            policies[1] = rootpoa.create_lifespan_policy(LifespanPolicyValue.PERSISTENT);
        else
            policies[1] = rootpoa.create_lifespan_policy(LifespanPolicyValue.TRANSIENT);
        POA dalpoa = rootpoa.create_POA("dalPOA", rootpoa.the_POAManager(), policies);
        for (int i = 0; i < policies.length; i++) policies[i].destroy();
        rootpoa.the_POAManager().activate();
        // create servant and register it with the ORB
        //DALImpl DALImpl = new DALImpl(args, orb, dalpoa);
        //org.omg.PortableServer.Servant servant = new WDALImpl(args, orb, dalpoa);
        org.omg.PortableServer.Servant servant = new HibernateWDALImpl(args, orb, dalpoa, sharedLogger);
        //create object id
        byte[] id = { 'C', 'D', 'B' };
        //activate object
        dalpoa.activate_object_with_id(id, servant);
        // get object reference from the servant
        org.omg.CORBA.Object ref = dalpoa.servant_to_reference(servant);
        jdal = WDALHelper.narrow(ref);
        // try to bind it in IOR
        if (useJacORB) {
        // nothing to do here
        } else {
            ((com.sun.corba.se.internal.Interceptors.PIORB) orb).register_initial_reference("CDB", rootpoa.servant_to_reference(servant));
        }
        // register in name service if available
        try {
            // get the root naming context
            org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
            NamingContext ncRef = NamingContextHelper.narrow(objRef);
            // Bind the object reference in naming
            NameComponent nc = new NameComponent("CDB", "");
            NameComponent[] path = { nc };
            ncRef.rebind(path, jdal);
        } catch (Exception e1) {
            sharedLogger.log(AcsLogLevel.NOTICE, "JDAL is NOT registered in the name service because of: " + e1);
        }
        if (Integer.getInteger("ACS.logstdout", 4) < 4) {
            sharedLogger.log(AcsLogLevel.INFO, "JDAL is listening on " + ACSPorts.getIP() + ":" + portNumber + "/CDB");
        }
        // recover (notify) clients
        if (servant instanceof Recoverer) {
            ((Recoverer) servant).recoverClients();
        }
        if (iorFileName != null) {
            // write the object reference to a file
            PrintWriter iorFile = new PrintWriter(new FileWriter(iorFileName));
            iorFile.println(orb.object_to_string(jdal));
            iorFile.close();
        }
        sharedLogger.log(AcsLogLevel.INFO, "JDAL is ready and waiting ...");
        // GCH 2006-11-13
        // Here we put also a println to be sure that the message
        // ALWAYS appears on standart output, also if the logging level 
        // is put higher than INFO.
        // This is needed because the ACS startup scripts wait for this message
        // to declare complete the startup of the CDB. 
        System.out.println("JDAL is ready and waiting ...");
        // wait for invocations from clients
        orb.run();
        sharedLogger.log(AcsLogLevel.INFO, "JDAL exiting ORB loop ...");
    } catch (Exception e) {
        sharedLogger.log(AcsLogLevel.SEVERE, "Top level exception ", e);
    }
}
Also used : NameComponent(org.omg.CosNaming.NameComponent) FileWriter(java.io.FileWriter) Properties(java.util.Properties) NamingContext(org.omg.CosNaming.NamingContext) AcsORBProfiler(org.jacorb.orb.acs.AcsORBProfiler) AcsProfilingORB(org.jacorb.orb.acs.AcsProfilingORB) PrintWriter(java.io.PrintWriter) AcsORBProfilerImplBase(alma.acs.profiling.orb.AcsORBProfilerImplBase) POA(org.omg.PortableServer.POA) AcsProfilingORB(org.jacorb.orb.acs.AcsProfilingORB) ORB(org.omg.CORBA.ORB) AcsLogger(alma.acs.logging.AcsLogger)

Example 8 with POA

use of org.omg.PortableServer.POA in project ACS by ACS-Community.

the class TestJDAL method testChangeListener.

/**
	 * Test ChangeListener
	 * Creates a changeListener object and registers for a curl
	 * then invokes clear_cache for that function in order to get 
	 * a call from JDAL server
	 */
public void testChangeListener() {
    try {
        // we will have change listener so we have to activate POA
        POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
        rootpoa.the_POAManager().activate();
        // create our listener
        ChangeListener changeListener = new ChangeListener();
        DALChangeListener cl = changeListener._this(orb);
        // register it
        int listenerID = dal.add_change_listener(cl);
        // tell add that we will listen for 'test'
        dal.listen_for_changes("test", listenerID);
        // our change listener will set objectChanged
        objectChanged = false;
        dal.clear_cache("test");
        // give DAL chance (1s) to call us
        for (int i = 0; i < 10; i++) {
            Thread.sleep(100);
            if (objectChanged)
                break;
        }
        // by now the DAL should call us
        assertTrue(objectChanged);
        // remove it from DAL listeners
        dal.remove_change_listener(listenerID);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : POA(org.omg.PortableServer.POA) DALChangeListenerPOA(com.cosylab.CDB.DALChangeListenerPOA) DALChangeListener(com.cosylab.CDB.DALChangeListener) DALChangeListener(com.cosylab.CDB.DALChangeListener) NamingException(javax.naming.NamingException)

Example 9 with POA

use of org.omg.PortableServer.POA in project ACS by ACS-Community.

the class SimpleMasterComponentTest method initializeCORBA.

/**
	 * Initializes CORBA.
	 */
private void initializeCORBA() {
    System.out.println("Initializing CORBA...");
    // ORB stanza
    java.util.Properties orbprops = java.lang.System.getProperties();
    // to make code completely independed, properties have to be set using JVM -D mechanism
    // ORBacus
    //orbprops.put("org.omg.CORBA.ORBClass", "com.ooc.CORBA.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "com.ooc.CORBA.ORBSingleton");
    // JacORB
    //orbprops.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
    // Java JDK (none)
    orb = org.omg.CORBA.ORB.init(new String[0], orbprops);
    // POA stanza -- use RootPOA
    POA rootPOA = null;
    try {
        rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
    } catch (org.omg.CORBA.ORBPackage.InvalidName in) {
        throw new IllegalStateException("Cannot resolve RootPOA: " + in);
    }
    POAManager manager = rootPOA.the_POAManager();
    try {
        // activate POA
        manager.activate();
        // start CORBA event-handler thread 
        orbThread = new Thread(this);
        orbThread.start();
    } catch (Exception e) {
        throw new IllegalStateException("POAManager activation failed: " + e);
    }
    System.out.println("CORBA initialized.");
}
Also used : CBstringSeqPOA(alma.ACS.CBstringSeqPOA) POA(org.omg.PortableServer.POA) ClientPOA(si.ijs.maci.ClientPOA) POAManager(org.omg.PortableServer.POAManager)

Example 10 with POA

use of org.omg.PortableServer.POA in project ACS by ACS-Community.

the class BuildingTest method initializeCORBA.

/**
	 * Initializes CORBA.
	 */
private void initializeCORBA() {
    System.out.println("Initializing CORBA...");
    // ORB stanza
    java.util.Properties orbprops = java.lang.System.getProperties();
    // to make code completely independed, properties have to be set using JVM -D mechanism
    // ORBacus
    //orbprops.put("org.omg.CORBA.ORBClass", "com.ooc.CORBA.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "com.ooc.CORBA.ORBSingleton");
    // JacORB
    //orbprops.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
    //orbprops.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
    // Java JDK (none)
    orb = org.omg.CORBA.ORB.init(new String[0], orbprops);
    // POA stanza -- use RootPOA
    POA rootPOA = null;
    try {
        rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
    } catch (org.omg.CORBA.ORBPackage.InvalidName in) {
        throw new IllegalStateException("Cannot resolve RootPOA: " + in);
    }
    POAManager manager = rootPOA.the_POAManager();
    try {
        // activate POA
        manager.activate();
        // start CORBA event-handler thread 
        orbThread = new Thread(this);
        orbThread.start();
    } catch (Exception e) {
        throw new IllegalStateException("POAManager activation failed: " + e);
    }
    System.out.println("CORBA initialized.");
}
Also used : CBstringPOA(alma.ACS.CBstringPOA) POA(org.omg.PortableServer.POA) ClientPOA(si.ijs.maci.ClientPOA) POAManager(org.omg.PortableServer.POAManager)

Aggregations

POA (org.omg.PortableServer.POA)33 ORB (org.omg.CORBA.ORB)11 POAManager (org.omg.PortableServer.POAManager)10 AcsJContainerEx (alma.JavaContainerError.wrappers.AcsJContainerEx)6 Properties (java.util.Properties)5 ClientPOA (si.ijs.maci.ClientPOA)5 Servant (org.omg.PortableServer.Servant)4 ManagerImpl (com.cosylab.acs.maci.manager.ManagerImpl)3 AcsJUnexpectedExceptionEx (alma.ACSErrTypeCommon.wrappers.AcsJUnexpectedExceptionEx)2 AcsJContainerServicesEx (alma.JavaContainerError.wrappers.AcsJContainerServicesEx)2 AcsJException (alma.acs.exceptions.AcsJException)2 AcsLogger (alma.acs.logging.AcsLogger)2 AcsORBProfilerImplBase (alma.acs.profiling.orb.AcsORBProfilerImplBase)2 CDBFieldDoesNotExistEx (alma.cdbErrType.CDBFieldDoesNotExistEx)2 WrongCDBDataTypeEx (alma.cdbErrType.WrongCDBDataTypeEx)2 DummyComponent (alma.jconttest.DummyComponent)2 DummyComponentPOATie (alma.jconttest.DummyComponentPOATie)2 WDAOPOA (com.cosylab.CDB.WDAOPOA)2 HandleDataStore (com.cosylab.acs.maci.manager.HandleDataStore)2 FileWriter (java.io.FileWriter)2