001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.openejb; 018 019 import java.io.IOException; 020 import java.util.Properties; 021 import javax.ejb.spi.HandleDelegate; 022 import javax.naming.NamingException; 023 import javax.security.auth.Subject; 024 import javax.security.auth.login.LoginException; 025 026 import org.apache.openejb.Container; 027 import org.apache.openejb.DeploymentInfo; 028 import org.apache.openejb.OpenEJBException; 029 import org.apache.openejb.UndeployException; 030 import org.apache.openejb.NoSuchApplicationException; 031 import org.apache.openejb.config.ClientModule; 032 import org.apache.openejb.config.EjbModule; 033 import org.apache.openejb.config.AppModule; 034 import org.apache.openejb.assembler.classic.ClientInfo; 035 import org.apache.openejb.assembler.classic.EjbJarInfo; 036 import org.apache.openejb.assembler.classic.ContainerInfo; 037 import org.apache.openejb.assembler.classic.AppInfo; 038 import org.apache.openejb.spi.ContainerSystem; 039 040 import org.omg.CORBA.ORB; 041 042 /** 043 * @version $Rev: 706640 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $ 044 */ 045 public interface OpenEjbSystem { 046 ContainerSystem getContainerSystem(); 047 048 Container createContainer(Class<? extends ContainerInfo> type, String serviceId, Properties declaredProperties, String providerId) throws OpenEJBException; 049 050 ClientInfo configureApplication(ClientModule clientModule) throws OpenEJBException; 051 052 EjbJarInfo configureApplication(EjbModule ejbModule) throws OpenEJBException; 053 054 void createClient(ClientInfo clientInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException; 055 056 void createEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException; 057 058 DeploymentInfo getDeploymentInfo(String deploymentId); 059 060 void removeEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws UndeployException, NoSuchApplicationException; 061 062 AppInfo configureApplication(AppModule appModule) throws OpenEJBException; 063 064 void setORBContext(ORB orb, HandleDelegate handleDelegate); 065 }