[jboss-cvs] JBossAS SVN: r84038 - trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 10 03:24:03 EST 2009


Author: emuckenhuber
Date: 2009-02-10 03:24:03 -0500 (Tue, 10 Feb 2009)
New Revision: 84038

Added:
   trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/JMSDestinationPersistenceFormatTestCase.java
Modified:
   trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/AbstractPersistenceFormatTest.java
   trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/LocalDataSourcePersistenceFormatTestCase.java
Log:
update attachment persistence

Modified: trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/AbstractPersistenceFormatTest.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/AbstractPersistenceFormatTest.java	2009-02-10 08:23:56 UTC (rev 84037)
+++ trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/AbstractPersistenceFormatTest.java	2009-02-10 08:24:03 UTC (rev 84038)
@@ -29,9 +29,14 @@
 import org.jboss.managed.api.ManagedObject;
 import org.jboss.managed.api.factory.ManagedObjectFactory;
 import org.jboss.metatype.api.values.MetaValueFactory;
+import org.jboss.system.server.profileservice.persistence.ManagedObjectPeristenceHandler;
+import org.jboss.system.server.profileservice.persistence.xml.PersistedManagedObject;
 import org.jboss.system.server.profileservice.repository.AbstractFileAttachmentsSerializer;
 import org.jboss.system.server.profileservice.repository.JAXBAttachmentSerializer;
 import org.jboss.test.JBossTestCase;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
 
 /**
  * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
@@ -46,6 +51,14 @@
    /** The meta value factory */
    private MetaValueFactory metaValueFactory = MetaValueFactory.getInstance();
    
+   /** The schema resolver */
+   protected static final DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+   
+   static
+   {
+      resolver.addClassBinding("urn:org:jboss:profileservice:persistence:managed-object:1.0", PersistedManagedObject.class);
+   }
+   
    public AbstractPersistenceFormatTest(String name)
    {
       super(name);
@@ -102,15 +115,6 @@
          super(tempFile);
       }
       
-//      @Override
-//      protected <T> T loadAttachment(File attachmentsStore, Class<T> expected) throws Exception
-//      {
-//         Unmarshaller u = UnmarshallerFactory.newInstance().newUnmarshaller();
-//         JBossXBBuilder builder = new JBossXBBuilder();
-//         SchemaBinding binding = builder.build(expected);
-//         return (T) u.unmarshal(attachmentsStore.getAbsolutePath(), binding); 
-//      }
-      
       @Override
       protected void saveAttachment(File attachmentsStore, Object attachment) throws Exception
       {
@@ -129,5 +133,32 @@
       }
       
    }
+   
+   protected PersistedManagedObject restore(ManagedObject mo) throws Exception
+   {
+      PersistedManagedObject moElement = new PersistedManagedObject();
+      
+      ManagedObjectPeristenceHandler persistence = new ManagedObjectPeristenceHandler();
+      persistence.processManagedObject(moElement, mo);
+      
+      File file = File.createTempFile("test", null);
+      serialize(moElement, file);
+      return deserialize(file);
+   }
+   
+   protected void serialize(PersistedManagedObject moElement, File file) throws Exception
+   {
+      JAXBContext ctx = JAXBContext.newInstance(PersistedManagedObject.class);
+      Marshaller marshaller = ctx.createMarshaller();
+      marshaller.setProperty("jaxb.formatted.output", Boolean.TRUE);
+      marshaller.marshal(moElement, file);
+      marshaller.marshal(moElement, System.out);
+   }
+   
+   protected PersistedManagedObject deserialize(File file) throws Exception
+   {
+      Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+      return (PersistedManagedObject) unmarshaller.unmarshal(file.toURL().openStream(), resolver);
+   }
 }
 

