Search in sources :

Example 11 with Resource

use of org.apache.cayenne.resource.Resource in project cayenne by apache.

the class MergerOptions method storeSQLAction.

/**
 * Allows user to save generated SQL in a file.
 */
public void storeSQLAction() {
    JFileChooser fc = new JFileChooser();
    fc.setDialogType(JFileChooser.SAVE_DIALOG);
    fc.setDialogTitle("Save SQL Script");
    Resource projectDir = getApplication().getProject().getConfigurationResource();
    if (projectDir != null) {
        fc.setCurrentDirectory(new File(projectDir.getURL().getPath()));
    }
    if (fc.showSaveDialog(getView()) == JFileChooser.APPROVE_OPTION) {
        refreshGeneratorAction();
        try {
            File file = fc.getSelectedFile();
            FileWriter fw = new FileWriter(file);
            PrintWriter pw = new PrintWriter(fw);
            pw.print(textForSQL);
            pw.flush();
            pw.close();
        } catch (IOException ex) {
            reportError("Error Saving SQL", ex);
        }
    }
}
Also used : JFileChooser(javax.swing.JFileChooser) FileWriter(java.io.FileWriter) Resource(org.apache.cayenne.resource.Resource) IOException(java.io.IOException) File(java.io.File) PrintWriter(java.io.PrintWriter)

Example 12 with Resource

use of org.apache.cayenne.resource.Resource in project cayenne by apache.

the class DataDomainProvider method loadDescriptorFromConfigs.

private DataChannelDescriptor loadDescriptorFromConfigs() {
    long t0 = System.currentTimeMillis();
    if (logger.isDebugEnabled()) {
        logger.debug("starting configuration loading: " + locations);
    }
    DataChannelDescriptor[] descriptors = new DataChannelDescriptor[locations.size()];
    for (int i = 0; i < locations.size(); i++) {
        String location = locations.get(i);
        Collection<Resource> configurations = resourceLocator.findResources(location);
        if (configurations.isEmpty()) {
            throw new DataDomainLoadException("Configuration resource \"%s\" is not found.", location);
        }
        Resource configurationResource = configurations.iterator().next();
        // no support for multiple configs yet, but this is not a hard error
        if (configurations.size() > 1) {
            logger.info("found " + configurations.size() + " configurations for " + location + ", will use the first one: " + configurationResource.getURL());
        }
        ConfigurationTree<DataChannelDescriptor> tree = loader.load(configurationResource);
        if (!tree.getLoadFailures().isEmpty()) {
            // TODO: andrus 03/10/2010 - log the errors before throwing?
            throw new DataDomainLoadException(tree, "Error loading DataChannelDescriptor");
        }
        descriptors[i] = tree.getRootNode();
    }
    long t1 = System.currentTimeMillis();
    if (logger.isDebugEnabled()) {
        logger.debug("finished configuration loading in " + (t1 - t0) + " ms.");
    }
    return descriptorMerger.merge(descriptors);
}
Also used : DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) Resource(org.apache.cayenne.resource.Resource)

Example 13 with Resource

use of org.apache.cayenne.resource.Resource in project cayenne by apache.

the class DataDomainProviderTest method testGet.

