[jboss-cvs] JBossAS SVN: r89007 - branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon May 18 08:24:29 EDT 2009
Author: emuckenhuber
Date: 2009-05-18 08:24:29 -0400 (Mon, 18 May 2009)
New Revision: 89007
Added:
branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/ServiceBindingMgrPersistenceFormatTestCase.java
Log:
basic SBM persistence test.
Added: branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/ServiceBindingMgrPersistenceFormatTestCase.java
===================================================================
--- branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/ServiceBindingMgrPersistenceFormatTestCase.java (rev 0)
+++ branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/ServiceBindingMgrPersistenceFormatTestCase.java 2009-05-18 12:24:29 UTC (rev 89007)
@@ -0,0 +1,181 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.profileservice.persistenceformat.test;
+
+import java.util.List;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.deployers.plugins.managed.BeanMetaDataICF;
+import org.jboss.deployers.plugins.managed.KernelDeploymentComponentMapper;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.plugins.factory.AbstractManagedObjectFactory;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.MapCompositeValueSupport;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.profileservice.management.TempManagedComponentImpl;
+import org.jboss.services.binding.ServiceBindingManager;
+import org.jboss.system.server.profileservice.persistence.xml.PersistenceRoot;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class ServiceBindingMgrPersistenceFormatTestCase extends AbstractPersistenceFormatTest
+{
+
+ /** The bootstrap. */
+ private BasicBootstrap bootstrap;
+
+ /** The kernel. */
+ private Kernel kernel;
+
+ /** The controller. */
+ private KernelController controller;
+
+ /** Unmarshaller factory */
+ private static final UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
+
+ /** The resolver */
+ private static final SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
+
+ public ServiceBindingMgrPersistenceFormatTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ // Bootstrap
+ bootstrap = new BasicBootstrap();
+ bootstrap.run();
+ //
+ kernel = bootstrap.getKernel();
+ //
+ controller = kernel.getController();
+
+ // setUp beanICF
+ BeanMetaDataICF beanICF = new BeanMetaDataICF();
+ beanICF.setController(controller);
+ beanICF.setDelegateICF(((AbstractManagedObjectFactory)
+ getMOF()).getDefaultInstanceFactory());
+
+ getMOF().addInstanceClassFactory(beanICF);
+ addComponentMapper(new KernelDeploymentComponentMapper(getPersistenceFactory()));
+ }
+
+ public void test() throws Throwable
+ {
+ // Set the jboss.bind.address
+ System.setProperty("jboss.bind.address", "127.0.0.1");
+ // Parse
+ KernelDeployment deployment = parse(Thread.currentThread().getContextClassLoader().getResource("profileservice/persistence/testbindings-jboss-beans.xml").toString());
+ // Deploy
+ deploy(deployment);
+ // Get the BeanMetaData
+ KernelControllerContext ctx = (KernelControllerContext) controller.getContext("ServiceBindingManagementObject", null);
+ assertNotNull(ctx);
+ BeanMetaData bmd = ctx.getBeanMetaData();
+ assertNotNull(bmd);
+
+ // Create the ManagedObjects
+ ManagedObject deploymentMO = getMOF().initManagedObject(deployment, null);
+ ManagedObject mo = getMOF().initManagedObject(bmd, null);
+ assertNotNull(mo);
+ // Change the value
+ CollectionValue bindingSets = (CollectionValue) mo.getProperty("standardBindings").getValue();
+ assertNotNull(bindingSets);
+ setPortValue("HttpsConnector", bindingSets, 13245);
+
+ // Persist
+ ManagedComponent component = new TempManagedComponentImpl(null, null, mo);
+ PersistenceRoot root = getPersistenceFactory().updateComponent(deploymentMO, component);
+ root.setClassName(AbstractKernelDeployment.class.getName());
+ root = restore(root);
+
+ // Undeploy
+ undeploy(deployment);
+ // Restore
+ getPersistenceFactory().restorePersistenceRoot(root, deployment, null);
+
+ deploy(deployment);
+
+ // Check if the values were changed.
+ ServiceBindingManager service = (ServiceBindingManager) kernel.getRegistry().getEntry("ServiceBindingManager").getTarget();
+ assertNotNull(service);
+ assertEquals(13245, service.getIntBinding("jboss.web:service=WebServer", "HttpsConnector"));
+ }
+
+ protected void setPortValue(String name, CollectionValue values, int port)
+ {
+ boolean found = false;
+ for(MetaValue v : values.getElements())
+ {
+ MapCompositeValueSupport c = (MapCompositeValueSupport) v;
+ SimpleValue bindingName = (SimpleValue)c.get("bindingName");
+ if(bindingName != null && bindingName.getValue().equals(name))
+ {
+ found = true;
+ c.put("port", SimpleValueSupport.wrap(port));
+ }
+ }
+ assertTrue("found "+ name, found);
+ }
+
+ protected void deploy(KernelDeployment deployment) throws Throwable
+ {
+ List<BeanMetaData> beans = deployment.getBeans();
+ for(BeanMetaData bmd : beans)
+ controller.install(bmd);
+ }
+
+ protected void undeploy(KernelDeployment deployment)
+ {
+ List<BeanMetaData> beans = deployment.getBeans();
+ for(BeanMetaData bmd : beans)
+ controller.uninstall(bmd.getName());
+ }
+
+
+ protected KernelDeployment parse(String name) throws Throwable
+ {
+ Unmarshaller unmarshaller = factory.newUnmarshaller();
+ KernelDeployment deployment = (KernelDeployment) unmarshaller.unmarshal(name, resolver);
+ deployment.setName(name);
+ return deployment;
+ }
+
+}
+
More information about the jboss-cvs-commits
mailing list