Added: trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/JMSDestinationPersistenceFormatTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/JMSDestinationPersistenceFormatTestCase.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/JMSDestinationPersistenceFormatTestCase.java	2009-02-10 08:24:03 UTC (rev 84038)
@@ -0,0 +1,155 @@
+/*
+ * 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.io.File;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.GenericValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.system.deployers.managed.ServiceMetaDataICF;
+import org.jboss.system.metadata.ServiceAttributeMetaData;
+import org.jboss.system.metadata.ServiceDeployment;
+import org.jboss.system.metadata.ServiceDeploymentParser;
+import org.jboss.system.metadata.ServiceMetaData;
+import org.jboss.system.metadata.ServiceMetaDataParser;
+import org.jboss.system.metadata.ServiceTextValueMetaData;
+import org.jboss.system.server.profileservice.persistence.ManagedObjectOverrideHandler;
+import org.jboss.system.server.profileservice.persistence.xml.PersistedManagedObject;
+import org.w3c.dom.Document;
+
+/**
+ * Test the merging of JMSDestination attributes.
+ * 
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class JMSDestinationPersistenceFormatTestCase extends AbstractPersistenceFormatTest
+{
+
+   public JMSDestinationPersistenceFormatTestCase(String name)
+   {
+      super(name);
+   }
+
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      enableTrace("org.jboss.system");      
+   }
+   
+   public void testTopic() throws Exception
+   {
+      doTestMerge("profileservice/override/testTopic-service.xml");
+   }
+   
+   public void testQueue() throws Exception
+   {
+      doTestMerge("profileservice/override/testQueue-service.xml");
+   }
+   
+   protected void doTestMerge(String xmlName) throws Exception
+   {
+      // Set the ICF
+      getMOF().addInstanceClassFactory(new ServiceMetaDataICF());
+      
+      // create
+      ManagedObject deploymentMO = getDeploymentMO(xmlName);
+
+      // update property
+      getProperty(deploymentMO, "downCacheSize").setValue(SimpleValueSupport.wrap(123456));
+      
+      PersistedManagedObject moElement = restore(deploymentMO);
+      ManagedObjectOverrideHandler override = new ManagedObjectOverrideHandler();
+      
+      //
+      ManagedObject restored = override.updateManagedObject(moElement, deploymentMO);
+      
+      // assert
+      assertEquals(SimpleValueSupport.wrap(123456), getProperty(restored, "downCacheSize").getValue());
+      
+      
+      // Assert attachment meta data
+      ServiceDeployment deployment =  (ServiceDeployment) restored.getAttachment();
+      assertNotNull(deployment);
+      ServiceMetaData service = deployment.getServices().get(0);
+      assertNotNull(service);
+      boolean foundAttribute = false;
+      for(ServiceAttributeMetaData attribute : service.getAttributes())
+      {
+         if("DownCacheSize".equals(attribute.getName()))
+         {
+            String text = ((ServiceTextValueMetaData) attribute.getValue()).getText();
+            assertEquals("123456", text);
+            foundAttribute = true;
+         }
+      }
+      assertTrue(foundAttribute);
+   }
+   
+   protected ManagedProperty getProperty(ManagedObject serviceDeploymentMO, String propertyName)
+   {
+      assertNotNull(serviceDeploymentMO);
+      CollectionValue collection = (CollectionValue) serviceDeploymentMO.getProperty("services").getValue();
+      assertNotNull(collection);
+      GenericValue topic = (GenericValue) collection.iterator().next();
+      assertNotNull(topic);
+      ManagedObject topicMO = (ManagedObject) topic.getValue();
+      assertNotNull(topicMO);
+      
+      // downCacheSize
+      return topicMO.getProperty(propertyName);
+   }
+   
+   protected ManagedObject getDeploymentMO(String resource) throws Exception
+   {
+      ServiceDeployment deployment = parseJbossServiceXml(resource);
+      assertNotNull(deployment);
+      
+      return getMOF().initManagedObject(deployment, null);      
+   }
+   
+   protected ServiceDeployment parseJbossServiceXml(String resource) throws Exception
+   {
+      File file = new File(Thread.currentThread().getContextClassLoader().getResource(resource).toURI());
+      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+      Document document = factory.newDocumentBuilder().parse(file);
+      
+      ServiceDeploymentParser parser = new ServiceDeploymentParser(document);
+      
+      ServiceDeployment deployment = parser.parse();
+      assertNotNull(deployment);
+      
+      ServiceMetaDataParser serviceParser = new ServiceMetaDataParser(deployment.getConfig());
+      List<ServiceMetaData> services = serviceParser.parse();
+      assertNotNull(services);
+      
+      deployment.setServices(services);
+      return deployment;
+   }
+   
+}

Modified: trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/LocalDataSourcePersistenceFormatTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/LocalDataSourcePersistenceFormatTestCase.java	2009-02-10 08:23:56 UTC (rev 84037)
+++ trunk/testsuite/src/main/org/jboss/test/profileservice/persistenceformat/test/LocalDataSourcePersistenceFormatTestCase.java	2009-02-10 08:24:03 UTC (rev 84038)
@@ -22,21 +22,17 @@
 package org.jboss.test.profileservice.persistenceformat.test;
 
 import java.net.URL;
-import java.util.List;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.transform.sax.SAXSource;
 
-import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
-import org.jboss.resource.metadata.mcf.LocalDataSourceDeploymentMetaData;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.resource.deployers.management.LocalDSInstanceClassFactory;
 import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup;
-import org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentMetaData;
-import org.jboss.system.metadata.ServiceAttributeMetaData;
-import org.jboss.system.metadata.ServiceDependencyMetaData;
-import org.jboss.system.metadata.ServiceMetaData;
-import org.jboss.system.server.profileservice.repository.AbstractFileAttachmentsSerializer;
+import org.jboss.system.server.profileservice.persistence.ManagedObjectOverrideHandler;
+import org.jboss.system.server.profileservice.persistence.xml.PersistedManagedObject;
 import org.jboss.util.xml.JBossEntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
@@ -58,91 +54,26 @@
    
    public void testParsing() throws Exception
    {
+      getMOF().addInstanceClassFactory(new LocalDSInstanceClassFactory());
+      
       // Initial parsing of the dataSource deployment
       ManagedConnectionFactoryDeploymentGroup deployment = parseDataSource("profileservice/persistence/profileservice-test-ds.xml");
       assertNotNull(deployment);
-      // create a attachment serializer
-      AbstractFileAttachmentsSerializer serializer = getAttachmentSerializer();
-      
-      // Save attachment
-      serializer.saveAttachment("test", deployment);
-      // Restore attachment
-      ManagedConnectionFactoryDeploymentGroup restored = serializer.loadAttachment("test", ManagedConnectionFactoryDeploymentGroup.class);
-      assertNotNull(restored);
 
-      List<ManagedConnectionFactoryDeploymentMetaData> deployments = restored.getDeployments(); 
-      assertNotNull(deployments);
-      assertEquals(deployments.size(), deployment.getDeployments().size());
+      ManagedObject mo = getMOF().initManagedObject(deployment, null);
       
-      List<ServiceMetaData> services = restored.getServices();
-      assertNotNull(services);
-      assertEquals(services.size(), deployment.getServices().size());
+      PersistedManagedObject moelement = restore(mo);
+      assertNotNull(moelement);
 
-      assertServiceMetaData(deployment.getServices().get(0), services.get(0));
+      enableTrace("org.jboss.system");
       
-      LoaderRepositoryConfig repository = restored.getLoaderRepositoryConfig(); 
-      assertNotNull(repository);
-      assertEquals(deployment.getLoaderRepositoryConfig().repositoryName, repository.repositoryName);
-      assertEquals(deployment.getLoaderRepositoryConfig().configParserClassName, repository.configParserClassName);
-      assertEquals(deployment.getLoaderRepositoryConfig().repositoryClassName, repository.repositoryClassName);
-   }
-   
-   protected void assertServiceMetaData(ServiceMetaData original, ServiceMetaData restored)
-   {
-      assertNotNull(original);
+      ManagedObjectOverrideHandler override = new ManagedObjectOverrideHandler();
+      ManagedObject restored = override.updateManagedObject(moelement, mo);
       assertNotNull(restored);
-
-      assertAttributes(original.getAttributes(), restored.getAttributes());
-      assertDepends(original.getDependencies(), restored.getDependencies());
+ 
    }
-   
-   protected void assertAttributes(List<ServiceAttributeMetaData> original, List<ServiceAttributeMetaData> restored)
+    protected ManagedConnectionFactoryDeploymentGroup parseDataSource(String resource) throws Exception
    {
-      assertNotNull(original);
-      assertNotNull(restored);
-
-      assertEquals(original.size(), restored.size());
-      // ...
-   }
-   
-   protected void assertDepends(List<ServiceDependencyMetaData> original, List<ServiceDependencyMetaData> restored)
-   {
-      assertNotNull(original);
-      assertNotNull(restored);
-      
-      assertEquals(original.size(), restored.size());
-      
-      ServiceDependencyMetaData dmo = original.get(0);
-      ServiceDependencyMetaData dmr = restored.get(0);
-      
-      assertEquals(dmo.getIDependOn(), dmr.getIDependOn());
-   }
-   
-   protected void assertLocalDataSource(ManagedConnectionFactoryDeploymentMetaData original, ManagedConnectionFactoryDeploymentMetaData restored)
-   {
-      assertNotNull(original);
-      assertNotNull(restored);
-
-      assertEquals(original.getJndiName(), restored.getJndiName());
-      assertEquals(original.getLocalTransactions(), restored.getLocalTransactions());
-      
-      assertTrue(original instanceof LocalDataSourceDeploymentMetaData);
-      assertTrue(restored instanceof LocalDataSourceDeploymentMetaData);
-      
-      LocalDataSourceDeploymentMetaData o = (LocalDataSourceDeploymentMetaData) original;
-      LocalDataSourceDeploymentMetaData r = (LocalDataSourceDeploymentMetaData) restored;
-      
-      assertEquals(o.getDriverClass(), r.getDriverClass());
-      assertEquals(o.getDriverClass(), r.getDriverClass());
-      assertEquals(o.getConnectionUrl(), r.getConnectionUrl());
-      assertEquals(o.getUserName(), r.getUserName());
-      assertEquals(o.getPreparedStatementCacheSize(), r.getPreparedStatementCacheSize());
-      assertEquals(o.getPassWord(), r.getPassWord());
-      // ...
-   }
-   
-   protected ManagedConnectionFactoryDeploymentGroup parseDataSource(String resource) throws Exception
-   {
       // Get resource
       URL url = Thread.currentThread().getContextClassLoader().getResource(resource);
       // The input source




More information about the jboss-cvs-commits mailing list