@Test
public void testGet() {
    // create dependencies
    final String testConfigName = "testConfig";
    final DataChannelDescriptor testDescriptor = new DataChannelDescriptor();
    DataMap map1 = new DataMap("map1");
    testDescriptor.getDataMaps().add(map1);
    DataMap map2 = new DataMap("map2");
    testDescriptor.getDataMaps().add(map2);
    DataNodeDescriptor nodeDescriptor1 = new DataNodeDescriptor();
    nodeDescriptor1.setName("node1");
    nodeDescriptor1.getDataMapNames().add("map1");
    nodeDescriptor1.setAdapterType(OracleAdapter.class.getName());
    nodeDescriptor1.setDataSourceFactoryType(MockDataSourceFactory.class.getName());
    nodeDescriptor1.setParameters("jdbc/testDataNode1");
    nodeDescriptor1.setSchemaUpdateStrategyType(ThrowOnPartialOrCreateSchemaStrategy.class.getName());
    testDescriptor.getNodeDescriptors().add(nodeDescriptor1);
    DataNodeDescriptor nodeDescriptor2 = new DataNodeDescriptor();
    nodeDescriptor2.setName("node2");
    nodeDescriptor2.getDataMapNames().add("map2");
    nodeDescriptor2.setParameters("testDataNode2.driver.xml");
    testDescriptor.getNodeDescriptors().add(nodeDescriptor2);
    final DataChannelDescriptorLoader testLoader = new DataChannelDescriptorLoader() {

        @Override
        public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
            return new ConfigurationTree<>(testDescriptor, null);
        }
    };
    final EventManager eventManager = new MockEventManager();
    final TestListener mockListener = new TestListener();
    Module testModule = binder -> {
        final ClassLoaderManager classLoaderManager = new DefaultClassLoaderManager();
        binder.bind(ClassLoaderManager.class).toInstance(classLoaderManager);
        binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
        ServerModule.contributeProperties(binder);
        ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class).add(OpenBaseSniffer.class).add(FrontBaseSniffer.class).add(IngresSniffer.class).add(SQLiteSniffer.class).add(DB2Sniffer.class).add(H2Sniffer.class).add(HSQLDBSniffer.class).add(SybaseSniffer.class).add(DerbySniffer.class).add(SQLServerSniffer.class).add(OracleSniffer.class).add(PostgresSniffer.class).add(MySQLSniffer.class);
        ServerModule.contributeDomainFilters(binder);
        ServerModule.contributeDomainListeners(binder).add(mockListener);
        ServerModule.contributeProjectLocations(binder).add(testConfigName);
        // configure extended types
        ServerModule.contributeDefaultTypes(binder);
        ServerModule.contributeUserTypes(binder);
        ServerModule.contributeTypeFactories(binder);
        binder.bind(EventManager.class).toInstance(eventManager);
        binder.bind(EntitySorter.class).toInstance(new AshwoodEntitySorter());
        binder.bind(SchemaUpdateStrategyFactory.class).to(DefaultSchemaUpdateStrategyFactory.class);
        final ResourceLocator locator = new ClassLoaderResourceLocator(classLoaderManager) {

            public Collection<Resource> findResources(String name) {
                // if this is the request we are getting, just let it go through..
                if (name.endsWith("types.xml")) {
                    return super.findResources(name);
                }
                assertEquals(testConfigName, name);
                return Collections.<Resource>singleton(new MockResource());
            }
        };
        binder.bind(ResourceLocator.class).toInstance(locator);
        binder.bind(Key.get(ResourceLocator.class, Constants.SERVER_RESOURCE_LOCATOR)).toInstance(locator);
        binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class);
        binder.bind(DataChannelDescriptorMerger.class).to(DefaultDataChannelDescriptorMerger.class);
        binder.bind(DataChannelDescriptorLoader.class).toInstance(testLoader);
        binder.bind(DbAdapterFactory.class).to(DefaultDbAdapterFactory.class);
        binder.bind(RuntimeProperties.class).to(DefaultRuntimeProperties.class);
        binder.bind(BatchTranslatorFactory.class).to(DefaultBatchTranslatorFactory.class);
        binder.bind(SelectTranslatorFactory.class).to(DefaultSelectTranslatorFactory.class);
        binder.bind(DataSourceFactory.class).toInstance(new MockDataSourceFactory());
        binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
        binder.bind(QueryCache.class).toInstance(mock(QueryCache.class));
        binder.bind(RowReaderFactory.class).toInstance(mock(RowReaderFactory.class));
        binder.bind(DataNodeFactory.class).to(DefaultDataNodeFactory.class);
        binder.bind(SQLTemplateProcessor.class).toInstance(mock(SQLTemplateProcessor.class));
        binder.bind(EventBridge.class).toProvider(NoopEventBridgeProvider.class);
        binder.bind(DataRowStoreFactory.class).to(DefaultDataRowStoreFactory.class);
        ServerModule.contributeValueObjectTypes(binder);
        binder.bind(ValueObjectTypeRegistry.class).to(DefaultValueObjectTypeRegistry.class);
    };
    Injector injector = DIBootstrap.createInjector(testModule);
    // create and initialize provide instance to test
    DataDomainProvider provider = new DataDomainProvider();
    injector.injectMembers(provider);
    DataChannel channel = provider.get();
    assertNotNull(channel);
    assertTrue(channel instanceof DataDomain);
    DataDomain domain = (DataDomain) channel;
    assertSame(eventManager, domain.getEventManager());
    assertEquals(2, domain.getDataMaps().size());
    assertTrue(domain.getDataMaps().contains(map1));
    assertTrue(domain.getDataMaps().contains(map2));
    assertEquals(2, domain.getDataNodes().size());
    DataNode node1 = domain.getDataNode("node1");
    assertNotNull(node1);
    assertEquals(1, node1.getDataMaps().size());
    assertSame(map1, node1.getDataMaps().iterator().next());
    assertSame(node1, domain.lookupDataNode(map1));
    assertEquals(nodeDescriptor1.getDataSourceFactoryType(), node1.getDataSourceFactory());
    assertNotNull(node1.getDataSource());
    assertNotNull(node1.getSchemaUpdateStrategy());
    assertEquals(nodeDescriptor1.getSchemaUpdateStrategyType(), node1.getSchemaUpdateStrategy().getClass().getName());
    assertNotNull(node1.getAdapter());
    assertEquals(OracleAdapter.class, node1.getAdapter().getClass());
    DataNode node2 = domain.getDataNode("node2");
    assertNotNull(node2);
    assertEquals(1, node2.getDataMaps().size());
    assertSame(map2, node2.getDataMaps().iterator().next());
    assertSame(node2, domain.lookupDataNode(map2));
    assertNull(node2.getDataSourceFactory());
    assertNotNull(node2.getDataSource());
    assertNotNull(node2.getSchemaUpdateStrategy());
    assertEquals(SkipSchemaUpdateStrategy.class.getName(), node2.getSchemaUpdateStrategy().getClass().getName());
    assertNotNull(node2.getAdapter());
    // check that we have mock listener passed correctly
    Persistent mockPersistent = mock(Persistent.class);
    ObjectId mockObjectId = mock(ObjectId.class);
    when(mockObjectId.getEntityName()).thenReturn("mock-entity-name");
    when(mockPersistent.getObjectId()).thenReturn(mockObjectId);
    domain.getEntityResolver().getCallbackRegistry().performCallbacks(LifecycleEvent.POST_LOAD, mockPersistent);
    assertEquals("Should call postLoadCallback() method", 1, TestListener.counter.get());
}
Also used : DataNode(org.apache.cayenne.access.DataNode) RuntimeProperties(org.apache.cayenne.configuration.RuntimeProperties) Injector(org.apache.cayenne.di.Injector) SchemaUpdateStrategyFactory(org.apache.cayenne.access.dbsync.SchemaUpdateStrategyFactory) DerbySniffer(org.apache.cayenne.dba.derby.DerbySniffer) DataRowStoreFactory(org.apache.cayenne.access.DataRowStoreFactory) DefaultClassLoaderManager(org.apache.cayenne.di.spi.DefaultClassLoaderManager) Module(org.apache.cayenne.di.Module) DefaultDataChannelDescriptorMerger(org.apache.cayenne.configuration.DefaultDataChannelDescriptorMerger) MySQLSniffer(org.apache.cayenne.dba.mysql.MySQLSniffer) AdhocObjectFactory(org.apache.cayenne.di.AdhocObjectFactory) DefaultRuntimeProperties(org.apache.cayenne.configuration.DefaultRuntimeProperties) OracleAdapter(org.apache.cayenne.dba.oracle.OracleAdapter) OracleSniffer(org.apache.cayenne.dba.oracle.OracleSniffer) DataDomain(org.apache.cayenne.access.DataDomain) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ThrowOnPartialOrCreateSchemaStrategy(org.apache.cayenne.access.dbsync.ThrowOnPartialOrCreateSchemaStrategy) RowReaderFactory(org.apache.cayenne.access.jdbc.reader.RowReaderFactory) ValueObjectTypeRegistry(org.apache.cayenne.access.types.ValueObjectTypeRegistry) DefaultDataRowStoreFactory(org.apache.cayenne.access.DefaultDataRowStoreFactory) SQLServerSniffer(org.apache.cayenne.dba.sqlserver.SQLServerSniffer) DIBootstrap(org.apache.cayenne.di.DIBootstrap) EntitySorter(org.apache.cayenne.map.EntitySorter) Key(org.apache.cayenne.di.Key) ResourceLocator(org.apache.cayenne.resource.ResourceLocator) DB2Sniffer(org.apache.cayenne.dba.db2.DB2Sniffer) Collection(java.util.Collection) DefaultBatchTranslatorFactory(org.apache.cayenne.access.translator.batch.DefaultBatchTranslatorFactory) HSQLDBSniffer(org.apache.cayenne.dba.hsqldb.HSQLDBSniffer) FrontBaseSniffer(org.apache.cayenne.dba.frontbase.FrontBaseSniffer) H2Sniffer(org.apache.cayenne.dba.h2.H2Sniffer) Resource(org.apache.cayenne.resource.Resource) SybaseSniffer(org.apache.cayenne.dba.sybase.SybaseSniffer) ConfigurationException(org.apache.cayenne.ConfigurationException) PostLoad(org.apache.cayenne.annotation.PostLoad) SQLiteSniffer(org.apache.cayenne.dba.sqlite.SQLiteSniffer) LifecycleEvent(org.apache.cayenne.map.LifecycleEvent) AshwoodEntitySorter(org.apache.cayenne.ashwood.AshwoodEntitySorter) MockResource(org.apache.cayenne.resource.mock.MockResource) Mockito.mock(org.mockito.Mockito.mock) DataChannelDescriptorMerger(org.apache.cayenne.configuration.DataChannelDescriptorMerger) IngresSniffer(org.apache.cayenne.dba.ingres.IngresSniffer) DefaultSelectTranslatorFactory(org.apache.cayenne.access.translator.select.DefaultSelectTranslatorFactory) DefaultValueObjectTypeRegistry(org.apache.cayenne.access.types.DefaultValueObjectTypeRegistry) PostgresSniffer(org.apache.cayenne.dba.postgres.PostgresSniffer) QueryCache(org.apache.cayenne.cache.QueryCache) ConfigurationNameMapper(org.apache.cayenne.configuration.ConfigurationNameMapper) DataChannelDescriptorLoader(org.apache.cayenne.configuration.DataChannelDescriptorLoader) DefaultConfigurationNameMapper(org.apache.cayenne.configuration.DefaultConfigurationNameMapper) Persistent(org.apache.cayenne.Persistent) OpenBaseSniffer(org.apache.cayenne.dba.openbase.OpenBaseSniffer) DefaultSchemaUpdateStrategyFactory(org.apache.cayenne.access.dbsync.DefaultSchemaUpdateStrategyFactory) Slf4jJdbcEventLogger(org.apache.cayenne.log.Slf4jJdbcEventLogger) ConfigurationTree(org.apache.cayenne.configuration.ConfigurationTree) EventBridge(org.apache.cayenne.event.EventBridge) MockEventManager(org.apache.cayenne.event.MockEventManager) JdbcEventLogger(org.apache.cayenne.log.JdbcEventLogger) SQLTemplateProcessor(org.apache.cayenne.access.jdbc.SQLTemplateProcessor) BatchTranslatorFactory(org.apache.cayenne.access.translator.batch.BatchTranslatorFactory) MockDataSourceFactory(org.apache.cayenne.configuration.mock.MockDataSourceFactory) ClassLoaderResourceLocator(org.apache.cayenne.resource.ClassLoaderResourceLocator) Constants(org.apache.cayenne.configuration.Constants) DefaultAdhocObjectFactory(org.apache.cayenne.di.spi.DefaultAdhocObjectFactory) Test(org.junit.Test) FirebirdSniffer(org.apache.cayenne.dba.firebird.FirebirdSniffer) Mockito.when(org.mockito.Mockito.when) DataChannel(org.apache.cayenne.DataChannel) ClassLoaderManager(org.apache.cayenne.di.ClassLoaderManager) DataNodeDescriptor(org.apache.cayenne.configuration.DataNodeDescriptor) SkipSchemaUpdateStrategy(org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy) DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) ObjectId(org.apache.cayenne.ObjectId) EventManager(org.apache.cayenne.event.EventManager) NoopEventBridgeProvider(org.apache.cayenne.event.NoopEventBridgeProvider) Assert(org.junit.Assert) Collections(java.util.Collections) SelectTranslatorFactory(org.apache.cayenne.access.translator.select.SelectTranslatorFactory) DataMap(org.apache.cayenne.map.DataMap) DataChannelDescriptor(org.apache.cayenne.configuration.DataChannelDescriptor) DefaultAdhocObjectFactory(org.apache.cayenne.di.spi.DefaultAdhocObjectFactory) SkipSchemaUpdateStrategy(org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy) DataMap(org.apache.cayenne.map.DataMap) DefaultSchemaUpdateStrategyFactory(org.apache.cayenne.access.dbsync.DefaultSchemaUpdateStrategyFactory) Slf4jJdbcEventLogger(org.apache.cayenne.log.Slf4jJdbcEventLogger) Injector(org.apache.cayenne.di.Injector) DataNode(org.apache.cayenne.access.DataNode) DefaultClassLoaderManager(org.apache.cayenne.di.spi.DefaultClassLoaderManager) DefaultBatchTranslatorFactory(org.apache.cayenne.access.translator.batch.DefaultBatchTranslatorFactory) ResourceLocator(org.apache.cayenne.resource.ResourceLocator) ClassLoaderResourceLocator(org.apache.cayenne.resource.ClassLoaderResourceLocator) OracleAdapter(org.apache.cayenne.dba.oracle.OracleAdapter) DerbySniffer(org.apache.cayenne.dba.derby.DerbySniffer) DefaultConfigurationNameMapper(org.apache.cayenne.configuration.DefaultConfigurationNameMapper) DataDomain(org.apache.cayenne.access.DataDomain) ThrowOnPartialOrCreateSchemaStrategy(org.apache.cayenne.access.dbsync.ThrowOnPartialOrCreateSchemaStrategy) DefaultDataChannelDescriptorMerger(org.apache.cayenne.configuration.DefaultDataChannelDescriptorMerger) Resource(org.apache.cayenne.resource.Resource) MockResource(org.apache.cayenne.resource.mock.MockResource) DefaultDataRowStoreFactory(org.apache.cayenne.access.DefaultDataRowStoreFactory) MySQLSniffer(org.apache.cayenne.dba.mysql.MySQLSniffer) DB2Sniffer(org.apache.cayenne.dba.db2.DB2Sniffer) NoopEventBridgeProvider(org.apache.cayenne.event.NoopEventBridgeProvider) DataChannelDescriptorLoader(org.apache.cayenne.configuration.DataChannelDescriptorLoader) Collection(java.util.Collection) Module(org.apache.cayenne.di.Module) IngresSniffer(org.apache.cayenne.dba.ingres.IngresSniffer) MockEventManager(org.apache.cayenne.event.MockEventManager) ConfigurationTree(org.apache.cayenne.configuration.ConfigurationTree) MockResource(org.apache.cayenne.resource.mock.MockResource) MockDataSourceFactory(org.apache.cayenne.configuration.mock.MockDataSourceFactory) DefaultRuntimeProperties(org.apache.cayenne.configuration.DefaultRuntimeProperties) AshwoodEntitySorter(org.apache.cayenne.ashwood.AshwoodEntitySorter) DefaultValueObjectTypeRegistry(org.apache.cayenne.access.types.DefaultValueObjectTypeRegistry) MockEventManager(org.apache.cayenne.event.MockEventManager) EventManager(org.apache.cayenne.event.EventManager) DefaultSelectTranslatorFactory(org.apache.cayenne.access.translator.select.DefaultSelectTranslatorFactory) ObjectId(org.apache.cayenne.ObjectId) DataNodeDescriptor(org.apache.cayenne.configuration.DataNodeDescriptor) Persistent(org.apache.cayenne.Persistent) DataChannel(org.apache.cayenne.DataChannel) OpenBaseSniffer(org.apache.cayenne.dba.openbase.OpenBaseSniffer) DefaultClassLoaderManager(org.apache.cayenne.di.spi.DefaultClassLoaderManager) ClassLoaderManager(org.apache.cayenne.di.ClassLoaderManager) ClassLoaderResourceLocator(org.apache.cayenne.resource.ClassLoaderResourceLocator) OracleSniffer(org.apache.cayenne.dba.oracle.OracleSniffer) HSQLDBSniffer(org.apache.cayenne.dba.hsqldb.HSQLDBSniffer) Test(org.junit.Test)

