Package demo.poa_monitor.user_poa

Source Code of demo.poa_monitor.user_poa.Server

package demo.poa_monitor.user_poa;

import org.omg.CORBA.ORB;
import org.omg.PortableServer.*;
import org.omg.CosNaming.*;
import java.io.*;

public class Server
{
    public final static String [] DESCRIPTIONS =
    { "Servant Activator",
      "Servant Activator & location forward",
      "Servant Locator",
      "Default Servant & RETAIN",
      "One servant multiple oid's",
      "SINGLE_THREAD_MODEL"
    };

    public static int    kind;
    public static String factoryPOAName = "factoryPOA";
    public static String fooPOAName;
    public static String description;

    public static void main(String[] args
    {
        if( args.length != 1 ||
            (kind = Integer.parseInt(args[0])) < 1 ||
            kind > DESCRIPTIONS.length)
        {
            String str = "";
            for (int i=1; i <= DESCRIPTIONS.length; i++ )
                str = i==DESCRIPTIONS.length ? str+i : str+i+"|";

            System.err.println("\n<usage: jaco [properties] demo.poa_monitor.user_poa.Server "+str+">\n");
            System.exit(0);
        }

        fooPOAName = "fooPOA"+kind;
        description = DESCRIPTIONS[kind-1]

        try
       
            ORB        orb     = org.omg.CORBA.ORB.init(args, null);
            POA        rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
            POAManager poaMgr  = rootPOA.the_POAManager();
       
            // create a user defined poa for the foo factory

            org.omg.CORBA.Policy [] policies =
            {       
                rootPOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID),
                rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT)
            };

            POA factoryPOA =
                rootPOA.create_POA( factoryPOAName, poaMgr, policies);

            for (int i = 0; i < policies.length; i++)
                policies[i].destroy();
     
            // implicit activation of an adpater activator on root poa
            factoryPOA.the_activator( new FooAdapterActivatorImpl( orb ) );
     
            // explicit activation of the factory servant on factory poa
            FooFactoryImpl factoryServant = new FooFactoryImpl();
            factoryPOA.activate_object_with_id( new String("FooFactory").getBytes(), factoryServant );
     
            // register factory on name service
            NamingContextExt nc =
                NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));

            nc.bind( nc.to_name("FooFactory.service") , factoryServant._this(orb) );

            // activate the poa manager
            poaMgr.activate();
            System.out.println("[ Server ready ]");     
            orb.run();
     
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
TOP

Related Classes of demo.poa_monitor.user_poa.Server

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.