[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