Example 14 with Resource

use of org.apache.cayenne.resource.Resource in project cayenne by apache.

the class DataChannelProjectSaverTest method testSaveAs_RecoverFromSaveError.

@Test
public void testSaveAs_RecoverFromSaveError() throws Exception {
    FileProjectSaver saver = new FileProjectSaver(Collections.<ProjectExtension>emptyList()) {

        @Override
        void saveToTempFile(SaveUnit unit, PrintWriter printWriter) {
            throw new CayenneRuntimeException("Test Exception");
        }
    };
    Module testModule = binder -> {
        binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
        binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
        binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class);
        binder.bind(DataChannelDescriptorLoader.class).to(XMLDataChannelDescriptorLoader.class);
        binder.bind(ProjectLoader.class).to(DataChannelProjectLoader.class);
        binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class);
        binder.bind(HandlerFactory.class).to(DefaultHandlerFactory.class);
        binder.bind(DataChannelMetaData.class).to(NoopDataChannelMetaData.class);
        binder.bind(XMLReader.class).toProviderInstance(new XMLReaderProvider(false)).withoutScope();
    };
    Injector injector = DIBootstrap.createInjector(testModule);
    injector.injectMembers(saver);
    String testConfigName = "PROJECT2";
    String baseUrl = getClass().getPackage().getName().replace('.', '/');
    URL url = getClass().getClassLoader().getResource(baseUrl + "/cayenne-" + testConfigName + ".xml");
    Resource source = new URLResource(url);
    Project project = injector.getInstance(ProjectLoader.class).loadProject(source);
    File outFile = setupTestDirectory("testSaveAs_RecoverFromSaveError");
    assertEquals(0, outFile.list().length);
    try {
        saver.saveAs(project, new URLResource(outFile.toURI().toURL()));
        fail("No exception was thrown..");
    } catch (CayenneRuntimeException e) {
        // expected
        assertEquals(0, outFile.list().length);
    }
}
Also used : Injector(org.apache.cayenne.di.Injector) HandlerFactory(org.apache.cayenne.configuration.xml.HandlerFactory) XMLReaderProvider(org.apache.cayenne.configuration.xml.XMLReaderProvider) Project2Case(org.apache.cayenne.project.unit.Project2Case) DefaultClassLoaderManager(org.apache.cayenne.di.spi.DefaultClassLoaderManager) URL(java.net.URL) ConfigurationNameMapper(org.apache.cayenne.configuration.ConfigurationNameMapper) Module(org.apache.cayenne.di.Module) DataChannelDescriptorLoader(org.apache.cayenne.configuration.DataChannelDescriptorLoader) DefaultConfigurationNameMapper(org.apache.cayenne.configuration.DefaultConfigurationNameMapper) AdhocObjectFactory(org.apache.cayenne.di.AdhocObjectFactory) DataMapLoader(org.apache.cayenne.configuration.DataMapLoader) XMLDataChannelDescriptorLoader(org.apache.cayenne.configuration.xml.XMLDataChannelDescriptorLoader) XMLReader(org.xml.sax.XMLReader) DefaultHandlerFactory(org.apache.cayenne.configuration.xml.DefaultHandlerFactory) NoopDataChannelMetaData(org.apache.cayenne.configuration.xml.NoopDataChannelMetaData) XMLDataMapLoader(org.apache.cayenne.configuration.xml.XMLDataMapLoader) DIBootstrap(org.apache.cayenne.di.DIBootstrap) ProjectExtension(org.apache.cayenne.project.extension.ProjectExtension) PrintWriter(java.io.PrintWriter) URLResource(org.apache.cayenne.resource.URLResource) DefaultAdhocObjectFactory(org.apache.cayenne.di.spi.DefaultAdhocObjectFactory) Test(org.junit.Test) DataChannelMetaData(org.apache.cayenne.configuration.xml.DataChannelMetaData) ClassLoaderManager(org.apache.cayenne.di.ClassLoaderManager) File(java.io.File) Resource(org.apache.cayenne.resource.Resource) CayenneRuntimeException(org.apache.cayenne.CayenneRuntimeException) Assert(org.junit.Assert) Collections(java.util.Collections) DefaultAdhocObjectFactory(org.apache.cayenne.di.spi.DefaultAdhocObjectFactory) DefaultConfigurationNameMapper(org.apache.cayenne.configuration.DefaultConfigurationNameMapper) XMLDataMapLoader(org.apache.cayenne.configuration.xml.XMLDataMapLoader) CayenneRuntimeException(org.apache.cayenne.CayenneRuntimeException) URLResource(org.apache.cayenne.resource.URLResource) Resource(org.apache.cayenne.resource.Resource) URL(java.net.URL) XMLDataChannelDescriptorLoader(org.apache.cayenne.configuration.xml.XMLDataChannelDescriptorLoader) NoopDataChannelMetaData(org.apache.cayenne.configuration.xml.NoopDataChannelMetaData) XMLReaderProvider(org.apache.cayenne.configuration.xml.XMLReaderProvider) URLResource(org.apache.cayenne.resource.URLResource) DefaultHandlerFactory(org.apache.cayenne.configuration.xml.DefaultHandlerFactory) Injector(org.apache.cayenne.di.Injector) Module(org.apache.cayenne.di.Module) DefaultClassLoaderManager(org.apache.cayenne.di.spi.DefaultClassLoaderManager) File(java.io.File) XMLReader(org.xml.sax.XMLReader) PrintWriter(java.io.PrintWriter) Test(org.junit.Test)

