package org.jacorb.demo.appserver.ejb; import java.util.Properties; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.ejb.Singleton; import javax.ejb.Startup; import org.jacorb.demo.appserver.GoodDay; import org.jacorb.demo.appserver.GoodDayHelper; import org.jacorb.demo.appserver.GoodDayImpl; import org.jboss.logging.Logger; import org.omg.CORBA.ORB; import org.omg.CORBA.ORBPackage.InvalidName; import org.omg.PortableServer.POA; import org.omg.PortableServer.POAHelper; import org.omg.PortableServer.POAManagerPackage.AdapterInactive; import org.omg.PortableServer.POAPackage.ServantNotActive; import org.omg.PortableServer.POAPackage.WrongPolicy; /** * Startup a CORBA GoodDay Server on deployment */ @Singleton @Startup //@ApplicationScoped public class CorbaService { private static final Logger logger = Logger.getLogger(CorbaService.class.getName()); private ORB orb; private POA poa; private GoodDay goodDayServer; private String ior; @PostConstruct public void init() { Properties orbProps = new Properties(); orbProps.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB"); orbProps.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton"); orbProps.setProperty("jacorb.interop.null_string_encoding", "true"); orb = ORB.init((String[]) null, orbProps); logger.info("===> Created ORB " + orb.toString()); try { poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); goodDayServer = GoodDayHelper.narrow(poa.servant_to_reference(new GoodDayImpl())); ior = orb.object_to_string(goodDayServer); logger.info("Created GoodDay service..."); } catch (InvalidName invalidName) { invalidName.printStackTrace(); } catch (AdapterInactive adapterInactive) { adapterInactive.printStackTrace(); } catch (WrongPolicy wrongPolicy) { wrongPolicy.printStackTrace(); } catch (ServantNotActive servantNotActive) { servantNotActive.printStackTrace(); } } @PreDestroy public void shutdown() { orb.shutdown(true); } public GoodDay getServer() { return goodDayServer; } public String getIOR() { return ior; } }