Repository: polygene-java Updated Branches: refs/heads/develop 85a37fdc1 -> 559b38a5b
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java index 500d255..35052b4 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/value/ValueVisibilityTest.java @@ -32,7 +32,7 @@ import org.apache.polygene.api.structure.Application; import org.apache.polygene.api.structure.Module; import org.apache.polygene.api.unitofwork.UnitOfWork; import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; -import org.apache.polygene.api.value.NoSuchValueException; +import org.apache.polygene.api.value.NoSuchValueTypeException; import org.apache.polygene.api.value.ValueBuilder; import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.bootstrap.ApplicationAssemblerAdapter; @@ -131,7 +131,7 @@ public class ValueVisibilityTest service.besideLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingBesideModuleVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); @@ -145,35 +145,35 @@ public class ValueVisibilityTest service.belowApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingBelowLayerVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); service.belowLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingBelowModuleVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); service.belowModuleVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingAboveApplicationVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); service.aboveApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingAboveLayerVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); service.aboveLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromServiceWhenAccessingAboveModuleVisibleExpectException() { FromService service = module.findService( FromService.class ).get(); @@ -270,7 +270,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingBesideModuleVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -306,7 +306,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingBelowLayerVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -324,7 +324,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingBelowModuleVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -342,7 +342,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingAboveApplicationVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -360,7 +360,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingAboveLayerVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -378,7 +378,7 @@ public class ValueVisibilityTest } } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromEntityWhenAccessingAboveModuleVisibleExpectException() { UnitOfWork unitOfWork = uowf.newUnitOfWork(); @@ -431,7 +431,7 @@ public class ValueVisibilityTest value.besideLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingBesideModuleVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); @@ -445,35 +445,35 @@ public class ValueVisibilityTest value.belowApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingBelowLayerVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); value.belowLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingBelowModuleVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); value.belowModuleVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingAboveApplicationVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); value.aboveApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingAboveLayerVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); value.aboveLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromValueWhenAccessingAboveModuleVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); @@ -515,7 +515,7 @@ public class ValueVisibilityTest transientt.besideLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingBesideModuleVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); @@ -529,35 +529,35 @@ public class ValueVisibilityTest transientt.belowApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingBelowLayerVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); transientt.belowLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingBelowModuleVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); transientt.belowModuleVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingAboveApplicationVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); transientt.aboveApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingAboveLayerVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); transientt.aboveLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromTransientWhenAccessingAboveModuleVisibleExpectException() { FromTransient transientt = module.newTransient( FromTransient.class ); @@ -599,7 +599,7 @@ public class ValueVisibilityTest object.besideLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingBesideModuleVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); @@ -613,35 +613,35 @@ public class ValueVisibilityTest object.belowApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingBelowLayerVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); object.belowLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingBelowModuleVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); object.belowModuleVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingAboveApplicationVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); object.aboveApplicationVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingAboveLayerVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); object.aboveLayerVisible(); } - @Test( expected = NoSuchValueException.class ) + @Test( expected = NoSuchValueTypeException.class ) public void givenFromObjectWhenAccessingAboveModuleVisibleExpectException() { FromObject object = module.newObject( FromObject.class ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/cache/AbstractCachePoolTest.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/cache/AbstractCachePoolTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/cache/AbstractCachePoolTest.java index 937c03a..358070d 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/cache/AbstractCachePoolTest.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/cache/AbstractCachePoolTest.java @@ -21,15 +21,18 @@ package org.apache.polygene.test.cache; import java.util.Collection; import java.util.Random; -import org.apache.polygene.api.constraint.ConstraintViolation; +import org.apache.polygene.api.constraint.ValueConstraintViolation; import org.apache.polygene.api.constraint.ConstraintViolationException; import org.apache.polygene.spi.cache.Cache; import org.apache.polygene.spi.cache.CachePool; import org.apache.polygene.test.AbstractPolygeneTest; import org.junit.Test; +import static org.hamcrest.core.AnyOf.anyOf; +import static org.hamcrest.core.IsEqual.equalTo; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** @@ -75,11 +78,11 @@ public abstract class AbstractCachePoolTest catch( ConstraintViolationException e ) { // expected - Collection<ConstraintViolation> violations = e.constraintViolations(); + Collection<ValueConstraintViolation> violations = e.constraintViolations(); assertEquals( 1, violations.size() ); - ConstraintViolation violation = violations.iterator().next(); + ValueConstraintViolation violation = violations.iterator().next(); assertEquals( "not optional", violation.constraint().toString() ); - assertEquals( "param1", violation.name() ); + assertThat( violation.name(), anyOf(equalTo("cacheId"), equalTo( "arg0" )) ); // depends on whether -parameters was given at compile time. } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java index 8a004a7..20f0b1f 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/EntityStoreTestSuite.java @@ -19,6 +19,9 @@ */ package org.apache.polygene.test.entity.model; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.apache.polygene.api.association.NamedAssociation; import org.apache.polygene.api.common.Visibility; import org.apache.polygene.api.constraint.ConstraintViolationException; @@ -33,6 +36,8 @@ import org.apache.polygene.api.unitofwork.NoSuchEntityException; import org.apache.polygene.api.unitofwork.UnitOfWork; import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; import org.apache.polygene.api.usecase.UsecaseBuilder; +import org.apache.polygene.api.value.ValueBuilder; +import org.apache.polygene.api.value.ValueBuilderFactory; import org.apache.polygene.bootstrap.ApplicationAssembly; import org.apache.polygene.bootstrap.AssemblyException; import org.apache.polygene.bootstrap.LayerAssembly; @@ -45,6 +50,7 @@ import org.apache.polygene.test.entity.model.legal.Will; import org.apache.polygene.test.entity.model.legal.WillAmount; import org.apache.polygene.test.entity.model.legal.WillItem; import org.apache.polygene.test.entity.model.legal.WillPercentage; +import org.apache.polygene.test.entity.model.monetary.Currency; import org.apache.polygene.test.entity.model.people.Address; import org.apache.polygene.test.entity.model.people.City; import org.apache.polygene.test.entity.model.people.Country; @@ -69,6 +75,9 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest @Structure private ObjectFactory obf; + @Structure + private ValueBuilderFactory vbf; + @Service private LegalService legalService; @@ -77,18 +86,7 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest @Structure private UnitOfWorkFactory uowf; - private Identity baselId; - private Identity montpellierId; - private Identity hannoverId; - private Identity malmoId; - private Identity cherasId; - private Identity unknown3Id; - private Identity unknown2Id; - private Identity unknown1Id; - private Identity varnhemId; - - private Identity canaryId; private Identity switzerlandId; private Identity franceId; private Identity denmarkId; @@ -97,6 +95,20 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest private Identity usId; private Identity malaysiaId; + private Identity kualaLumpurId; + private Identity cherasId; + private Identity zurichId; + private Identity malmoId; + private Identity montpellierId; + + private Identity hannoverId; + private Identity canaryId; + private Identity angkasaImpian4Id; + private Identity varnhemId; + private Identity unknown1Id; + private Identity unknown2Id; + private Identity unknown3Id; + @Before public void setupTestData() { @@ -127,17 +139,24 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest { try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllCitiesPresent" ) ) ) { - assertThat( peopleRepository.findCity( baselId ).name().get(), equalTo( "Basel" ) ); + assertThat( peopleRepository.findCity( zurichId ).name().get(), equalTo( "Zurich" ) ); assertThat( peopleRepository.findCity( malmoId ).name().get(), equalTo( "Malmo" ) ); assertThat( peopleRepository.findCity( cherasId ).name().get(), equalTo( "Cheras" ) ); assertThat( peopleRepository.findCity( hannoverId ).name().get(), equalTo( "Hannover" ) ); assertThat( peopleRepository.findCity( montpellierId ).name().get(), equalTo( "Montpellier" ) ); + assertThat( peopleRepository.findCity( kualaLumpurId ).name().get(), equalTo( "Kuala Lumpur" ) ); } } @Test public void validateAllAddressesPresent() { + Currency.Builder currencyBuilder = obf.newObject( Currency.Builder.class ); + Currency eur1000 = currencyBuilder.create( 1000, "EUR" ); + Currency eur1500 = currencyBuilder.create( 1500, "EUR" ); + Currency chf2000 = currencyBuilder.create( 2000, "CHF" ); + Currency myr3000 = currencyBuilder.create( 3000, "MYR" ); + Currency sek9000 = currencyBuilder.create( 9000, "SEK" ); try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - validateAllAddressesPresent" ) ) ) { Address canary = peopleRepository.findAddress( canaryId ); @@ -145,30 +164,42 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest assertThat( canary.country().get().identity().get(), equalTo( malaysiaId ) ); assertThat( canary.city().get().identity().get(), equalTo( cherasId ) ); assertThat( canary.zipCode().get(), equalTo( "43200" ) ); + assertThat( canary.rent().get().amount().get(), equalTo( myr3000 ) ); Address varnhem = peopleRepository.findAddress( varnhemId ); assertThat( varnhem.street().get(), equalTo( "Varnhemsgatan 25" ) ); assertThat( varnhem.city().get().identity().get(), equalTo( malmoId ) ); assertThat( varnhem.country().get().identity().get(), equalTo( swedenId ) ); assertThat( varnhem.zipCode().get(), equalTo( "215 00" ) ); + assertThat( varnhem.rent().get().amount().get(), equalTo( sek9000 ) ); + + Address angkasaImpian = peopleRepository.findAddress( angkasaImpian4Id ); + assertThat( angkasaImpian.street().get(), equalTo( "B-19-4, Jalan Sehabat" ) ); + assertThat( angkasaImpian.country().get().identity().get(), equalTo( malaysiaId ) ); + assertThat( angkasaImpian.city().get().identity().get(), equalTo( kualaLumpurId ) ); + assertThat( angkasaImpian.zipCode().get(), equalTo( "50200" ) ); + assertThat( angkasaImpian.rent().get().amount().get(), equalTo( myr3000 ) ); Address unknown = peopleRepository.findAddress( unknown1Id ); assertThat( unknown.street().get(), equalTo( "" ) ); assertThat( unknown.city().get().identity().get(), equalTo( montpellierId ) ); assertThat( unknown.country().get().identity().get(), equalTo( franceId ) ); assertThat( unknown.zipCode().get(), equalTo( "" ) ); + assertThat( unknown.rent().get().amount().get(), equalTo( eur1000 ) ); unknown = peopleRepository.findAddress( unknown2Id ); assertThat( unknown.street().get(), equalTo( "" ) ); assertThat( unknown.city().get().identity().get(), equalTo( hannoverId ) ); assertThat( unknown.country().get().identity().get(), equalTo( germanyId ) ); assertThat( unknown.zipCode().get(), equalTo( "" ) ); + assertThat( unknown.rent().get().amount().get(), equalTo( eur1500 ) ); unknown = peopleRepository.findAddress( unknown3Id ); assertThat( unknown.street().get(), equalTo( "" ) ); - assertThat( unknown.city().get().identity().get(), equalTo( baselId ) ); + assertThat( unknown.city().get().identity().get(), equalTo( zurichId ) ); assertThat( unknown.country().get().identity().get(), equalTo( switzerlandId ) ); assertThat( unknown.zipCode().get(), equalTo( "" ) ); + assertThat( unknown.rent().get().amount().get(), equalTo( chf2000 ) ); } } @@ -195,6 +226,10 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest assertThat( kalle.name().get(), equalTo( "Kalle" ) ); Person andreas = peopleRepository.findPersonByName( "Andreas" ); assertThat( andreas.name().get(), equalTo( "Andreas" ) ); + Person lars = peopleRepository.findPersonByName( "Lars" ); + assertThat( lars.name().get(), equalTo( "Lars" ) ); + Person mia = peopleRepository.findPersonByName( "Mia" ); + assertThat( mia.name().get(), equalTo( "Mia" ) ); } } @@ -241,7 +276,7 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenIteratingNamedAssociationExpectIterationToSucceed" ) ) ) { Person niclas = peopleRepository.findPersonByName( "Niclas" ); - assertThat( niclas.phoneNumbers(), containsInAnyOrder("Home", "Chinese", "Swedish", "German")); + assertThat( niclas.phoneNumbers(), containsInAnyOrder( "Home", "Chinese", "Swedish", "German" ) ); } } @@ -314,9 +349,9 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest chinesePhoneId = niclas.phoneNumbers().get( "Chinese" ).identity().get(); germanPhoneId = niclas.phoneNumbers().get( "German" ).identity().get(); - City basel = peopleRepository.findCity( baselId ); + City zurich = peopleRepository.findCity( zurichId ); Country switzerland = peopleRepository.findCountryByCountryCode( "ch" ); - niclas.movedToNewAddress( "DespairStreet 12A", "43HQ21", basel, switzerland, obf.newObject( Rent.Builder.class ).create( 1000, "EUR" ) ); + niclas.movedToNewAddress( "DespairStreet 12A", "43HQ21", zurich, switzerland, obf.newObject( Rent.Builder.class ).create( 1000, "EUR" ) ); uow.complete(); } try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - whenRemovingEntityExpectAggregatedEntitiesToBeRemoved" ) ) ) @@ -410,6 +445,58 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest peopleRepository.findCountryByIdentity( switzerlandId ); } + @Test + public void givenEntityInheritanceWhenStoreRetrieveExpectSuccess() + { + Currency.Builder currencyBuilder = obf.newObject( Currency.Builder.class ); + Identity willId; + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenEntityInheritanceWhenStoreRetrieveExpectSuccess" ) ) ) + { + Person peter = peopleRepository.findPersonByName( "Peter" ); + Person kalle = peopleRepository.findPersonByName( "Kalle" ); + Person oscar = peopleRepository.findPersonByName( "Oscar" ); + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + Person andreas = peopleRepository.findPersonByName( "Andreas" ); + Map<Person, Currency> amountsMap = new HashMap<>(); + Map<Person, Float> percentagesMap = new HashMap<>(); + Map<Person, String> specificItemsMap = new HashMap<>(); + amountsMap.put( niclas, currencyBuilder.create( 10, "USD" ) ); + percentagesMap.put( kalle, 50f ); + percentagesMap.put( oscar, 50f ); + specificItemsMap.put( niclas, "Toothpick Collection\n" ); + specificItemsMap.put( andreas, "Black/Yellow Lederhosen\n" ); + Will will = legalService.createWill( peter, amountsMap, percentagesMap, specificItemsMap ); + willId = will.identity().get(); + uow.complete(); + } + try( UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Test - givenEntityInheritanceWhenStoreRetrieveExpectSuccess" ) ) ) + { + Person kalle = peopleRepository.findPersonByName( "Kalle" ); + Person oscar = peopleRepository.findPersonByName( "Oscar" ); + Person niclas = peopleRepository.findPersonByName( "Niclas" ); + Person andreas = peopleRepository.findPersonByName( "Andreas" ); + + Will will = legalService.findWillById(willId); + List<WillAmount> amounts = will.amounts().get(); + List<WillPercentage> percentages = will.percentages().get(); + List<WillItem> items = will.items().get(); + assertThat( amounts.size(), equalTo( 1 ) ); + assertThat( percentages.size(), equalTo( 2 ) ); + assertThat( items.size(), equalTo( 2 ) ); + + WillAmount willAmount = amounts.get( 0 ); + assertThat( willAmount.amount().get(), equalTo( currencyBuilder.create( 10, "USD" ) ) ); + + WillPercentage kallePercentage = legalService.createPercentage( kalle, 50 ); + WillPercentage oscarPercentage = legalService.createPercentage( oscar, 50 ); + assertThat( percentages, containsInAnyOrder( kallePercentage, oscarPercentage ) ); + + WillItem niclasItem = legalService.createItem( niclas, "Toothpick Collection\n" ); + WillItem andreasItem = legalService.createItem( andreas, "Black/Yellow Lederhosen\n" ); + assertThat( items, containsInAnyOrder( niclasItem, andreasItem ) ); + } + } + private void testData() { Country malaysia = peopleRepository.createCountry( "my", "Malaysia" ); @@ -434,14 +521,16 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest hannoverId = hannover.identity().get(); City montpellier = peopleRepository.createCity( "Montpellier" ); montpellierId = montpellier.identity().get(); - City basel = peopleRepository.createCity( "Basel" ); - baselId = basel.identity().get(); + City kualalumpur = peopleRepository.createCity( "Kuala Lumpur" ); + kualaLumpurId = kualalumpur.identity().get(); + City zurich = peopleRepository.createCity( "Zurich" ); + zurichId = zurich.identity().get(); Rent.Builder rentBuilder = obf.newObject( Rent.Builder.class ); Rent rentCanary = rentBuilder.create( 3000, "MYR" ); Rent rentVarnhem = rentBuilder.create( 9000, "SEK" ); - Rent rentUnknown1 = rentBuilder.create( 1200, "EUR" ); - Rent rentUnknown2 = rentBuilder.create( 900, "EUR" ); - Rent rentUnknown3 = rentBuilder.create( 2200, "EUR" ); + Rent rentUnknown1 = rentBuilder.create( 1000, "EUR" ); + Rent rentUnknown2 = rentBuilder.create( 1500, "EUR" ); + Rent rentUnknown3 = rentBuilder.create( 2000, "CHF" ); Address canaryResidence = peopleRepository.createAddress( "10, CH5A, Jalan Cheras Hartamas", "43200", cheras, malaysia, rentCanary ); canaryId = canaryResidence.identity().get(); Address varnhem = peopleRepository.createAddress( "Varnhemsgatan 25", "215 00", malmo, sweden, rentVarnhem ); @@ -450,8 +539,10 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest unknown1Id = unknown1.identity().get(); Address unknown2 = peopleRepository.createAddress( "", "", hannover, germany, rentUnknown2 ); unknown2Id = unknown2.identity().get(); - Address unknown3 = peopleRepository.createAddress( "", "", basel, switzerland, rentUnknown3 ); + Address unknown3 = peopleRepository.createAddress( "", "", zurich, switzerland, rentUnknown3 ); unknown3Id = unknown3.identity().get(); + Address angkasaImpian = peopleRepository.createAddress( "B-19-4, Jalan Sehabat", "50200", kualalumpur, malaysia, rentCanary ); + angkasaImpian4Id = angkasaImpian.identity().get(); Person eric = peopleRepository.createPerson( "Eric", malaysia, canaryResidence, null, null ); Person niclas = peopleRepository.createPerson( "Niclas", sweden, canaryResidence, null, peopleRepository.createPhoneNumber( "+60-16-7636344" ) ); niclas.children().add( eric ); @@ -465,6 +556,9 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest Person toni = peopleRepository.createPerson( "Toni", france, unknown2, janna, peopleRepository.createPhoneNumber( "+49-12-99887766" ) ); janna.spouse().set( toni ); Person andreas = peopleRepository.createPerson( "Andreas", germany, unknown3, null, peopleRepository.createPhoneNumber( "+41-98-1234567" ) ); + Person mia = peopleRepository.createPerson( "Mia", malaysia, angkasaImpian, null, null ); + Person lars = peopleRepository.createPerson( "Lars", denmark, angkasaImpian, mia, null ); + mia.spouse().set( lars ); NamedAssociation<Person> niclasRels = niclas.relationships(); niclasRels.put( FRIEND, peter ); niclasRels.put( FRIEND, toni ); @@ -486,6 +580,7 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest defineConfigModule( configLayer.module( "Configuration Module" ) ); defineSerializationModule( configLayer.module( "Serialization Module" ) ); defineStorageModule( infrastructureLayer.module( "Storage Module" ) ); + defineMonetaryModule( domainLayer.module( "Monetary Module" ) ); definePeopleModule( domainLayer.module( "People Module" ) ); defineLegalModule( domainLayer.module( "Legal Module" ) ); defineTestModule( accessLayer.module( "TestCase Module" ) ); @@ -509,8 +604,8 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest protected void definePeopleModule( ModuleAssembly module ) { module.defaultServices(); - module.entities( Address.class, City.class, PhoneNumber.class ); - module.entities( Country.class, Person.class ); + module.entities( Address.class, Country.class, City.class, PhoneNumber.class ); + module.entities( Person.class ).visibleIn( Visibility.layer ); module.services( PeopleRepository.class ).visibleIn( Visibility.application ); module.values( Rent.class ); module.objects( Rent.Builder.class ).visibleIn( Visibility.application ); @@ -520,7 +615,15 @@ public abstract class EntityStoreTestSuite extends AbstractPolygeneBaseTest { module.defaultServices(); module.services( LegalService.class ).visibleIn( Visibility.application ); - module.entities( Will.class, WillItem.class, WillPercentage.class, WillAmount.class ); + module.entities( Will.class ); + module.values( WillAmount.class, WillItem.class, WillPercentage.class ); + } + + protected void defineMonetaryModule( ModuleAssembly module ) + { + module.defaultServices(); + module.values( Currency.class ).visibleIn( Visibility.layer ); + module.objects( Currency.Builder.class ).visibleIn( Visibility.application ); } protected void defineSerializationModule( ModuleAssembly module ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/LegalService.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/LegalService.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/LegalService.java index c90a64c..6079a2e 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/LegalService.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/LegalService.java @@ -19,7 +19,8 @@ */ package org.apache.polygene.test.entity.model.legal; -import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import org.apache.polygene.api.entity.EntityBuilder; import org.apache.polygene.api.identity.Identity; @@ -31,13 +32,21 @@ import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; import org.apache.polygene.api.unitofwork.concern.UnitOfWorkPropagation; import org.apache.polygene.api.value.ValueBuilder; import org.apache.polygene.api.value.ValueBuilderFactory; +import org.apache.polygene.test.entity.model.monetary.Currency; import org.apache.polygene.test.entity.model.people.Person; @Mixins( LegalService.Mixin.class ) public interface LegalService { @UnitOfWorkPropagation - Identity createWill( Person principal, Map<Person, BigDecimal> amounts, Map<Person, Float> percentages, Map<Person, String> specificItems ); + Will findWillById( Identity willId ); + + @UnitOfWorkPropagation + Will createWill( Person principal, Map<Person, Currency> amounts, Map<Person, Float> percentages, Map<Person, String> specificItems ); + + WillPercentage createPercentage( Person beneficiary, float percentage ); + + WillItem createItem( Person beneficiary, String item ); class Mixin implements LegalService @@ -49,36 +58,46 @@ public interface LegalService private UnitOfWorkFactory uowf; @Override - public Identity createWill( Person principal, Map<Person, BigDecimal> amounts, Map<Person, Float> percentages, Map<Person, String> specificItems ) + public Will findWillById( Identity willId ) + { + UnitOfWork uow = uowf.currentUnitOfWork(); + return uow.get( Will.class, willId ); + } + + @Override + public Will createWill( Person principal, Map<Person, Currency> amounts, Map<Person, Float> percentages, Map<Person, String> specificItems ) { UnitOfWork uow = uowf.currentUnitOfWork(); Identity identity = StringIdentity.identityOf( "will-" + principal.name().get() ); EntityBuilder<Will> builder = uow.newEntityBuilder( Will.class, identity ); - Will instance = builder.instance(); - for( Map.Entry<Person, BigDecimal> entry : amounts.entrySet() ) + List<WillAmount> amountsList = new ArrayList<>(); + for( Map.Entry<Person, Currency> entry : amounts.entrySet() ) { WillAmount amount = createAmount( entry.getKey(), entry.getValue() ); - instance.amounts().add( amount ); + amountsList.add( amount ); } + List<WillPercentage> percentagesList = new ArrayList<>(); for( Map.Entry<Person, Float> entry : percentages.entrySet() ) { WillPercentage amount = createPercentage( entry.getKey(), entry.getValue() ); - instance.percentages().add( amount ); + percentagesList.add( amount ); } + List<WillItem> itemsList = new ArrayList<>(); for( Map.Entry<Person, String> entry : specificItems.entrySet() ) { String value = entry.getValue(); - int pos = value.indexOf( '\n' ); - String item = value.substring( 0, pos ); - String description = value.substring( pos + 1 ); - WillItem amount = createItem( entry.getKey(), item, description ); - instance.items().add( amount ); + WillItem amount = createItem( entry.getKey(), value ); + itemsList.add( amount ); } - builder.newInstance(); - return identity; + Will instance = builder.instance(); + instance.principal().set(principal); + instance.percentages().set( percentagesList ); + instance.amounts().set( amountsList ); + instance.items().set( itemsList ); + return builder.newInstance(); } - private WillAmount createAmount( Person beneficiary, BigDecimal amount ) + private WillAmount createAmount( Person beneficiary, Currency amount ) { ValueBuilder<WillAmount> builder = vbf.newValueBuilder( WillAmount.class ); builder.prototype().amount().set( amount ); @@ -98,9 +117,26 @@ public interface LegalService { ValueBuilder<WillItem> builder = vbf.newValueBuilder( WillItem.class ); builder.prototype().item().set( item ); - builder.prototype().item().set( description ); + builder.prototype().description().set( description ); builder.prototype().beneficiary().set( beneficiary ); return builder.newInstance(); } + + public WillItem createItem( Person beneficiary, String value ) + { + int pos = value.indexOf( '\n' ); + String item = value.substring( 0, pos ); + String description = value.substring( pos + 1 ); + return createItem( beneficiary, item, description ); + } + + public WillPercentage createPercentage( Person beneficiary, float percentage ) + { + ValueBuilder<WillPercentage> builder = vbf.newValueBuilder( WillPercentage.class ); + builder.prototype().beneficiary().set( beneficiary ); + builder.prototype().percentage().set( percentage ); + return builder.newInstance(); + } + } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/Will.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/Will.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/Will.java index 1c66efb..dd41bba 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/Will.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/Will.java @@ -19,18 +19,22 @@ */ package org.apache.polygene.test.entity.model.legal; +import java.util.List; import org.apache.polygene.api.association.Association; import org.apache.polygene.api.association.ManyAssociation; +import org.apache.polygene.api.identity.HasIdentity; +import org.apache.polygene.api.property.Property; import org.apache.polygene.test.entity.model.people.Person; -public interface Will +public interface Will extends HasIdentity { - Association<Person> principal(); - ManyAssociation<WillItem> items(); + ManyAssociation<Person> witnesses(); + + Property<List<WillItem>> items(); - ManyAssociation<WillPercentage> percentages(); + Property<List<WillPercentage>> percentages(); - ManyAssociation<WillAmount> amounts(); + Property<List<WillAmount>> amounts(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillAmount.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillAmount.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillAmount.java index 6661375..52b4b58 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillAmount.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillAmount.java @@ -21,8 +21,9 @@ package org.apache.polygene.test.entity.model.legal; import java.math.BigDecimal; import org.apache.polygene.api.property.Property; +import org.apache.polygene.test.entity.model.monetary.Currency; public interface WillAmount extends WillBenefit { - Property<BigDecimal> amount(); + Property<Currency> amount(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillBenefit.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillBenefit.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillBenefit.java index 0347a6c..3c44e7a 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillBenefit.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/legal/WillBenefit.java @@ -21,6 +21,7 @@ package org.apache.polygene.test.entity.model.legal; import org.apache.polygene.api.association.Association; import org.apache.polygene.api.common.Optional; +import org.apache.polygene.api.identity.HasIdentity; import org.apache.polygene.api.property.Property; import org.apache.polygene.test.entity.model.people.Person; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/monetary/Currency.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/monetary/Currency.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/monetary/Currency.java new file mode 100644 index 0000000..6ca2c9b --- /dev/null +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/monetary/Currency.java @@ -0,0 +1,51 @@ +/* + * 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.polygene.test.entity.model.monetary; + +import java.math.BigDecimal; +import org.apache.polygene.api.injection.scope.Structure; +import org.apache.polygene.api.property.Property; +import org.apache.polygene.api.value.ValueBuilder; +import org.apache.polygene.api.value.ValueBuilderFactory; + +public interface Currency +{ + Property<BigDecimal> amount(); + Property<String> name(); + + class Builder + { + @Structure + private ValueBuilderFactory vbf; + + public Currency create( int amount, String currencyName ) + { + return create( new BigDecimal( amount ), currencyName ); + } + + public Currency create( BigDecimal amount, String currencyName ) + { + ValueBuilder<Currency> builder = vbf.newValueBuilder( Currency.class ); + builder.prototype().name().set( currencyName ); + builder.prototype().amount().set( amount ); + return builder.newInstance(); + } + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/people/Rent.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/people/Rent.java b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/people/Rent.java index 576b3dc..b05aec5 100644 --- a/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/people/Rent.java +++ b/core/testsupport/src/main/java/org/apache/polygene/test/entity/model/people/Rent.java @@ -19,29 +19,33 @@ */ package org.apache.polygene.test.entity.model.people; -import java.math.BigDecimal; import org.apache.polygene.api.injection.scope.Structure; +import org.apache.polygene.api.object.ObjectFactory; import org.apache.polygene.api.property.Property; import org.apache.polygene.api.value.ValueBuilder; import org.apache.polygene.api.value.ValueBuilderFactory; +import org.apache.polygene.test.entity.model.monetary.Currency; public interface Rent { - Property<BigDecimal> amount(); - - Property<String> currency(); + Property<Currency> amount(); class Builder { + private final Currency.Builder currencyBuilder; + @Structure private ValueBuilderFactory vbf; - public Rent create( Integer amount, String currency ) + public Builder( @Structure ObjectFactory objectFactory) + { + currencyBuilder = objectFactory.newObject( Currency.Builder.class ); + } + + public Rent create( int amount, String currency ) { ValueBuilder<Rent> builder = vbf.newValueBuilder( Rent.class ); - Rent prototype = builder.prototype(); - prototype.amount().set( new BigDecimal( amount ) ); - prototype.currency().set( currency ); + builder.prototype().amount().set( currencyBuilder.create( amount, currency ) ); return builder.newInstance(); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/core/testsupport/src/test/java/org/apache/polygene/test/cache/MemoryCacheTest.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/test/java/org/apache/polygene/test/cache/MemoryCacheTest.java b/core/testsupport/src/test/java/org/apache/polygene/test/cache/MemoryCacheTest.java index c9e2fe1..d91c6c0 100644 --- a/core/testsupport/src/test/java/org/apache/polygene/test/cache/MemoryCacheTest.java +++ b/core/testsupport/src/test/java/org/apache/polygene/test/cache/MemoryCacheTest.java @@ -22,8 +22,7 @@ package org.apache.polygene.test.cache; import org.apache.polygene.bootstrap.AssemblyException; import org.apache.polygene.bootstrap.ModuleAssembly; -public class MemoryCacheTest - extends AbstractCachePoolTest +public class MemoryCacheTest extends AbstractCachePoolTest { @Override public void assemble( ModuleAssembly module ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java ---------------------------------------------------------------------- diff --git a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java index 18fab0f..07cf07a 100644 --- a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java +++ b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java @@ -86,7 +86,7 @@ public class DockerRule .builder() .imageName( "org.apache.polygene:org.apache.polygene.internal.docker-" + image ) .publishAllPorts( true ) - .waitForTimeout( 120 ) + .waitForTimeout( 180 ) .waitFor( rule -> new AndChecker( rule, waitFor ) ); environment.forEach( builder::env ); dockerRule = builder.build(); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/libraries/constraints/src/test/java/org/apache/polygene/library/constraints/ConstraintTest.java ---------------------------------------------------------------------- diff --git a/libraries/constraints/src/test/java/org/apache/polygene/library/constraints/ConstraintTest.java b/libraries/constraints/src/test/java/org/apache/polygene/library/constraints/ConstraintTest.java index 2c526b5..8b697b9 100644 --- a/libraries/constraints/src/test/java/org/apache/polygene/library/constraints/ConstraintTest.java +++ b/libraries/constraints/src/test/java/org/apache/polygene/library/constraints/ConstraintTest.java @@ -31,8 +31,7 @@ import org.junit.Test; import static org.junit.Assert.fail; -public class ConstraintTest - extends AbstractPolygeneTest +public class ConstraintTest extends AbstractPolygeneTest { @Override http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/api/ContextResource.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/api/ContextResource.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/api/ContextResource.java index 4b701fb..2fb2fe1 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/api/ContextResource.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/api/ContextResource.java @@ -34,7 +34,7 @@ import java.util.stream.Stream; import org.apache.polygene.api.association.ManyAssociation; import org.apache.polygene.api.association.NamedAssociation; import org.apache.polygene.api.common.Optional; -import org.apache.polygene.api.constraint.ConstraintViolation; +import org.apache.polygene.api.constraint.ValueConstraintViolation; import org.apache.polygene.api.constraint.ConstraintViolationException; import org.apache.polygene.api.constraint.Name; import org.apache.polygene.api.entity.EntityComposite; @@ -808,7 +808,7 @@ public class ContextResource // CVE are considered client faults String messages = ""; Locale locale = ObjectSelection.type( Locale.class ); - for( ConstraintViolation constraintViolation : e.constraintViolations() ) + for( ValueConstraintViolation constraintViolation : e.constraintViolations() ) { if( !messages.isEmpty() ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ConstraintViolationMessages.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ConstraintViolationMessages.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ConstraintViolationMessages.java index 17b43d5..253284d 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ConstraintViolationMessages.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ConstraintViolationMessages.java @@ -24,14 +24,14 @@ import java.util.Locale; import java.util.ResourceBundle; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.polygene.api.constraint.ConstraintViolation; +import org.apache.polygene.api.constraint.ValueConstraintViolation; /** * TODO */ public class ConstraintViolationMessages { - public String getMessage( ConstraintViolation violation, Locale locale ) + public String getMessage( ValueConstraintViolation violation, Locale locale ) throws IllegalArgumentException { try http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/InteractionConstraintsService.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/InteractionConstraintsService.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/InteractionConstraintsService.java index b04edef..03d70c3 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/InteractionConstraintsService.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/InteractionConstraintsService.java @@ -32,7 +32,7 @@ import org.apache.polygene.api.constraint.Constraint; import org.apache.polygene.api.constraint.ConstraintDeclaration; import org.apache.polygene.api.constraint.Constraints; import org.apache.polygene.api.injection.scope.Structure; -import org.apache.polygene.api.object.NoSuchObjectException; +import org.apache.polygene.api.object.NoSuchObjectTypeException; import org.apache.polygene.api.structure.Module; import org.apache.polygene.library.rest.server.api.ObjectSelection; import org.apache.polygene.library.rest.server.api.constraint.InteractionConstraint; @@ -150,7 +150,7 @@ public class InteractionConstraintsService { constraint = module.newObject( constraintClass ); } - catch( NoSuchObjectException e ) + catch( NoSuchObjectTypeException e ) { constraint = constraintClass.newInstance(); } @@ -214,7 +214,7 @@ public class InteractionConstraintsService { constraint = module.newObject( constraintClass ); } - catch( NoSuchObjectException e ) + catch( NoSuchObjectTypeException e ) { constraint = constraintClass.newInstance(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/ParameterViolationConcern.java ---------------------------------------------------------------------- diff --git a/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/ParameterViolationConcern.java b/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/ParameterViolationConcern.java index a7dd18d..eb03280 100644 --- a/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/ParameterViolationConcern.java +++ b/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/ParameterViolationConcern.java @@ -23,7 +23,7 @@ import java.lang.annotation.Annotation; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import org.apache.polygene.api.concern.ConcernOf; -import org.apache.polygene.api.constraint.ConstraintViolation; +import org.apache.polygene.api.constraint.ValueConstraintViolation; import org.apache.polygene.api.constraint.ConstraintViolationException; // START SNIPPET: report @@ -39,7 +39,7 @@ public class ParameterViolationConcern extends ConcernOf<InvocationHandler> } catch( ConstraintViolationException e ) { - for( ConstraintViolation violation : e.constraintViolations() ) + for( ValueConstraintViolation violation : e.constraintViolations() ) { String name = violation.name(); Object value = violation.value(); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/559b38a5/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/PhoneNumberParameterViolationConcern.java ---------------------------------------------------------------------- diff --git a/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/PhoneNumberParameterViolationConcern.java b/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/PhoneNumberParameterViolationConcern.java index 92db8a2..82c27c0 100644 --- a/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/PhoneNumberParameterViolationConcern.java +++ b/manual/src/main/java/org/apache/polygene/manual/recipes/createConstraint/PhoneNumberParameterViolationConcern.java @@ -22,7 +22,7 @@ package org.apache.polygene.manual.recipes.createConstraint; import java.util.Collection; import org.apache.polygene.api.concern.ConcernOf; import org.apache.polygene.api.concern.Concerns; -import org.apache.polygene.api.constraint.ConstraintViolation; +import org.apache.polygene.api.constraint.ValueConstraintViolation; import org.apache.polygene.api.constraint.ConstraintViolationException; import org.apache.polygene.api.property.Property; @@ -44,7 +44,7 @@ public abstract class PhoneNumberParameterViolationConcern extends ConcernOf<Has } catch( ConstraintViolationException e ) { - Collection<ConstraintViolation> violations = e.constraintViolations(); + Collection<ValueConstraintViolation> violations = e.constraintViolations(); report( violations ); } } @@ -52,7 +52,7 @@ public abstract class PhoneNumberParameterViolationConcern extends ConcernOf<Has // END SNIPPET: property // START SNIPPET: property - private void report( Collection<ConstraintViolation> violations ) + private void report( Collection<ValueConstraintViolation> violations ) { } }