Example 15 with Resource

use of org.apache.cayenne.resource.Resource in project cayenne by apache.

the class DefaultUpgradeServiceTest method upgradeDOM.

@Test
public void upgradeDOM() throws Exception {
    Resource resource = new URLResource(getClass().getResource("../cayenne-PROJECT1.xml"));
    // Mock service so it will use actual reading but skip actual saving part
    upgradeService = mock(DefaultUpgradeService.class);
    when(upgradeService.upgradeDOM(any(Resource.class), ArgumentMatchers.<UpgradeHandler>anyList())).thenCallRealMethod();
    when(upgradeService.getAdditionalDatamapResources(any(UpgradeUnit.class))).thenCallRealMethod();
    upgradeService.upgradeDOM(resource, handlers);
    // verify(upgradeService, times(3)).saveDocument(any(UpgradeUnit.class));
    for (UpgradeHandler handler : handlers) {
        verify(handler).getVersion();
        verify(handler).processProjectDom(any(UpgradeUnit.class));
        // two data maps
        verify(handler, times(2)).processDataMapDom(any(UpgradeUnit.class));
        verifyNoMoreInteractions(handler);
    }
}
Also used : URLResource(org.apache.cayenne.resource.URLResource) URLResource(org.apache.cayenne.resource.URLResource) Resource(org.apache.cayenne.resource.Resource) UpgradeHandler(org.apache.cayenne.project.upgrade.handlers.UpgradeHandler) Test(org.junit.Test)

Aggregations

Resource (org.apache.cayenne.resource.Resource)21 URLResource (org.apache.cayenne.resource.URLResource)13 URL (java.net.URL)11 Test (org.junit.Test)11 Injector (org.apache.cayenne.di.Injector)8 DataMap (org.apache.cayenne.map.DataMap)7 DataChannelDescriptor (org.apache.cayenne.configuration.DataChannelDescriptor)6 DataMapLoader (org.apache.cayenne.configuration.DataMapLoader)6 CayenneRuntimeException (org.apache.cayenne.CayenneRuntimeException)5 DataChannelDescriptorLoader (org.apache.cayenne.configuration.DataChannelDescriptorLoader)5 File (java.io.File)4 ConfigurationNameMapper (org.apache.cayenne.configuration.ConfigurationNameMapper)4 DefaultConfigurationNameMapper (org.apache.cayenne.configuration.DefaultConfigurationNameMapper)4 AdhocObjectFactory (org.apache.cayenne.di.AdhocObjectFactory)4 ClassLoaderManager (org.apache.cayenne.di.ClassLoaderManager)4 DIBootstrap (org.apache.cayenne.di.DIBootstrap)4 Module (org.apache.cayenne.di.Module)4 DefaultAdhocObjectFactory (org.apache.cayenne.di.spi.DefaultAdhocObjectFactory)4 DefaultClassLoaderManager (org.apache.cayenne.di.spi.DefaultClassLoaderManager)4 Assert (org.junit.Assert)4