| /** |
| * 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.openejb.config; |
| |
| import junit.framework.TestCase; |
| import org.apache.openejb.assembler.classic.SingletonSessionContainerInfo; |
| import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo; |
| import org.apache.openejb.assembler.classic.ContainerInfo; |
| import org.apache.openejb.assembler.classic.ResourceInfo; |
| import org.apache.openejb.config.sys.Container; |
| import org.apache.openejb.config.sys.Resource; |
| |
| import java.net.URI; |
| |
| /** |
| * @version $Rev: 1161961 $ $Date: 2011-08-26 01:55:17 +0000 (Fri, 26 Aug 2011) $ |
| */ |
| public class ConfigureServiceTest extends TestCase { |
| |
| public void testConfigureService() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| // We should be able to create a default definition |
| StatelessSessionContainerInfo defaultStatelessContainer = factory.configureService(StatelessSessionContainerInfo.class); |
| assertNotNull(defaultStatelessContainer); |
| assertNotNull(defaultStatelessContainer.id); |
| assertNotNull(defaultStatelessContainer.className); |
| assertNotNull(defaultStatelessContainer.constructorArgs); |
| assertNotNull(defaultStatelessContainer.properties); |
| |
| // We should be able to create one of these with a different name |
| Container container = new Container("My Stateless Container"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("My Stateless Container", myStatelessContainer.id); |
| assertEquals(defaultStatelessContainer.className, myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| |
| } |
| |
| public void testConfigureService2() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| // We should be able to create one of these with a different name |
| |
| Container container = new Container("MyContainer", "STATELESS", "org.acme#CheddarContainer"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Yummy Cheese", myStatelessContainer.properties.getProperty("myProperty")); |
| } |
| |
| public void testConfigureServiceOverriddenProperty() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| Container container = new Container("MyContainer", "STATELESS", "org.acme#CheddarContainer"); |
| container.getProperties().setProperty("myProperty", "Cheese is good"); |
| |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Cheese is good", myStatelessContainer.properties.getProperty("myProperty")); |
| } |
| |
| public void testConfigureServiceAddedProperty() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| Container container = new Container("MyContainer", "STATELESS", "org.acme#CheddarContainer"); |
| container.getProperties().setProperty("anotherProperty", "Cheese is good"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Yummy Cheese", myStatelessContainer.properties.getProperty("myProperty")); |
| assertNotNull(myStatelessContainer.properties.getProperty("anotherProperty")); |
| assertEquals("Cheese is good", myStatelessContainer.properties.getProperty("anotherProperty")); |
| } |
| |
| public void testConfigureByType() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| Container container = new Container("MyContainer", "STATELESS", null); |
| container.getProperties().setProperty("anotherProperty", "Cheese is good"); |
| ContainerInfo myStatelessContainer = factory.configureService(container, ContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("org.apache.openejb.core.stateless.StatelessContainerFactory", myStatelessContainer.className); |
| } |
| |
| public void testConfigureServiceAddedPropertyViaURI() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| URI uri = new URI("new://Container?type=STATELESS&provider=org.acme%23CheddarContainer"); |
| |
| Container container = (Container) factory.toConfigDeclaration("MyContainer", uri); |
| |
| container.getProperties().setProperty("anotherProperty", "Cheese is good"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Yummy Cheese", myStatelessContainer.properties.getProperty("myProperty")); |
| assertNotNull(myStatelessContainer.properties.getProperty("anotherProperty")); |
| assertEquals("Cheese is good", myStatelessContainer.properties.getProperty("anotherProperty")); |
| } |
| |
| public void testConfigureServiceAddedPropertyViaURI2() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| URI uri = new URI("new://Container?type=STATELESS&provider=org.acme%23CheddarContainer&myProperty=Queso"); |
| |
| Container container = (Container) factory.toConfigDeclaration("MyContainer", uri); |
| |
| container.getProperties().setProperty("anotherProperty", "Cheese is good"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Queso", myStatelessContainer.properties.getProperty("myProperty")); |
| assertNotNull(myStatelessContainer.properties.getProperty("anotherProperty")); |
| assertEquals("Cheese is good", myStatelessContainer.properties.getProperty("anotherProperty")); |
| } |
| |
| public void testConfigureServiceAddedPropertyViaURI_Unencoded() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| Container container = (Container) factory.toConfigDeclaration("MyContainer", "new://Container?type=STATELESS&provider=org.acme#CheddarContainer"); |
| |
| container.getProperties().setProperty("anotherProperty", "Cheese is good"); |
| StatelessSessionContainerInfo myStatelessContainer = factory.configureService(container, StatelessSessionContainerInfo.class); |
| |
| assertNotNull(myStatelessContainer); |
| assertEquals("MyContainer", myStatelessContainer.id); |
| assertEquals("org.acme.SuperContainer", myStatelessContainer.className); |
| assertNotNull(myStatelessContainer.constructorArgs); |
| assertNotNull(myStatelessContainer.properties); |
| assertNotNull(myStatelessContainer.properties.getProperty("myProperty")); |
| assertEquals("Yummy Cheese", myStatelessContainer.properties.getProperty("myProperty")); |
| assertNotNull(myStatelessContainer.properties.getProperty("anotherProperty")); |
| assertEquals("Cheese is good", myStatelessContainer.properties.getProperty("anotherProperty")); |
| } |
| |
| public void testQueue() throws Exception { |
| ConfigurationFactory factory = new ConfigurationFactory(); |
| |
| ResourceInfo resourceInfo = factory.configureService(new Resource("myQueue", "Queue"), ResourceInfo.class); |
| |
| assertNotNull(resourceInfo); |
| assertEquals("myQueue", resourceInfo.id); |
| assertNotNull(resourceInfo.constructorArgs); |
| assertNotNull(resourceInfo.properties); |
| assertEquals("myQueue", resourceInfo.properties.getProperty("destination")); |
| } |
| |
| |
| } |
| |