http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8Test.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8Test.java new file mode 100644 index 0000000..1201654 --- /dev/null +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V8Test.java @@ -0,0 +1,97 @@ +/***************************************************************** + * 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.cayenne.project.upgrade.handlers; + +import org.apache.cayenne.configuration.DataChannelDescriptor; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.NodeList; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; + +/** + * @since 4.1 + */ +public class UpgradeHandler_V8Test extends BaseUpgradeHandlerTest { + + @Override + UpgradeHandler newHandler() { + return new UpgradeHandler_V8(); + } + + @Test + public void testProjectDomUpgrade() throws Exception { + Document document = processProjectDom("cayenne-project-v7.xml"); + + Element root = document.getDocumentElement(); + assertEquals("8", root.getAttribute("project-version")); + assertEquals("", root.getAttribute("xmlns")); + assertEquals(2, root.getElementsByTagName("map").getLength()); + } + + @Test + public void testDataMapDomUpgrade() throws Exception { + Document document = processDataMapDom("test-map-v7.map.xml"); + + Element root = document.getDocumentElement(); + assertEquals("8", root.getAttribute("project-version")); + assertEquals("http://cayenne.apache.org/schema/8/modelMap", root.getAttribute("xmlns")); + assertEquals(2, root.getElementsByTagName("db-attribute").getLength()); + + NodeList nodeList = root.getElementsByTagName("query"); + for(int i=0; i<nodeList.getLength(); i++) { + NamedNodeMap attributes = nodeList.item(i).getAttributes(); + + // should change factory to type + assertNull(attributes.getNamedItem("factory")); + + String type = attributes.getNamedItem("type").getNodeValue(); + switch (attributes.getNamedItem("name").getNodeValue()) { + case "EjbqlQueryTest": + assertEquals("EJBQLQuery", type); + break; + + case "SQLTemplateTest": + assertEquals("SQLTemplate", type); + break; + + case "SelectQueryTest": + assertEquals("SelectQuery", type); + break; + + case "ProcedureQueryTest": + assertEquals("ProcedureQuery", type); + break; + } + } + } + + @Test + public void testModelUpgrade() throws Exception { + DataChannelDescriptor descriptor = mock(DataChannelDescriptor.class); + handler.processModel(descriptor); + verifyZeroInteractions(descriptor); + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9Test.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9Test.java new file mode 100644 index 0000000..1affb2c --- /dev/null +++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9Test.java @@ -0,0 +1,69 @@ +/***************************************************************** + * 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.cayenne.project.upgrade.handlers; + +import org.apache.cayenne.configuration.DataChannelDescriptor; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verifyZeroInteractions; + +/** + * @since 4.1 + */ +public class UpgradeHandler_V9Test extends BaseUpgradeHandlerTest { + + + @Override + UpgradeHandler newHandler() { + return new UpgradeHandler_V9(); + } + + @Test + public void testProjectDomUpgrade() throws Exception { + Document document = processProjectDom("cayenne-project-v8.xml"); + + Element root = document.getDocumentElement(); + assertEquals("9", root.getAttribute("project-version")); + assertEquals("", root.getAttribute("xmlns")); + assertEquals(2, root.getElementsByTagName("map").getLength()); + } + + @Test + public void testDataMapDomUpgrade() throws Exception { + Document document = processDataMapDom("test-map-v8.map.xml"); + + Element root = document.getDocumentElement(); + assertEquals("9", root.getAttribute("project-version")); + assertEquals("http://cayenne.apache.org/schema/9/modelMap", root.getAttribute("xmlns")); + assertEquals(0, root.getElementsByTagName("reverse-engineering-config").getLength()); + assertEquals(2, root.getElementsByTagName("db-attribute").getLength()); + } + + @Test + public void testModelUpgrade() throws Exception { + DataChannelDescriptor descriptor = mock(DataChannelDescriptor.class); + handler.processModel(descriptor); + verifyZeroInteractions(descriptor); + } +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java deleted file mode 100644 index 8dd51a2..0000000 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java +++ /dev/null @@ -1,499 +0,0 @@ -/***************************************************************** - * 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.cayenne.project.upgrade.v7; - -import org.apache.cayenne.configuration.ConfigurationNameMapper; -import org.apache.cayenne.configuration.DataMapLoader; -import org.apache.cayenne.configuration.DefaultConfigurationNameMapper; -import org.apache.cayenne.configuration.XMLDataMapLoader; -import org.apache.cayenne.configuration.server.JNDIDataSourceFactory; -import org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory; -import org.apache.cayenne.di.*; -import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; -import org.apache.cayenne.di.spi.DefaultClassLoaderManager; -import org.apache.cayenne.project.FileProjectSaver; -import org.apache.cayenne.project.ProjectSaver; -import org.apache.cayenne.project.unit.Project2Case; -import org.apache.cayenne.project.upgrade.UpgradeHandler; -import org.apache.cayenne.project.upgrade.UpgradeMetaData; -import org.apache.cayenne.project.upgrade.UpgradeType; -import org.apache.cayenne.resource.Resource; -import org.apache.cayenne.resource.URLResource; -import org.apache.cayenne.test.resource.ResourceUtil; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathFactory; -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.*; - -public class ProjectUpgrader_V7Test extends Project2Case { - - @Test - public void testMetadata_3_0_0_1() { - - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/3_0_0_1a/cayenne.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - - assertSame(UpgradeType.UPGRADE_NEEDED, md.getUpgradeType()); - assertNull(md.getIntermediateUpgradeVersion()); - assertEquals("3.0.0.1", md.getProjectVersion()); - assertEquals("7", md.getSupportedVersion()); - } - - @Test - public void testMetadata_Type2_0() { - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/2_0a/cayenne.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - assertSame(UpgradeType.INTERMEDIATE_UPGRADE_NEEDED, md.getUpgradeType()); - assertEquals("3.0.0.1", md.getIntermediateUpgradeVersion()); - assertEquals("2.0", md.getProjectVersion()); - assertEquals("7", md.getSupportedVersion()); - } - - @Test - public void testMetadata_Type6() { - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/6a/cayenne-PROJECT1.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - assertSame(UpgradeType.UPGRADE_NEEDED, md.getUpgradeType()); - assertNull(md.getIntermediateUpgradeVersion()); - assertEquals("6", md.getProjectVersion()); - assertEquals("7", md.getSupportedVersion()); - } - - @Test - public void testMetadata_Type7() { - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/7a/cayenne-PROJECT1.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - assertSame(UpgradeType.UPGRADE_NOT_NEEDED, md.getUpgradeType()); - assertNull(md.getIntermediateUpgradeVersion()); - assertEquals("7", md.getProjectVersion()); - assertEquals("7", md.getSupportedVersion()); - } - - @Test - public void testPerformUpgradeFrom3() throws Exception { - - File testFolder = setupTestDirectory("testPerformUpgrade_3_0_0_1"); - String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/3_0_0_1a/"; - - List<String> sources = new ArrayList<String>(); - - sources.add("cayenne.xml"); - sources.add("d1Map1.map.xml"); - sources.add("d1Map2.map.xml"); - sources.add("d1NodeDriver.driver.xml"); - - // upgrades are done in-place, so copy it first - List<File> targetsBefore = new ArrayList<File>(); - for (String source : sources) { - - URL url = getClass().getClassLoader().getResource(sourceUrl + source); - File target = new File(testFolder, source); - assertNotNull(source); - ResourceUtil.copyResourceToFile(url, target); - targetsBefore.add(target); - } - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - } - }; - - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(targetsBefore.get(0).toURI().toURL()); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - Resource upgraded = handler.performUpgrade(); - assertNotNull(upgraded); - assertNotSame(source, upgrader); - - // check that all the new files are created... - String[] targetsAfterNames = new String[] { "cayenne-d1.xml", "cayenne-d2.xml", "d1Map1.map.xml", - "d1Map2.map.xml" }; - - File[] targetsAfter = new File[targetsAfterNames.length]; - for (int i = 0; i < targetsAfter.length; i++) { - targetsAfter[i] = new File(testFolder, targetsAfterNames[i]); - assertTrue("File was not created: " + targetsAfter[i].getAbsolutePath(), targetsAfter[i].exists()); - } - - // DataMap files should remain the same; all others need to be deleted - for (File file : targetsBefore) { - if (file.getName().endsWith(".map.xml")) { - assertTrue("DataMap file disappeared: " + file.getAbsolutePath(), file.exists()); - } else { - assertFalse("File expected to be deleted: " + file.getAbsolutePath(), file.exists()); - } - } - - // assert XML structure of the generated files - assertPerformUpgrade_3_0_0_1_cayenne_d1(targetsAfter[0]); - assertPerformUpgrade_3_0_0_1_cayenne_d2(targetsAfter[1]); - assertPerformUpgrade_3_0_0_1_d1Map1(targetsAfter[2]); - assertPerformUpgrade_3_0_0_1_d1Map2(targetsAfter[3]); - } - - private void assertPerformUpgrade_3_0_0_1_cayenne_d1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("", xpath.evaluate("/domain/@name", document)); - assertEquals("9", xpath.evaluate("/domain/@project-version", document)); - - NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET); - assertNotNull(maps); - assertEquals(2, maps.getLength()); - - Node map1 = maps.item(0); - Node map2 = maps.item(1); - - assertEquals("d1Map1", xpath.evaluate("@name", map1)); - assertEquals("d1Map2", xpath.evaluate("@name", map2)); - - NodeList nodes = (NodeList) xpath.evaluate("/domain/node", document, XPathConstants.NODESET); - assertNotNull(nodes); - assertEquals(1, nodes.getLength()); - - Node node1 = nodes.item(0); - - assertEquals("d1NodeDriver", xpath.evaluate("@name", node1)); - assertEquals(XMLPoolingDataSourceFactory.class.getName(), xpath.evaluate("@factory", node1)); - - NodeList mapRefs = (NodeList) xpath.evaluate("map-ref", node1, XPathConstants.NODESET); - assertNotNull(mapRefs); - assertEquals(2, mapRefs.getLength()); - - assertEquals("d1Map1", xpath.evaluate("@name", mapRefs.item(0))); - assertEquals("d1Map2", xpath.evaluate("@name", mapRefs.item(1))); - - NodeList dataSources = (NodeList) xpath.evaluate("data-source", node1, XPathConstants.NODESET); - assertNotNull(dataSources); - assertEquals(1, dataSources.getLength()); - - Node ds = dataSources.item(0); - assertEquals("org.hsqldb.jdbcDriver", xpath.evaluate("driver/@value", ds)); - assertEquals("jdbc:hsqldb:mem:xdb", xpath.evaluate("url/@value", ds)); - } - - private void assertPerformUpgrade_3_0_0_1_cayenne_d2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("", xpath.evaluate("/domain/@name", document)); - assertEquals("9", xpath.evaluate("/domain/@project-version", document)); - - NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET); - assertNotNull(maps); - assertEquals(0, maps.getLength()); - - NodeList nodes = (NodeList) xpath.evaluate("/domain/node", document, XPathConstants.NODESET); - assertNotNull(nodes); - assertEquals(2, nodes.getLength()); - - Node node1 = nodes.item(0); - Node node2 = nodes.item(1); - - assertEquals("d2NodeDBCP", xpath.evaluate("@name", node1)); - assertEquals("dbcpx", xpath.evaluate("@parameters", node1)); - assertEquals("org.apache.cayenne.configuration.server.DBCPDataSourceFactory", xpath.evaluate("@factory", node1)); - - NodeList dataSources1 = (NodeList) xpath.evaluate("data-source", node1, XPathConstants.NODESET); - assertNotNull(dataSources1); - assertEquals(0, dataSources1.getLength()); - - assertEquals("d2NodeJNDI", xpath.evaluate("@name", node2)); - assertEquals("jndi/x", xpath.evaluate("@parameters", node2)); - assertEquals(JNDIDataSourceFactory.class.getName(), xpath.evaluate("@factory", node2)); - - NodeList dataSources2 = (NodeList) xpath.evaluate("data-source", node2, XPathConstants.NODESET); - assertNotNull(dataSources2); - assertEquals(0, dataSources2.getLength()); - } - - private void assertPerformUpgrade_3_0_0_1_d1Map1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - } - - private void assertPerformUpgrade_3_0_0_1_d1Map2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - } - - @Test - public void testPerformUpgradeFrom6() throws Exception { - File testFolder = setupTestDirectory("testUpgrade6a"); - String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/6a/"; - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - } - }; - - String[] resources = { "cayenne-PROJECT1.xml", "testProjectMap1_1.map.xml", "testProjectMap1_2.map.xml" }; - List<File> files = new ArrayList<File>(); - - for (String name : resources) { - URL xmlUrl = getClass().getClassLoader().getResource(sourceUrl + name); - File target = new File(testFolder, name); - ResourceUtil.copyResourceToFile(xmlUrl, target); - files.add(target); - } - - Injector injector = DIBootstrap.createInjector(testModule); - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - injector.injectMembers(upgrader); - - Resource source = new URLResource(files.get(0).toURI().toURL()); - assertNotNull(source); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - assertNotNull(handler); - - Resource upgraded = handler.performUpgrade(); - assertNotNull(upgraded); - assertNotSame(source, upgraded); - - assertPerformUpgrade6Cayenne(files.get(0)); - assertPerformUpgrade6Map1(files.get(1)); - assertPerformUpgradeMap2(files.get(2)); - } - - private void assertPerformUpgrade6Map1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - - NodeList maps = (NodeList) xpath.evaluate("/data-map/obj-entity/entity-listener", document, - XPathConstants.NODESET); - assertNotNull(maps); - assertEquals(0, maps.getLength()); - } - - private void assertPerformUpgrade6Cayenne(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/domain/@project-version", document)); - } - - private void assertPerformUpgradeMap2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - } - - @Test - public void testObjAttributeDelete() throws Exception { - - File testFolder = setupTestDirectory("testObjAttribute"); - String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/6a/delete_shadow_attributes/"; - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - } - }; - - ArrayList<String> source = new ArrayList<String>(); - source.add("cayenne-TestProject.xml"); - source.add("testProjectMap1.map.xml"); - source.add("testProjectMap2.map.xml"); - - ArrayList<File> file = new ArrayList<File>(); - - for (String name : source) { - URL xmlUrl = getClass().getClassLoader().getResource(sourceUrl + name); - File target = new File(testFolder, name); - ResourceUtil.copyResourceToFile(xmlUrl, target); - file.add(target); - } - - Injector injector = DIBootstrap.createInjector(testModule); - ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7(); - injector.injectMembers(upgrader); - - Resource resource = new URLResource(file.get(0).toURI().toURL()); - assertNotNull(resource); - UpgradeHandler handler = upgrader.getUpgradeHandler(resource); - assertNotNull(handler); - - Resource upgraded = handler.performUpgrade(); - assertNotNull(upgraded); - assertNotSame(resource, upgraded); - - assertPerformUpgrade6Cayenne(file.get(0)); - assertObjAttributeMap1(file.get(1)); - assertObjAttributeMap2(file.get(2)); - } - - private void assertObjAttributeMap1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - - String xpathValue = "/data-map/obj-entity[@name='GreatArtist']/obj-attribute"; - XPathExpression expr = xpath.compile(xpathValue); - Node node = (Node) expr.evaluate(document, XPathConstants.NODE); - - assertEquals("attribute2", xpath.evaluate("@name", node)); - } - - private void assertObjAttributeMap2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - - String xpath_1 = "/data-map/obj-entity[@name='House']/obj-attribute/@name"; - String xpath_2 = "/data-map/obj-entity[@name='Penthouse']/obj-attribute/@name"; - XPathExpression expr = xpath.compile(xpath_1); - String houseAttr = (String) expr.evaluate(document, XPathConstants.STRING); - expr = xpath.compile(xpath_2); - String penthouseAttr = (String) expr.evaluate(document, XPathConstants.STRING); - - assertEquals("attribute2", houseAttr); - assertEquals("attribute3", penthouseAttr); - } - -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java deleted file mode 100644 index 610d77c..0000000 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java +++ /dev/null @@ -1,197 +0,0 @@ -/***************************************************************** - * 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.cayenne.project.upgrade.v8; - -import org.apache.cayenne.CayenneRuntimeException; -import org.apache.cayenne.configuration.ConfigurationNameMapper; -import org.apache.cayenne.configuration.DataMapLoader; -import org.apache.cayenne.configuration.DefaultConfigurationNameMapper; -import org.apache.cayenne.configuration.XMLDataMapLoader; -import org.apache.cayenne.di.*; -import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; -import org.apache.cayenne.di.spi.DefaultClassLoaderManager; -import org.apache.cayenne.project.FileProjectSaver; -import org.apache.cayenne.project.ProjectSaver; -import org.apache.cayenne.project.unit.Project2Case; -import org.apache.cayenne.project.upgrade.UpgradeHandler; -import org.apache.cayenne.resource.Resource; -import org.apache.cayenne.resource.URLResource; -import org.apache.cayenne.test.file.FileUtil; -import org.apache.cayenne.test.resource.ResourceUtil; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathFactory; -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.*; - -public class ProjectUpgrader_V8Test extends Project2Case { - - protected File setupTestDirectory(String subfolder) { - String classPath = getClass().getName().replace('.', '/'); - String location = "target/testrun/" + classPath + "/" + subfolder; - File testDirectory = new File(location); - - // delete old tests - if (testDirectory.exists()) { - if (!FileUtil.delete(location, true)) { - throw new CayenneRuntimeException( - "Error deleting test directory '%s'", - location); - } - } - - if (!testDirectory.mkdirs()) { - throw new CayenneRuntimeException( - "Error creating test directory '%s'", - location); - } - - return testDirectory; - } - - @Test - public void testPerformUpgrade() throws Exception { - - File testFolder = setupTestDirectory("testPerformUpgrade_7"); - String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/7a/"; - - List<String> sources = new ArrayList<>(); - - sources.add("cayenne-PROJECT1.xml"); - sources.add("testProjectMap1_1.map.xml"); - sources.add("testProjectMap1_2.map.xml"); - - // upgrades are done in-place, so copy it first - List<File> targetsBefore = new ArrayList<>(); - for (String source : sources) { - - URL url = getClass().getClassLoader().getResource(sourceUrl + source); - File target = new File(testFolder, source); - assertNotNull(source); - ResourceUtil.copyResourceToFile(url, target); - targetsBefore.add(target); - } - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - } - }; - - ProjectUpgrader_V8 upgrader = new ProjectUpgrader_V8(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(targetsBefore.get(0).toURL()); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - Resource upgraded = handler.performUpgrade(); - assertNotNull(upgraded); - assertNotSame(source, upgrader); - - // check that all the new files are created... - String[] targetsAfterNames = new String[] { - "cayenne-PROJECT1.xml", "testProjectMap1_1.map.xml", "testProjectMap1_2.map.xml" - }; - - File[] targetsAfter = new File[targetsAfterNames.length]; - for (int i = 0; i < targetsAfter.length; i++) { - targetsAfter[i] = new File(testFolder, targetsAfterNames[i]); - assertTrue("File was not created: " + targetsAfter[i].getAbsolutePath(), targetsAfter[i].exists()); - } - - // assert XML structure of the generated files - assertPerformUpgrade_7_cayenne(targetsAfter[0]); - assertPerformUpgrade_map1_1(targetsAfter[1]); - assertPerformUpgrade_map1_2(targetsAfter[2]); - } - - private void assertPerformUpgrade_7_cayenne(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("", xpath.evaluate("/domain/@name", document)); - assertEquals("9", xpath.evaluate("/domain/@project-version", document)); - - NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET); - assertNotNull(maps); - assertEquals(2, maps.getLength()); - - Node map1 = maps.item(0); - Node map2 = maps.item(1); - - assertEquals("testProjectMap1_1", xpath.evaluate("@name", map1)); - assertEquals("testProjectMap1_2", xpath.evaluate("@name", map2)); - - NodeList nodes = (NodeList) xpath.evaluate("/domain/node", document, XPathConstants.NODESET); - assertNotNull(nodes); - assertEquals(1, nodes.getLength()); - } - - private void assertPerformUpgrade_map1_1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - - NodeList queryNodes = (NodeList) xpath.evaluate("/data-map/query", document, XPathConstants.NODESET); - assertNotNull(queryNodes); - - Map<String, Element> queries = new HashMap<>(); - - for (int i = 0; i < queryNodes.getLength(); i++) { - Element query = (Element) queryNodes.item(i); - queries.put(query.getAttribute("name"), query); - } - - assertEquals("", queries.get("EjbqlQueryTest").getAttribute("factory")); - assertEquals("", queries.get("SQLTemplateTest").getAttribute("factory")); - assertEquals("", queries.get("SelectQueryTest").getAttribute("factory")); - assertEquals("", queries.get("ProcedureQueryTest").getAttribute("factory")); - - assertEquals("EJBQLQuery", queries.get("EjbqlQueryTest").getAttribute("type")); - assertEquals("SQLTemplate", queries.get("SQLTemplateTest").getAttribute("type")); - assertEquals("SelectQuery", queries.get("SelectQueryTest").getAttribute("type")); - assertEquals("ProcedureQuery", queries.get("ProcedureQueryTest").getAttribute("type")); - } - - private void assertPerformUpgrade_map1_2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - } -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java deleted file mode 100644 index 3851a2e..0000000 --- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java +++ /dev/null @@ -1,249 +0,0 @@ -/***************************************************************** - * 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.cayenne.project.upgrade.v9; - -import org.apache.cayenne.CayenneRuntimeException; -import org.apache.cayenne.configuration.ConfigurationNameMapper; -import org.apache.cayenne.configuration.DataMapLoader; -import org.apache.cayenne.configuration.DefaultConfigurationNameMapper; -import org.apache.cayenne.configuration.XMLDataMapLoader; -import org.apache.cayenne.di.*; -import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; -import org.apache.cayenne.di.spi.DefaultClassLoaderManager; -import org.apache.cayenne.project.FileProjectSaver; -import org.apache.cayenne.project.ProjectSaver; -import org.apache.cayenne.project.unit.Project2Case; -import org.apache.cayenne.project.upgrade.UpgradeHandler; -import org.apache.cayenne.project.upgrade.UpgradeMetaData; -import org.apache.cayenne.project.upgrade.UpgradeType; -import org.apache.cayenne.resource.Resource; -import org.apache.cayenne.resource.URLResource; -import org.apache.cayenne.test.file.FileUtil; -import org.apache.cayenne.test.resource.ResourceUtil; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathFactory; -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.*; - -public class ProjectUpgrader_V9Test extends Project2Case { - - @Test - public void testMetadata_3_0_0_1() { - - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/3_0_0_1a/cayenne.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V9 upgrader = new ProjectUpgrader_V9(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - - assertSame(UpgradeType.UPGRADE_NEEDED, md.getUpgradeType()); - assertNull(md.getIntermediateUpgradeVersion()); - assertEquals("3.0.0.1", md.getProjectVersion()); - assertEquals("9", md.getSupportedVersion()); - } - - @Test - public void testMetadata_Type6() { - String baseUrl = getClass().getPackage().getName().replace('.', '/'); - URL url = getClass().getClassLoader().getResource(baseUrl + "/6a/cayenne-PROJECT1.xml"); - assertNotNull(url); - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - ProjectUpgrader_V9 upgrader = new ProjectUpgrader_V9(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(url); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - assertNotNull(handler); - assertSame(source, handler.getProjectSource()); - - UpgradeMetaData md = handler.getUpgradeMetaData(); - assertNotNull(md); - assertSame(UpgradeType.UPGRADE_NEEDED, md.getUpgradeType()); - assertNull(md.getIntermediateUpgradeVersion()); - assertEquals("6", md.getProjectVersion()); - assertEquals("9", md.getSupportedVersion()); - } - - protected File setupTestDirectory(String subfolder) { - String classPath = getClass().getName().replace('.', '/'); - String location = "target/testrun/" + classPath + "/" + subfolder; - File testDirectory = new File(location); - - // delete old tests - if (testDirectory.exists()) { - if (!FileUtil.delete(location, true)) { - throw new CayenneRuntimeException( - "Error deleting test directory '%s'", - location); - } - } - - if (!testDirectory.mkdirs()) { - throw new CayenneRuntimeException( - "Error creating test directory '%s'", - location); - } - - return testDirectory; - } - - @Test - public void testPerformUpgradeFrom8() throws Exception { - - File testFolder = setupTestDirectory("testPerformUpgradeFrom8"); - String sourceUrl = getClass().getPackage().getName().replace('.', '/') + "/"; - - List<String> sources = new ArrayList<>(); - - sources.add("cayenne-PROJECT1.xml"); - sources.add("testProjectMap1_1.map.xml"); - sources.add("testProjectMap1_2.map.xml"); - sources.add("reverseEngineering.xml"); - - // upgrades are done in-place, so copy it first - List<File> targetsBefore = new ArrayList<>(); - for (String source : sources) { - - URL url = getClass().getClassLoader().getResource(sourceUrl + source); - File target = new File(testFolder, source); - assertNotNull(source); - ResourceUtil.copyResourceToFile(url, target); - targetsBefore.add(target); - } - - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - binder.bind(ProjectSaver.class).to(FileProjectSaver.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - } - }; - - ProjectUpgrader_V9 upgrader = new ProjectUpgrader_V9(); - Injector injector = DIBootstrap.createInjector(testModule); - injector.injectMembers(upgrader); - - Resource source = new URLResource(targetsBefore.get(0).toURI().toURL()); - UpgradeHandler handler = upgrader.getUpgradeHandler(source); - - Resource upgraded = handler.performUpgrade(); - assertNotNull(upgraded); - assertNotSame(source, upgrader); - - // check that all the new files are created... - String[] targetsAfterNames = new String[] { - "cayenne-PROJECT1.xml", "testProjectMap1_1.map.xml", "testProjectMap1_2.map.xml" - }; - - File[] targetsAfter = new File[targetsAfterNames.length]; - for (int i = 0; i < targetsAfter.length; i++) { - targetsAfter[i] = new File(testFolder, targetsAfterNames[i]); - assertTrue("File was not created: " + targetsAfter[i].getAbsolutePath(), targetsAfter[i].exists()); - } - - // assert XML structure of the generated files - assertPerformUpgradeFrom8_cayenne(targetsAfter[0]); - assertPerformUpgradeFrom8_map1_1(targetsAfter[1]); - assertPerformUpgradeFrom8_map1_2(targetsAfter[2]); - assertFalse(new File(testFolder, "reverseEngineering.xml").exists()); - } - - private void assertPerformUpgradeFrom8_cayenne(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("", xpath.evaluate("/domain/@name", document)); - assertEquals("9", xpath.evaluate("/domain/@project-version", document)); - - NodeList maps = (NodeList) xpath.evaluate("/domain/map", document, XPathConstants.NODESET); - assertNotNull(maps); - assertEquals(2, maps.getLength()); - - Node map1 = maps.item(0); - Node map2 = maps.item(1); - - assertEquals("testProjectMap1_1", xpath.evaluate("@name", map1)); - assertEquals("testProjectMap1_2", xpath.evaluate("@name", map2)); - - NodeList nodes = (NodeList) xpath.evaluate("/domain/node", document, XPathConstants.NODESET); - assertNotNull(nodes); - assertEquals(1, nodes.getLength()); - } - - private void assertPerformUpgradeFrom8_map1_1(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - - NodeList reverseEngineeringNodes = (NodeList) xpath.evaluate("/data-map/reverse-engineering-config", - document, XPathConstants.NODESET); - assertEquals(0, reverseEngineeringNodes.getLength()); - } - - private void assertPerformUpgradeFrom8_map1_2(File file) throws Exception { - Document document = toDOMTree(file); - - XPath xpath = XPathFactory.newInstance().newXPath(); - assertEquals("9", xpath.evaluate("/data-map/@project-version", document)); - } - -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT1.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT1.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT1.xml index 31fb0d3..5b27d93 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT1.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT1.xml @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> -<domain name="DefaultDomain" project-version="6"> - - <map name="testProjectMap1_1" /> - <map name="testProjectMap1_2" /> - +<domain xmlns="http://cayenne.apache.org/schema/10/domain" + project-version="10"> + <map name="testProjectMap1_1"/> + <map name="testProjectMap1_2"/> <node name="testProjectNode1" - adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory"> + adapter="org.example.test.Adapter" + factory="org.example.test.DataSourceFactory"> + <map-ref name="testProjectMap1_1"/> <data-source> <connectionPool min="1" max="1" /> <login /> </data-source> - <map-ref name="testProjectMap1_1" /> </node> </domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT2.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT2.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT2.xml index 7fba199..c83d807 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT2.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/cayenne-PROJECT2.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> -<domain name="DefaultDomain" project-version="6"> - - <map name="testProjectMap2_1" /> - <map name="testProjectMap2_2" /> - - <node name="testProjectNode2" adapter="org.example.test.Adapter" - factory="org.apache.cayenne.configuration.XMLPoolingDataSourceFactory"> - <map-ref name="testProjectMap2_1" /> +<domain xmlns="http://cayenne.apache.org/schema/10/domain" + project-version="10"> + <map name="testProjectMap2_1"/> + <map name="testProjectMap2_2"/> + <node name="testProjectNode2" + adapter="org.example.test.Adapter" + factory="org.apache.cayenne.configuration.XMLPoolingDataSourceFactory"> + <map-ref name="testProjectMap2_1"/> <data-source> <driver value="xyzDriver"/> <url value="xyzUrl"/> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_1.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_1.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_1.map.xml index 6b79eb5..abbaaf3 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_1.map.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_1.map.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" - project-version="6"> - -</data-map> +<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" + project-version="10"/> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_2.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_2.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_2.map.xml index 6b79eb5..abbaaf3 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_2.map.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap1_2.map.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" - project-version="6"> - -</data-map> +<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" + project-version="10"/> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_1.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_1.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_1.map.xml index 6b79eb5..abbaaf3 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_1.map.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_1.map.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" - project-version="6"> - -</data-map> +<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" + project-version="10"/> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_2.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_2.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_2.map.xml index 6b79eb5..abbaaf3 100644 --- a/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_2.map.xml +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/testProjectMap2_2.map.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" - project-version="6"> - -</data-map> +<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" + project-version="10"/> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml new file mode 100644 index 0000000..c3f0681 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v10.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Fake version to test DefaultUpgradeService --> +<domain project-version="10"/> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v11.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v11.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v11.xml new file mode 100644 index 0000000..51f7c4c --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v11.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Fake version to test DefaultUpgradeService --> +<domain project-version="11"/> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v3.2.1.0.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v3.2.1.0.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v3.2.1.0.xml new file mode 100644 index 0000000..b8c95e1 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v3.2.1.0.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Fake version to test DefaultUpgradeService --> +<domain project-version="3.2.1.0"/> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v5.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v5.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v5.xml new file mode 100644 index 0000000..0cb4160 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v5.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Fake version to test DefaultUpgradeService --> +<domain project-version="5"/> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v6.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v6.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v6.xml new file mode 100644 index 0000000..11735326 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v6.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain project-version="6"> + + <property name="cayenne.DataDomain.usingExternalTransactions" value="true"/> + + <map name="testProjectMap1_1" /> + <map name="testProjectMap1_2" /> + + <node name="testProjectNode1" + adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory"> + <data-source> + <connectionPool min="1" max="1" /> + <login /> + </data-source> + <map-ref name="testProjectMap1_1" /> + </node> +</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v7.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v7.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v7.xml new file mode 100644 index 0000000..7b4a247 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v7.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain project-version="7"> + + <map name="testProjectMap1_1" /> + <map name="testProjectMap1_2" /> + + <node name="testProjectNode1" + adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory"> + <data-source> + <connectionPool min="1" max="1" /> + <login /> + </data-source> + <map-ref name="testProjectMap1_1" /> + </node> +</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v8.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v8.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v8.xml new file mode 100644 index 0000000..745ea3f --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v8.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain project-version="8"> + + <map name="testProjectMap1_1" /> + <map name="testProjectMap1_2" /> + + <node name="testProjectNode1" + adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory"> + <data-source> + <connectionPool min="1" max="1" /> + <login /> + </data-source> + <map-ref name="testProjectMap1_1" /> + </node> +</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v9.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v9.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v9.xml new file mode 100644 index 0000000..52cf7b4 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/cayenne-project-v9.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain project-version="9"> + + <map name="testProjectMap1_1" /> + <map name="testProjectMap1_2" /> + + <node name="testProjectNode1" + adapter="org.example.test.Adapter" factory="org.example.test.DataSourceFactory"> + <data-source> + <connectionPool min="1" max="1" /> + <login /> + </data-source> + <map-ref name="testProjectMap1_1" /> + </node> +</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v6.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v6.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v6.map.xml new file mode 100644 index 0000000..25167f4 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v6.map.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" + project-version="6"> +<db-entity name="Artist"> + <db-attribute name="attributeOne" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/> + <db-attribute name="attributeTwo" type="DATE"/> + </db-entity> + <obj-entity name="Artist" dbEntityName="Artist"> + <entity-listener class="EntityListener"> + <post-add method-name="prePersistEntityListener"/> + <post-persist method-name="postPersistEntityListener"/> + <pre-update method-name="preUpdateEntityListener"/> + <post-update method-name="postUpdateEntityListener"/> + <pre-remove method-name="preRemoveEntityListener"/> + <post-remove method-name="postRemoveEntityListener"/> + <post-load method-name="postLoadEntityListener"/> + </entity-listener> + </obj-entity> +</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v7.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v7.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v7.map.xml new file mode 100644 index 0000000..dcc9580 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v7.map.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd" + project-version="7"> + <db-entity name="Artist"> + <db-attribute name="untitledAttr" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/> + <db-attribute name="untitledAttr1" type="DATE"/> + </db-entity> + <obj-entity name="Artist" dbEntityName="Artist"> + <entity-listener class="NowyListener"> + </entity-listener> + </obj-entity> + <query name="EjbqlQueryTest" factory="org.apache.cayenne.map.EjbqlBuilder"> + <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> + <property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/> + <ejbql><![CDATA[select a from Artist a]]></ejbql> + </query> + <query name="SQLTemplateTest" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap"> + <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> + <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) +VALUES (512, 'No Painting Like This', 12.5)]]></sql> + <sql adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) VALUES (512, 'No Painting Like This', 12.5)]]></sql> + </query> + <query name="SelectQueryTest" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Painting"> + <qualifier><![CDATA[toArtist = $artist]]></qualifier> + <ordering><![CDATA[paintingTitle]]></ordering> + </query> + <query name="ProcedureQueryTest" factory="org.apache.cayenne.map.ProcedureQueryBuilder" root="procedure" root-name="cayenne_tst_select_proc" result-entity="Artist"> + </query> +</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v8.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v8.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v8.map.xml new file mode 100644 index 0000000..1464a49 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v8.map.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/8/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/8/modelMap http://cayenne.apache.org/schema/8/modelMap.xsd" + project-version="8"> + <reverse-engineering-config name="reverseEngineering"/> + <db-entity name="Artist"> + <db-attribute name="untitledAttr" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/> + <db-attribute name="untitledAttr1" type="DATE"/> + </db-entity> + <obj-entity name="Artist" dbEntityName="Artist"> + </obj-entity> +</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/38553b16/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v9.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v9.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v9.map.xml new file mode 100644 index 0000000..1787bf0 --- /dev/null +++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v9.map.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd" + project-version="9"> + <db-entity name="Artist"> + <db-attribute name="untitledAttr" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/> + <db-attribute name="untitledAttr1" type="DATE"/> + </db-entity> + <obj-entity name="Artist" dbEntityName="Artist"> + </obj-entity> +</data-map>
