Reviewers: dev_tapestry.apache.org,
Description:
Added support for injected generic services. You can now implement the
same service interface multiple times with different type parameters,
and inject it using the generic interface.
Made Loop generic and added public getters for index and value. No more
need to add properties to the page or use the var binding for simple
object rendering loops.
Updated PropertyWorker, Transform* to copy generic field signature to
created getter.
Updated GenericsUtils/PropertyConduitSourceImpl to more fully support
wildcard and parameterized types.
Added tests for everything
Please review this at http://codereview.appspot.com/2140047/
Affected files:
tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DefaultInjectionProvider.java
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ServiceInjectionProvider.java
tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PropertyWorker.java
tapestry-core/src/main/java/org/apache/tapestry5/services/TransformField.java
tapestry-core/src/main/java/org/apache/tapestry5/services/TransformMethodSignature.java
tapestry-core/src/test/app1/GenericLoopDemo.tml
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/LoopTests.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/base/GenericLister.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/data/ExoticPet.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/data/Person.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/data/Pet.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/data/SubscribeData.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/data/ToDoItem.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BaseGenericLoopDemo.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/GenericLoopDemo.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PersonLister.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/PetLister.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ToDoList.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/GenericDatabase.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/GenericDatabaseImpl.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/GenericDatabaseItem.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/PersonDatabaseImpl.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/PetDatabase.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/PetDatabaseImpl.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/ToDoDatabase.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/ToDoDatabaseImpl.java
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/TypedObjectDatabase.java
tapestry-core/src/test/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImplTest.java
tapestry-core/src/test/java/org/apache/tapestry5/internal/test/InternalBaseTestCase.java
tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/base/GenericLister.tml
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ObjectLocator.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/DefaultModuleDefImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCInternalTestCase.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/IOCMessages.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/InternalRegistry.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/InternalServiceDef.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/Module.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ObjectLocatorImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryWrapper.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceDefImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImpl.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/GenericsUtils.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/InternalUtils.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/MasterObjectProvider.java
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/test/IOCTestCase.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/ServiceBuilderMethodInvokerTest.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplTest.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/BaseGenericBean.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/GenericUtilsTest.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/GenericsAssumptionsTest.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/NonGenericBean.java
tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/Pair.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]