Add missing license headers
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@724120 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c7ed1460a8
commit
c8e0ed804a
1 changed files with 145 additions and 127 deletions
|
@ -1,127 +1,145 @@
|
|||
package org.apache.tuscany.sca.host.openejb;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
import org.apache.openejb.OpenEJB;
|
||||
import org.apache.openejb.OpenEJBException;
|
||||
import org.apache.openejb.assembler.classic.Assembler;
|
||||
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
|
||||
import org.apache.openejb.config.ConfigurationFactory;
|
||||
import org.apache.openejb.core.ServerFederation;
|
||||
import org.apache.openejb.jee.EjbJar;
|
||||
import org.apache.openejb.jee.StatelessBean;
|
||||
import org.apache.openejb.loader.SystemInstance;
|
||||
import org.apache.openejb.server.ServiceDaemon;
|
||||
import org.apache.openejb.server.ServiceException;
|
||||
import org.apache.openejb.server.ejbd.EjbServer;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBHost;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBRegistrationException;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBSessionBean;
|
||||
|
||||
/**
|
||||
* OpenEJB-based EJB host implementation.
|
||||
*
|
||||
* @version $Rev: $ $Date: $
|
||||
*/
|
||||
public class OpenEJBServer implements EJBHost {
|
||||
|
||||
private boolean started;
|
||||
private EjbServer ejbServer;
|
||||
private ServiceDaemon serviceDaemon;
|
||||
private ConfigurationFactory config;
|
||||
private Assembler assembler;
|
||||
|
||||
public void addSessionBean(String ejbName, EJBSessionBean sessionBean) throws EJBRegistrationException {
|
||||
if (!started) {
|
||||
start();
|
||||
}
|
||||
|
||||
try {
|
||||
StatelessBean bean = new StatelessBean(ejbName, sessionBean.getImplementationClass());
|
||||
bean.addBusinessRemote(sessionBean.getRemoteInterface().getName());
|
||||
bean.addPostConstruct("init");
|
||||
bean.addPreDestroy("destroy");
|
||||
|
||||
EjbJar ejbJar = new EjbJar();
|
||||
ejbJar.addEnterpriseBean(bean);
|
||||
|
||||
assembler.createApplication(config.configureApplication(ejbJar));
|
||||
|
||||
} catch (NamingException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (IOException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (OpenEJBException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public EJBSessionBean getSessionBean(String ejbName) throws EJBRegistrationException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public EJBSessionBean removeSessionBean(String ejbName) throws EJBRegistrationException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the OpenEJB server.
|
||||
*
|
||||
* @throws EJBRegistrationException
|
||||
*/
|
||||
private void start() throws EJBRegistrationException {
|
||||
try {
|
||||
Properties properties = new Properties();
|
||||
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
|
||||
properties.put(Context.PROVIDER_URL, "ejbd://localhost:2888");
|
||||
SystemInstance.init(properties);
|
||||
|
||||
ejbServer = new EjbServer();
|
||||
SystemInstance.get().setComponent(EjbServer.class, ejbServer);
|
||||
OpenEJB.init(properties, new ServerFederation());
|
||||
ejbServer.init(properties);
|
||||
|
||||
serviceDaemon = new ServiceDaemon(ejbServer, 2888, "localhost");
|
||||
serviceDaemon.start();
|
||||
|
||||
config = new ConfigurationFactory();
|
||||
assembler = (Assembler)SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
|
||||
|
||||
// containers
|
||||
StatelessSessionContainerInfo statelessContainerInfo = config.configureService(StatelessSessionContainerInfo.class);
|
||||
statelessContainerInfo.properties.setProperty("TimeOut", "10");
|
||||
statelessContainerInfo.properties.setProperty("PoolSize", "0");
|
||||
statelessContainerInfo.properties.setProperty("StrictPooling", "false");
|
||||
assembler.createContainer(statelessContainerInfo);
|
||||
|
||||
} catch (OpenEJBException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (Exception e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
|
||||
started = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the OpenEJB server.
|
||||
*/
|
||||
void stop() {
|
||||
if (started) {
|
||||
try {
|
||||
serviceDaemon.stop();
|
||||
} catch (ServiceException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
}
|
||||
SystemInstance.get().removeComponent(EjbServer.class);
|
||||
OpenEJB.destroy();
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.tuscany.sca.host.openejb;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
import org.apache.openejb.OpenEJB;
|
||||
import org.apache.openejb.OpenEJBException;
|
||||
import org.apache.openejb.assembler.classic.Assembler;
|
||||
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
|
||||
import org.apache.openejb.config.ConfigurationFactory;
|
||||
import org.apache.openejb.core.ServerFederation;
|
||||
import org.apache.openejb.jee.EjbJar;
|
||||
import org.apache.openejb.jee.StatelessBean;
|
||||
import org.apache.openejb.loader.SystemInstance;
|
||||
import org.apache.openejb.server.ServiceDaemon;
|
||||
import org.apache.openejb.server.ServiceException;
|
||||
import org.apache.openejb.server.ejbd.EjbServer;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBHost;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBRegistrationException;
|
||||
import org.apache.tuscany.sca.host.ejb.EJBSessionBean;
|
||||
|
||||
/**
|
||||
* OpenEJB-based EJB host implementation.
|
||||
*
|
||||
* @version $Rev: $ $Date: $
|
||||
*/
|
||||
public class OpenEJBServer implements EJBHost {
|
||||
|
||||
private boolean started;
|
||||
private EjbServer ejbServer;
|
||||
private ServiceDaemon serviceDaemon;
|
||||
private ConfigurationFactory config;
|
||||
private Assembler assembler;
|
||||
|
||||
public void addSessionBean(String ejbName, EJBSessionBean sessionBean) throws EJBRegistrationException {
|
||||
if (!started) {
|
||||
start();
|
||||
}
|
||||
|
||||
try {
|
||||
StatelessBean bean = new StatelessBean(ejbName, sessionBean.getImplementationClass());
|
||||
bean.addBusinessRemote(sessionBean.getRemoteInterface().getName());
|
||||
bean.addPostConstruct("init");
|
||||
bean.addPreDestroy("destroy");
|
||||
|
||||
EjbJar ejbJar = new EjbJar();
|
||||
ejbJar.addEnterpriseBean(bean);
|
||||
|
||||
assembler.createApplication(config.configureApplication(ejbJar));
|
||||
|
||||
} catch (NamingException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (IOException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (OpenEJBException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public EJBSessionBean getSessionBean(String ejbName) throws EJBRegistrationException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public EJBSessionBean removeSessionBean(String ejbName) throws EJBRegistrationException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the OpenEJB server.
|
||||
*
|
||||
* @throws EJBRegistrationException
|
||||
*/
|
||||
private void start() throws EJBRegistrationException {
|
||||
try {
|
||||
Properties properties = new Properties();
|
||||
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
|
||||
properties.put(Context.PROVIDER_URL, "ejbd://localhost:2888");
|
||||
SystemInstance.init(properties);
|
||||
|
||||
ejbServer = new EjbServer();
|
||||
SystemInstance.get().setComponent(EjbServer.class, ejbServer);
|
||||
OpenEJB.init(properties, new ServerFederation());
|
||||
ejbServer.init(properties);
|
||||
|
||||
serviceDaemon = new ServiceDaemon(ejbServer, 2888, "localhost");
|
||||
serviceDaemon.start();
|
||||
|
||||
config = new ConfigurationFactory();
|
||||
assembler = (Assembler)SystemInstance.get().getComponent(org.apache.openejb.spi.Assembler.class);
|
||||
|
||||
// containers
|
||||
StatelessSessionContainerInfo statelessContainerInfo = config.configureService(StatelessSessionContainerInfo.class);
|
||||
statelessContainerInfo.properties.setProperty("TimeOut", "10");
|
||||
statelessContainerInfo.properties.setProperty("PoolSize", "0");
|
||||
statelessContainerInfo.properties.setProperty("StrictPooling", "false");
|
||||
assembler.createContainer(statelessContainerInfo);
|
||||
|
||||
} catch (OpenEJBException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
} catch (Exception e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
|
||||
started = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the OpenEJB server.
|
||||
*/
|
||||
void stop() {
|
||||
if (started) {
|
||||
try {
|
||||
serviceDaemon.stop();
|
||||
} catch (ServiceException e) {
|
||||
throw new EJBRegistrationException(e);
|
||||
}
|
||||
}
|
||||
SystemInstance.get().removeComponent(EjbServer.class);
|
||||
OpenEJB.destroy();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue