parent.appendChild( persistenceUnitElement ); persistenceUnitElement.setAttribute( PersistenceDescriptorXMLMarshaller.NAME, persistenceUnit.getName() ); if ( persistenceUnit.getTransactionType() != null ) { persistenceUnitElement.setAttribute( PersistenceDescriptorXMLMarshaller.TRANSACTION_TYPE, persistenceUnit.getTransactionType().name() ); visitDescription( persistenceUnitElement, persistenceUnit.getDescription() ); visitProvider( persistenceUnitElement, persistenceUnit.getProvider() ); visitJTADataSource( persistenceUnitElement, persistenceUnit.getJtaDataSource() ); visitNonJTADataSource( persistenceUnitElement, persistenceUnit.getNonJtaDataSource() ); if ( persistenceUnit.getMappingFile() != null ) { for ( String mappingFile : persistenceUnit.getMappingFile() ) { visitMappingFile( persistenceUnitElement, mappingFile ); if ( persistenceUnit.getJarFile() != null ) { for ( String jarFile : persistenceUnit.getJarFile() ) { visitJarFile( persistenceUnitElement, jarFile ); if ( persistenceUnit.getClasses() != null ) { for ( PersistableDataObject clazz : persistenceUnit.getClasses() ) { visitClass( persistenceUnitElement, clazz.getValue() ); visitExcludeUnlistedClasses( persistenceUnitElement, persistenceUnit.getExcludeUnlistedClasses() ); visitSharedChacheMode( persistenceUnitElement, persistenceUnit.getSharedCacheMode() ); visitValidationMode( persistenceUnitElement, persistenceUnit.getValidationMode() ); visitProperties( persistenceUnitElement, persistenceUnit.getProperties() );
private PersistenceDescriptorModel expectedDescriptor() { PersistenceDescriptorModel descriptor = new PersistenceDescriptorModel(); descriptor.setVersion( "2.1" ); PersistenceUnitModel persistenceUnit = new PersistenceUnitModel(); descriptor.setPersistenceUnit( persistenceUnit ); persistenceUnit.setName( "org.test.persistence-unit" ); persistenceUnit.setDescription( "org.test.description" ); persistenceUnit.setProvider( "org.test.Provider" ); persistenceUnit.setJtaDataSource( "java:jboss/datasources/ExampleDS" ); persistenceUnit.getMappingFile().add( "META-INF/Mapping1.xml" ); persistenceUnit.getMappingFile().add( "META-INF/Mapping2.xml" ); persistenceUnit.getJarFile().add( "file1.jar" ); persistenceUnit.getJarFile().add( "file2.jar" ); persistenceUnit.getClasses().add(new PersistableDataObject("org.test.Entity1") ); persistenceUnit.getClasses().add( new PersistableDataObject("org.test.Entity2") ); persistenceUnit.setExcludeUnlistedClasses( true ); persistenceUnit.setSharedCacheMode( CachingType.ALL ); persistenceUnit.setValidationMode( ValidationMode.AUTO ); persistenceUnit.setTransactionType( TransactionType.JTA ); persistenceUnit.addProperty( new Property( "property1", "property1_value" ) ); persistenceUnit.addProperty( new Property( "property2", "property2_value" ) ); return descriptor; }
descriptorModel.setVersion("2.0"); PersistenceUnitModel unitModel = new PersistenceUnitModel(); descriptorModel.setPersistenceUnit(unitModel); unitModel.setName(module.getPom().getGav().toString()); unitModel.setTransactionType(TransactionType.JTA); unitModel.setProvider("org.hibernate.jpa.HibernatePersistenceProvider"); unitModel.setJtaDataSource("java:jboss/datasources/ExampleDS"); unitModel.addProperty(new Property("hibernate.dialect", "org.hibernate.dialect.H2Dialect")); unitModel.addProperty(new Property("hibernate.max_fetch_depth", "3")); unitModel.addProperty(new Property("hibernate.hbm2ddl.auto", "update")); unitModel.addProperty(new Property("hibernate.show_sql", "false")); unitModel.addProperty(new Property("hibernate.id.new_generator_mappings", "false")); unitModel.addProperty(new Property("hibernate.transaction.jta.platform", "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform")); unitModel.setExcludeUnlistedClasses(true);
if (unitModel.getName() == null || unitModel.getName().trim().isEmpty()) { messages.add(newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NAME_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NAME_EMPTY)); if (unitModel.getProvider() == null || unitModel.getProvider().trim().isEmpty()) { messages.add(newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_PROVIDER_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_PROVIDER_EMPTY)); if (unitModel.getTransactionType() == null) { messages.add(newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_TRANSACTION_TYPE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_TRANSACTION_TYPE_EMPTY)); } else if (unitModel.getTransactionType() == TransactionType.JTA && (unitModel.getJtaDataSource() == null || unitModel.getJtaDataSource().trim().isEmpty())) { messages.add(newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_JTA_DATASOURCE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_JTA_DATASOURCE_EMPTY)); } else if (unitModel.getTransactionType() == TransactionType.RESOURCE_LOCAL && (unitModel.getNonJtaDataSource() == null || unitModel.getNonJtaDataSource().trim().isEmpty())) { messages.add(newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NON_JTA_DATASOURCE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NON_JTA_DATASOURCE_EMPTY)); if (unitModel.getClasses() != null && !unitModel.getClasses().isEmpty()) { ClassLoader moduleClassLoader = moduleClassLoaderHelper.getModuleClassLoader(module); unitModel.getClasses().forEach(clazz -> Optional.ofNullable(classValidator.validate( clazz.getValue(), moduleClassLoader)).ifPresent(messages::addAll)); if (unitModel.getProperties() != null) { int[] index = {1}; unitModel.getProperties().forEach(property -> messages.addAll(Optional.ofNullable(propertyValidator.validate(property.getName(), property.getValue(), index[0]++)).orElse(Collections.emptyList())) );
private PersistenceDescriptorModel createValidDescriptor() { PersistenceDescriptorModel descriptor = new PersistenceDescriptorModel(); descriptor.setVersion(VERSION); PersistenceUnitModel unit = new PersistenceUnitModel(); descriptor.setPersistenceUnit(unit); unit.setJtaDataSource(JTA_DATASOURCE); unit.setName(PERSISTENCE_UNIT_NAME); unit.setProvider(PERSISTENCE_PROVIDER); unit.setTransactionType(TransactionType.JTA); List<Property> properties = new ArrayList<>(); properties.add(new Property("name1", "value1")); properties.add(new Property("name2", "value2")); unit.setProperties(properties); List<PersistableDataObject> classes = new ArrayList<>(); classes.add(new PersistableDataObject(PersistableClass1.class.getName())); classes.add(new PersistableDataObject(PersistableClass2.class.getName())); classes.add(new PersistableDataObject(PersistableClass3.class.getName())); descriptor.getPersistenceUnit().setClasses(classes); return descriptor; } }
@Test public void testSetup() { final PersistenceDescriptorEditorContent model = spy(newPersistenceDescriptorEditorContent()); doReturn(model).when(editorService).loadContent(any(), anyBoolean()); persistencePresenter.setup(mock(ProjectScreenModel.class)).catch_(i -> { Assert.fail("Promise should've been resolved!"); return promises.resolve(); }); verify(view).init(eq(persistencePresenter)); verify(editorService).loadContent(any(), anyBoolean()); verify(propertiesListPresenter).setup(any(), any(), any()); verify(persistableDataObjectsListPresenter).setup(any(), any(), any()); verify(view).setPersistenceUnit(model.getDescriptorModel().getPersistenceUnit().getName()); verify(view).setPersistenceProvider(model.getDescriptorModel().getPersistenceUnit().getProvider()); verify(view).setDataSource(eq(model.getDescriptorModel().getPersistenceUnit().getJtaDataSource())); }
private void visitPersistenceUnit( Element element ) { PersistenceUnitModel persistenceUnit = new PersistenceUnitModel(); descriptorModel.setPersistenceUnit( persistenceUnit ); persistenceUnit.setName( element.getAttribute( PersistenceDescriptorXMLMarshaller.NAME ) ); String transactionType = element.getAttribute( PersistenceDescriptorXMLMarshaller.TRANSACTION_TYPE ); persistenceUnit.setTransactionType( parseTransactionType( transactionType ) ); visitDescription( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.DESCRIPTION ) ); visitProvider( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.PROVIDER ) ); visitJTADataSource( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.JTA_DATA_SOURCE ) ); visitNonJTADataSource( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.NON_JTA_DATA_SOURCE ) ); visitMappingFile( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.MAPPING_FILE ) ); visitJarFile( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.JAR_FILE ) ); visitClass( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.CLASS ) ); visitExcludeUnlistedClasses( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.EXCLUDE_UNLISTED_CLASSES ) ); visitSharedCacheMode( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.SHARED_CACHE_MODE ) ); visitValidationMode( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.VALIDATION_MODE ) ); visitProperties( persistenceUnit, element.getElementsByTagName( PersistenceDescriptorXMLMarshaller.PROPERTIES ) ); }
private boolean containsClass(PersistenceUnitModel persistenceUnit, String className) { return persistenceUnit != null && persistenceUnit.getClasses() != null && persistenceUnit.getClasses().contains(new PersistableDataObject(className)); }
@Test public void testValidateMissingJtaDataSource() { descriptor.getPersistenceUnit().setTransactionType(TransactionType.JTA); descriptor.getPersistenceUnit().setJtaDataSource(null); List<ValidationMessage> result = validator.validate(path, descriptor); ValidationMessage expectedMessage; //jta datasource validation should fail expectedMessage = newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_JTA_DATASOURCE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_JTA_DATASOURCE_EMPTY); assertTrue(result.contains(expectedMessage)); }
public String buildJPAMarshallingStrategyValue(KieModule kieModule) { PersistenceDescriptorModel pdModel = pdService.load(kieModule); if (pdModel != null) { return "new org.drools.persistence.jpa.marshaller.JPAPlaceholderResolverStrategy(\"" + pdModel.getPersistenceUnit().getName() + "\", classLoader)"; } return null; }
private void visitProvider( PersistenceUnitModel persistenceUnit, NodeList nodes ) { persistenceUnit.setProvider( parseSimpleTextElement( nodes ) ); }
private void visitJTADataSource( PersistenceUnitModel persistenceUnit, NodeList nodes ) { persistenceUnit.setJtaDataSource( parseSimpleTextElement( nodes ) ); }
public void setPersistenceUnit(final String persistenceUnit) { getPersistenceUnitModel().setName(persistenceUnit); fireChangeEvent(); }
@Test public void testValidateMissingNonJtaDataSource() { descriptor.getPersistenceUnit().setTransactionType(TransactionType.RESOURCE_LOCAL); descriptor.getPersistenceUnit().setNonJtaDataSource(null); List<ValidationMessage> result = validator.validate(path, descriptor); ValidationMessage expectedMessage; //jta datasource validation should fail expectedMessage = newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NON_JTA_DATASOURCE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_NON_JTA_DATASOURCE_EMPTY); assertTrue(result.contains(expectedMessage)); }
private PersistenceDescriptorModel createModel() { PersistenceDescriptorModel descriptorModel = new PersistenceDescriptorModel(); descriptorModel.setPersistenceUnit(new PersistenceUnitModel()); return descriptorModel; }
@Test public void testValidateMissingTransactionType() { descriptor.getPersistenceUnit().setTransactionType(null); List<ValidationMessage> result = validator.validate(path, descriptor); ValidationMessage expectedMessage; //transaction type validation should fail expectedMessage = newErrorMessage(PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_TRANSACTION_TYPE_EMPTY_ID, PersistenceDescriptorValidationMessages.PERSISTENCE_UNIT_TRANSACTION_TYPE_EMPTY); assertTrue(result.contains(expectedMessage)); }
@Test public void testSetPersistenceProvider() { final PersistenceDescriptorEditorContent model = newPersistenceDescriptorEditorContent(); persistencePresenter.persistenceDescriptorEditorContent = model; persistencePresenter.setPersistenceProvider("PersistenceProvider"); Assert.assertEquals("PersistenceProvider", model.getDescriptorModel().getPersistenceUnit().getProvider()); verify(persistencePresenter).fireChangeEvent(); }
@Test public void testSetDataSource() { final PersistenceDescriptorEditorContent model = newPersistenceDescriptorEditorContent(); persistencePresenter.persistenceDescriptorEditorContent = model; persistencePresenter.setDataSource("DataSource"); Assert.assertEquals("DataSource", model.getDescriptorModel().getPersistenceUnit().getJtaDataSource()); verify(persistencePresenter).fireChangeEvent(); }
private void setupPropertiesTable() { propertiesListPresenter.setup( view.getPropertiesTable(), getPersistenceUnitModel().getProperties(), (property, presenter) -> presenter.setup(property, this)); }
private PersistenceDescriptorEditorContent newPersistenceDescriptorEditorContent() { final PersistenceDescriptorEditorContent content = new PersistenceDescriptorEditorContent(); final PersistenceDescriptorModel model = new PersistenceDescriptorModel(); model.setVersion("2.0"); final PersistenceUnitModel unitModel = new PersistenceUnitModel(); model.setPersistenceUnit(unitModel); unitModel.setName("UnitName"); unitModel.setTransactionType(TransactionType.JTA); unitModel.setProvider("ProviderClass"); unitModel.setJtaDataSource("JTADataSource"); unitModel.setClasses(Arrays.asList(new PersistableDataObject("Class1"), new PersistableDataObject("Class2"))); content.setDescriptorModel(model); content.setOverview(new Overview()); return content; } }