You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:06:06 UTC

[46/50] [abbrv] zest-qi4j git commit: JDK8: compilation fixes for b84

JDK8: compilation fixes for b84


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/68c662c9
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/68c662c9
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/68c662c9

Branch: refs/heads/master
Commit: 68c662c94fd6cb832e10eabf759724d954e2cb68
Parents: 42b9b39
Author: Paul Merlin <pa...@nosphere.org>
Authored: Wed Apr 17 16:16:39 2013 +0200
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Wed Apr 17 16:16:39 2013 +0200

----------------------------------------------------------------------
 .../api/service/importer/NewObjectImporter.java |   2 +-
 .../dataset/iterable/IterableDataSetTest.java   |   2 +
 .../runtime/composite/CompositeMethodModel.java |   4 +-
 .../qi4j/runtime/property/PropertyModel.java    |   2 +-
 .../jmx/CircuitBreakerManagementSample.java     | 113 +++++++++++
 .../jmx/CircuitBreakerManagementTest.java       | 113 -----------
 .../server/DomainEventSourceResourceSample.java | 186 +++++++++++++++++++
 .../server/DomainEventSourceResourceTest.java   | 186 -------------------
 .../trace/service/TraceServiceMixin.java        |   4 +-
 .../org/qi4j/library/rest/admin/RestTest.java   |   1 +
 .../uid/sequence/PersistingSequencingTest.java  |   5 +-
 .../uid/sequence/TransientSequencingTest.java   |   3 +-
 12 files changed, 313 insertions(+), 308 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java b/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
index 22507c7..47e1365 100644
--- a/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
+++ b/core/api/src/main/java/org/qi4j/api/service/importer/NewObjectImporter.java
@@ -34,7 +34,7 @@ public final class NewObjectImporter<T>
     public T importService( ImportedServiceDescriptor serviceDescriptor )
         throws ServiceImporterException
     {
-        return (T) obf.newObject( Iterables.first( serviceDescriptor.types() ) );
+        return obf.newObject( (Class<T>) Iterables.first( serviceDescriptor.types() ) );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/core/api/src/test/java/org/qi4j/api/dataset/iterable/IterableDataSetTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/dataset/iterable/IterableDataSetTest.java b/core/api/src/test/java/org/qi4j/api/dataset/iterable/IterableDataSetTest.java
index de8263a..3830f1e 100644
--- a/core/api/src/test/java/org/qi4j/api/dataset/iterable/IterableDataSetTest.java
+++ b/core/api/src/test/java/org/qi4j/api/dataset/iterable/IterableDataSetTest.java
@@ -1,6 +1,7 @@
 package org.qi4j.api.dataset.iterable;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.qi4j.api.dataset.DataSet;
 import org.qi4j.api.property.Property;
 import org.qi4j.bootstrap.AssemblyException;
@@ -11,6 +12,7 @@ import org.qi4j.test.AbstractQi4jTest;
 /**
  * TODO
  */
+@Ignore( "Not implemented yet" )
 public class IterableDataSetTest
     extends AbstractQi4jTest
 {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/core/runtime/src/main/java/org/qi4j/runtime/composite/CompositeMethodModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/composite/CompositeMethodModel.java b/core/runtime/src/main/java/org/qi4j/runtime/composite/CompositeMethodModel.java
index 32c5202..8fecf91 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/composite/CompositeMethodModel.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/composite/CompositeMethodModel.java
@@ -296,7 +296,7 @@ public final class CompositeMethodModel
 
         // @Override (Since JDK 8)
         @SuppressWarnings( "unchecked" )
-        public <T extends Annotation> T[] getAnnotations( Class<T> annotationClass )
+        public <T extends Annotation> T[] getAnnotationsByType( Class<T> annotationClass )
         {
             NullArgumentException.validateNotNull( "annotationClass", annotationClass );
             return (T[]) Array.newInstance( annotationClass, 0 );
@@ -311,7 +311,7 @@ public final class CompositeMethodModel
 
         // @Override (Since JDK 8)
         @SuppressWarnings( "unchecked" )
-        public <T extends Annotation> T[] getDeclaredAnnotations( Class<T> annotationClass )
+        public <T extends Annotation> T[] getDeclaredAnnotationsByType( Class<T> annotationClass )
         {
             NullArgumentException.validateNotNull( "annotationClass", annotationClass );
             return (T[]) Array.newInstance( annotationClass, 0 );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java b/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
index e547d8a..235a86a 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
@@ -171,7 +171,7 @@ public class PropertyModel
         {
             if( valueType instanceof ValueCompositeType )
             {
-                return module.newValue( first( valueType().types() ) );
+                return module.newValue( (Class<?>) first( valueType().types() ) );
             }
             else
             {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementSample.java
----------------------------------------------------------------------
diff --git a/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementSample.java b/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementSample.java
new file mode 100644
index 0000000..ec71938
--- /dev/null
+++ b/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementSample.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2009-2010 Rickard Öberg AB
+ *
+ * Licensed 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.qi4j.library.circuitbreaker.jmx;
+
+import java.util.Random;
+import javax.management.MBeanServer;
+import org.qi4j.api.activation.ActivationException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.bootstrap.SingletonAssembler;
+import org.qi4j.library.circuitbreaker.CircuitBreaker;
+import org.qi4j.library.circuitbreaker.CircuitBreakers;
+import org.qi4j.library.circuitbreaker.service.ServiceCircuitBreaker;
+import org.qi4j.library.jmx.MBeanServerImporter;
+
+/**
+ * Run this as a program and connect with VisualVM. That way you can monitor changes in attributes, notifications, and
+ * execute operations on the CircuitBreaker through JMX.
+ */
+public class CircuitBreakerManagementSample
+{
+
+    public static void main( String[] args )
+        throws ActivationException, AssemblyException
+    {
+        SingletonAssembler assembler = new SingletonAssembler()
+        {
+
+            @Override
+            // START SNIPPET: jmx
+            public void assemble( ModuleAssembly module )
+                    throws AssemblyException
+            {
+                // END SNIPPET: jmx
+                CircuitBreaker cb = new CircuitBreaker( 3, 250, CircuitBreakers.in( IllegalArgumentException.class ) );
+
+                module.importedServices( TestService.class ).setMetaInfo( new TestService( cb ) );
+
+                // START SNIPPET: jmx
+                module.importedServices( MBeanServer.class ).importedBy( MBeanServerImporter.class ); // JMX Library
+                module.services( CircuitBreakerManagement.class ).instantiateOnStartup(); // CircuitBreakers in JMX
+            }
+            // END SNIPPET: jmx
+
+        };
+
+        TestService service = assembler.module().<TestService>findService( TestService.class ).get();
+
+        int interval = 1; // Seconds
+        System.out.println( "CircuitBreaker JMX Support sample is now started." );
+        System.out.println();
+        System.out.println( "A Service that randomly output some text or fail is called through a CircuitBreaker every " + interval + " seconds." );
+        System.out.println( "In a few interval the CircuitBreaker will be turned off." );
+        System.out.println( "Connect with a MBean browser (eg. VisualVM + MBean plugin) to use the turnOn operation on the CircuitBreakers." );
+        System.out.println();
+        System.out.println( "Hit Ctrl-C to stop." );
+        System.out.println();
+
+        while ( true ) {
+            try {
+                Thread.sleep( interval * 1000 );
+            } catch ( InterruptedException e ) {
+                e.printStackTrace();
+            }
+
+            service.helloWorld();
+        }
+    }
+
+    public static class TestService
+            implements ServiceCircuitBreaker
+    {
+
+        CircuitBreaker cb;
+
+        Random random = new Random();
+
+        public TestService( CircuitBreaker cb )
+        {
+            this.cb = cb;
+        }
+
+        @Override
+        public CircuitBreaker circuitBreaker()
+        {
+            return cb;
+        }
+
+        public void helloWorld()
+        {
+            if ( random.nextDouble() > 0.3 ) {
+                cb.throwable( new Throwable( "Failed" ) );
+            } else {
+                cb.success();
+            }
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementTest.java
----------------------------------------------------------------------
diff --git a/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementTest.java b/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementTest.java
deleted file mode 100644
index 6150012..0000000
--- a/libraries/circuitbreaker/src/test/java/org/qi4j/library/circuitbreaker/jmx/CircuitBreakerManagementTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2009-2010 Rickard Öberg AB
- *
- * Licensed 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.qi4j.library.circuitbreaker.jmx;
-
-import java.util.Random;
-import javax.management.MBeanServer;
-import org.qi4j.api.activation.ActivationException;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.SingletonAssembler;
-import org.qi4j.library.circuitbreaker.CircuitBreaker;
-import org.qi4j.library.circuitbreaker.CircuitBreakers;
-import org.qi4j.library.circuitbreaker.service.ServiceCircuitBreaker;
-import org.qi4j.library.jmx.MBeanServerImporter;
-
-/**
- * Run this as a program and connect with VisualVM. That way you can monitor changes in attributes, notifications, and
- * execute operations on the CircuitBreaker through JMX.
- */
-public class CircuitBreakerManagementTest
-{
-
-    public static void main( String[] args )
-        throws ActivationException, AssemblyException
-    {
-        SingletonAssembler assembler = new SingletonAssembler()
-        {
-
-            @Override
-            // START SNIPPET: jmx
-            public void assemble( ModuleAssembly module )
-                    throws AssemblyException
-            {
-                // END SNIPPET: jmx
-                CircuitBreaker cb = new CircuitBreaker( 3, 250, CircuitBreakers.in( IllegalArgumentException.class ) );
-
-                module.importedServices( TestService.class ).setMetaInfo( new TestService( cb ) );
-
-                // START SNIPPET: jmx
-                module.importedServices( MBeanServer.class ).importedBy( MBeanServerImporter.class ); // JMX Library
-                module.services( CircuitBreakerManagement.class ).instantiateOnStartup(); // CircuitBreakers in JMX
-            }
-            // END SNIPPET: jmx
-
-        };
-
-        TestService service = assembler.module().<TestService>findService( TestService.class ).get();
-
-        int interval = 1; // Seconds
-        System.out.println( "CircuitBreaker JMX Support sample is now started." );
-        System.out.println();
-        System.out.println( "A Service that randomly output some text or fail is called through a CircuitBreaker every " + interval + " seconds." );
-        System.out.println( "In a few interval the CircuitBreaker will be turned off." );
-        System.out.println( "Connect with a MBean browser (eg. VisualVM + MBean plugin) to use the turnOn operation on the CircuitBreakers." );
-        System.out.println();
-        System.out.println( "Hit Ctrl-C to stop." );
-        System.out.println();
-
-        while ( true ) {
-            try {
-                Thread.sleep( interval * 1000 );
-            } catch ( InterruptedException e ) {
-                e.printStackTrace();
-            }
-
-            service.helloWorld();
-        }
-    }
-
-    public static class TestService
-            implements ServiceCircuitBreaker
-    {
-
-        CircuitBreaker cb;
-
-        Random random = new Random();
-
-        public TestService( CircuitBreaker cb )
-        {
-            this.cb = cb;
-        }
-
-        @Override
-        public CircuitBreaker circuitBreaker()
-        {
-            return cb;
-        }
-
-        public void helloWorld()
-        {
-            if ( random.nextDouble() > 0.3 ) {
-                cb.throwable( new Throwable( "Failed" ) );
-            } else {
-                cb.success();
-            }
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceSample.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceSample.java b/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceSample.java
new file mode 100644
index 0000000..d74c295
--- /dev/null
+++ b/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceSample.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2011, Rickard Öberg. All Rights Reserved.
+ *
+ * Licensed 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.qi4j.library.eventsourcing.domain.rest.server;
+
+import org.junit.Ignore;
+import org.qi4j.api.common.UseDefaults;
+import org.qi4j.api.entity.EntityComposite;
+import org.qi4j.api.injection.scope.Service;
+import org.qi4j.api.injection.scope.Structure;
+import org.qi4j.api.mixin.Mixins;
+import org.qi4j.api.property.Property;
+import org.qi4j.api.unitofwork.UnitOfWork;
+import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
+import org.qi4j.api.unitofwork.UnitOfWorkFactory;
+import org.qi4j.api.usecase.UsecaseBuilder;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ImportedServiceDeclaration;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.bootstrap.SingletonAssembler;
+import org.qi4j.library.eventsourcing.domain.api.DomainEvent;
+import org.qi4j.library.eventsourcing.domain.api.DomainEventValue;
+import org.qi4j.library.eventsourcing.domain.api.UnitOfWorkDomainEventsValue;
+import org.qi4j.library.eventsourcing.domain.factory.CurrentUserUoWPrincipal;
+import org.qi4j.library.eventsourcing.domain.factory.DomainEventCreationConcern;
+import org.qi4j.library.eventsourcing.domain.factory.DomainEventFactoryService;
+import org.qi4j.library.eventsourcing.domain.source.EventSource;
+import org.qi4j.library.eventsourcing.domain.source.memory.MemoryEventStoreService;
+import org.qi4j.test.EntityTestAssembler;
+import org.restlet.*;
+import org.restlet.data.Protocol;
+import org.restlet.data.Status;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.resource.ResourceException;
+
+import java.security.Principal;
+
+/**
+ * Start simple web server that exposes the Restlet resource. Test through browser.
+ */
+public class DomainEventSourceResourceSample
+{
+    public static void main( String[] args ) throws Exception
+    {
+        Component component = new Component();
+        component.getServers().add( Protocol.HTTP, 8080 );
+
+        SingletonAssembler assembler = new SingletonAssembler()
+        {
+            public void assemble( ModuleAssembly module ) throws AssemblyException
+            {
+                new EntityTestAssembler().assemble( module );
+
+                module.values( DomainEventValue.class, UnitOfWorkDomainEventsValue.class );
+                module.services( MemoryEventStoreService.class ).taggedWith( "domain" );
+                module.services( DomainEventFactoryService.class );
+                module.importedServices( CurrentUserUoWPrincipal.class ).importedBy( ImportedServiceDeclaration.NEW_OBJECT );
+                module.objects( CurrentUserUoWPrincipal.class );
+
+                module.objects( DomainEventSourceResource.class, PingResource.class );
+
+                module.entities( TestEntity.class ).withConcerns( DomainEventCreationConcern.class );
+            }
+        };
+
+        component.getDefaultHost().attach( "/events", new TestApplication( assembler ) );
+        component.getDefaultHost().attach( "/ping", assembler.module().newObject( PingResource.class ) );
+        component.start();
+
+        generateTestData(assembler.module());
+    }
+
+    private static void generateTestData(UnitOfWorkFactory unitOfWorkFactory) throws UnitOfWorkCompletionException
+    {
+        // Set principal for the UoW
+        Principal administratorPrincipal = new Principal()
+        {
+            public String getName()
+            {
+                return "administrator";
+            }
+        };
+
+        // Perform UoW with usecase defined
+        for (int i = 0; i < 43; i++)
+        {
+            UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "Change description "+(i+1) ));
+            uow.setMetaInfo( administratorPrincipal );
+
+            TestEntity entity = uow.newEntity( TestEntity.class );
+            entity.changedDescription( "New description" );
+            uow.complete();
+        }
+    }
+
+    static class TestApplication
+        extends Application
+    {
+        private final SingletonAssembler assembler;
+
+        TestApplication(SingletonAssembler assembler)
+        {
+            this.assembler = assembler;
+        }
+
+        @Override
+        public Restlet createInboundRoot()
+        {
+            getTunnelService().setExtensionsTunnel( true );
+            return assembler.module().newObject(DomainEventSourceResource.class  );
+        }
+    }
+
+
+    @Mixins(TestEntity.Mixin.class)
+    public interface TestEntity
+            extends EntityComposite
+    {
+        @UseDefaults
+        Property<String> description();
+
+        @DomainEvent
+        void changedDescription( String newName );
+
+        abstract class Mixin
+                implements TestEntity
+        {
+            public void changedDescription( String newName )
+            {
+                description().set( newName );
+            }
+        }
+    }
+
+    // Used to create more events
+    public static class PingResource
+        extends Restlet
+    {
+        @Structure
+        UnitOfWorkFactory unitOfWorkFactory;
+
+        @Service
+        EventSource eventSource;
+
+        @Override
+        public void handle( Request request, Response response )
+        {
+            // Set principal for the UoW
+            Principal administratorPrincipal = new Principal()
+            {
+                public String getName()
+                {
+                    return "administrator";
+                }
+            };
+
+            // Perform UoW with usecase defined
+            try
+            {
+                UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "Change description "+(eventSource.count()) ));
+                uow.setMetaInfo( administratorPrincipal );
+
+                TestEntity entity = uow.newEntity( TestEntity.class );
+                entity.changedDescription( "New description" );
+                uow.complete();
+
+                response.setEntity( new StringRepresentation( "Event created" ) );
+                response.setStatus( Status.SUCCESS_OK );
+            } catch (UnitOfWorkCompletionException e)
+            {
+                throw new ResourceException(e);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceTest.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceTest.java b/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceTest.java
deleted file mode 100644
index 2f1a2cd..0000000
--- a/libraries/eventsourcing-rest/src/test/java/org/qi4j/library/eventsourcing/domain/rest/server/DomainEventSourceResourceTest.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2011, Rickard Öberg. All Rights Reserved.
- *
- * Licensed 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.qi4j.library.eventsourcing.domain.rest.server;
-
-import org.junit.Ignore;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
-import org.qi4j.api.unitofwork.UnitOfWorkFactory;
-import org.qi4j.api.usecase.UsecaseBuilder;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ImportedServiceDeclaration;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.SingletonAssembler;
-import org.qi4j.library.eventsourcing.domain.api.DomainEvent;
-import org.qi4j.library.eventsourcing.domain.api.DomainEventValue;
-import org.qi4j.library.eventsourcing.domain.api.UnitOfWorkDomainEventsValue;
-import org.qi4j.library.eventsourcing.domain.factory.CurrentUserUoWPrincipal;
-import org.qi4j.library.eventsourcing.domain.factory.DomainEventCreationConcern;
-import org.qi4j.library.eventsourcing.domain.factory.DomainEventFactoryService;
-import org.qi4j.library.eventsourcing.domain.source.EventSource;
-import org.qi4j.library.eventsourcing.domain.source.memory.MemoryEventStoreService;
-import org.qi4j.test.EntityTestAssembler;
-import org.restlet.*;
-import org.restlet.data.Protocol;
-import org.restlet.data.Status;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.resource.ResourceException;
-
-import java.security.Principal;
-
-/**
- * Start simple web server that exposes the Restlet resource. Test through browser.
- */
-public class DomainEventSourceResourceTest
-{
-    public static void main( String[] args ) throws Exception
-    {
-        Component component = new Component();
-        component.getServers().add( Protocol.HTTP, 8080 );
-
-        SingletonAssembler assembler = new SingletonAssembler()
-        {
-            public void assemble( ModuleAssembly module ) throws AssemblyException
-            {
-                new EntityTestAssembler().assemble( module );
-
-                module.values( DomainEventValue.class, UnitOfWorkDomainEventsValue.class );
-                module.services( MemoryEventStoreService.class ).taggedWith( "domain" );
-                module.services( DomainEventFactoryService.class );
-                module.importedServices( CurrentUserUoWPrincipal.class ).importedBy( ImportedServiceDeclaration.NEW_OBJECT );
-                module.objects( CurrentUserUoWPrincipal.class );
-
-                module.objects( DomainEventSourceResource.class, PingResource.class );
-
-                module.entities( TestEntity.class ).withConcerns( DomainEventCreationConcern.class );
-            }
-        };
-
-        component.getDefaultHost().attach( "/events", new TestApplication( assembler ) );
-        component.getDefaultHost().attach( "/ping", assembler.module().newObject( PingResource.class ) );
-        component.start();
-
-        generateTestData(assembler.module());
-    }
-
-    private static void generateTestData(UnitOfWorkFactory unitOfWorkFactory) throws UnitOfWorkCompletionException
-    {
-        // Set principal for the UoW
-        Principal administratorPrincipal = new Principal()
-        {
-            public String getName()
-            {
-                return "administrator";
-            }
-        };
-
-        // Perform UoW with usecase defined
-        for (int i = 0; i < 43; i++)
-        {
-            UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "Change description "+(i+1) ));
-            uow.setMetaInfo( administratorPrincipal );
-
-            TestEntity entity = uow.newEntity( TestEntity.class );
-            entity.changedDescription( "New description" );
-            uow.complete();
-        }
-    }
-
-    static class TestApplication
-        extends Application
-    {
-        private final SingletonAssembler assembler;
-
-        TestApplication(SingletonAssembler assembler)
-        {
-            this.assembler = assembler;
-        }
-
-        @Override
-        public Restlet createInboundRoot()
-        {
-            getTunnelService().setExtensionsTunnel( true );
-            return assembler.module().newObject(DomainEventSourceResource.class  );
-        }
-    }
-
-
-    @Mixins(TestEntity.Mixin.class)
-    public interface TestEntity
-            extends EntityComposite
-    {
-        @UseDefaults
-        Property<String> description();
-
-        @DomainEvent
-        void changedDescription( String newName );
-
-        abstract class Mixin
-                implements TestEntity
-        {
-            public void changedDescription( String newName )
-            {
-                description().set( newName );
-            }
-        }
-    }
-
-    // Used to create more events
-    public static class PingResource
-        extends Restlet
-    {
-        @Structure
-        UnitOfWorkFactory unitOfWorkFactory;
-
-        @Service
-        EventSource eventSource;
-
-        @Override
-        public void handle( Request request, Response response )
-        {
-            // Set principal for the UoW
-            Principal administratorPrincipal = new Principal()
-            {
-                public String getName()
-                {
-                    return "administrator";
-                }
-            };
-
-            // Perform UoW with usecase defined
-            try
-            {
-                UnitOfWork uow = unitOfWorkFactory.newUnitOfWork( UsecaseBuilder.newUsecase( "Change description "+(eventSource.count()) ));
-                uow.setMetaInfo( administratorPrincipal );
-
-                TestEntity entity = uow.newEntity( TestEntity.class );
-                entity.changedDescription( "New description" );
-                uow.complete();
-
-                response.setEntity( new StringRepresentation( "Event created" ) );
-                response.setStatus( Status.SUCCESS_OK );
-            } catch (UnitOfWorkCompletionException e)
-            {
-                throw new ResourceException(e);
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/logging/src/main/java/org/qi4j/logging/trace/service/TraceServiceMixin.java
----------------------------------------------------------------------
diff --git a/libraries/logging/src/main/java/org/qi4j/logging/trace/service/TraceServiceMixin.java b/libraries/logging/src/main/java/org/qi4j/logging/trace/service/TraceServiceMixin.java
index 7590eef..8f20625 100644
--- a/libraries/logging/src/main/java/org/qi4j/logging/trace/service/TraceServiceMixin.java
+++ b/libraries/logging/src/main/java/org/qi4j/logging/trace/service/TraceServiceMixin.java
@@ -103,8 +103,8 @@ public class TraceServiceMixin
         {
             EntityComposite entity = (EntityComposite) object;
             String identity = entity.identity().get();
-            EntityComposite source = (EntityComposite) uow.get( first( Qi4j.FUNCTION_DESCRIPTOR_FOR
-                                                                           .map( entity ).types() ), identity);
+            EntityComposite source = (EntityComposite) uow.get( (Class<?>) first(
+                Qi4j.FUNCTION_DESCRIPTOR_FOR.map( entity ).types() ), identity );
             EntityBuilder<EntityTraceRecordEntity> builder = uow.newEntityBuilder( EntityTraceRecordEntity.class );
             EntityTraceRecordEntity state = builder.instance();
             setStandardStuff( compositeType, method, args, entryTime, durationNano, state, exception );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RestTest.java
----------------------------------------------------------------------
diff --git a/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RestTest.java b/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RestTest.java
index 3dfdbf9..046746d 100644
--- a/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RestTest.java
+++ b/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RestTest.java
@@ -124,6 +124,7 @@ public class RestTest
         assertThat( "Incorrect RDF produced", rdf, anyOf(
             // Open JDK 8 & Valid
             equalTo( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rdf:RDF\n	xmlns:qi4j=\"http://www.qi4j.org/rdf/model/1.0/\"\n	xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n	xmlns:rdfs=\"http://www.w3.org/2000/01/rdf-schema#\">\n<org.qi4j.library.rest.admin.RestTest-PersonEntity xmlns=\"urn:qi4j:type:\" rdf:about=\"urn:qi4j:entity:P1\">\n	<lastname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Doe</lastname>\n	<firstname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Joe</firstname>\n	<identity xmlns=\"urn:qi4j:type:org.qi4j.api.entity.Identity#\">P1</identity>\n	<mother xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\" rdf:resource=\"urn:qi4j:entity:P2\"/>\n</org.qi4j.library.rest.admin.RestTest-PersonEntity>\n\n</rdf:RDF>" ),
+            equalTo( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rdf:RDF\n	xmlns:qi4j=\"http://www.qi4j.org/rdf/model/1.0/\"\n	xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n	xmlns:rdfs=\"http://www.w3.org/2000/01/rdf-schema#\">\n<org.qi4j.library.rest.admin.RestTest-PersonEntity xmlns=\"urn:qi4j:type:\" rdf:about=\"urn:qi4j:entity:P1\">\n	<identity xmlns=\"urn:qi4j:type:org.qi4j.api.entity.Identity#\">P1</identity>\n	<firstname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Joe</firstname>\n	<lastname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Doe</lastname>\n	<mother xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\" rdf:resource=\"urn:qi4j:entity:P2\"/>\n</org.qi4j.library.rest.admin.RestTest-PersonEntity>\n\n</rdf:RDF>" ),
             // Sun JDK 6 / Oracle JDK 7 & Valid
             equalTo( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rdf:RDF\n	xmlns:qi4j=\"http://www.qi4j.org/rdf/model/1.0/\"\n	xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n	xmlns:rdfs=\"http://www.w3.org/2000/01/rdf-schema#\">\n<org.qi4j.library.rest.admin.RestTest-PersonEntity xmlns=\"urn:qi4j:type:\" rdf:about=\"urn:qi4j:entity:P1\">\n	<firstname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Joe</firstname>\n	<lastname xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\">Doe</lastname>\n	<identity xmlns=\"urn:qi4j:type:org.qi4j.api.entity.Identity#\">P1</identity>\n	<mother xmlns=\"urn:qi4j:type:org.qi4j.library.rest.admin.RestTest-Person#\" rdf:resource=\"urn:qi4j:entity:P2\"/>\n</org.qi4j.library.rest.admin.RestTest-PersonEntity>\n\n</rdf:RDF>" ),
             // IBM JDK 6 & Valid

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/PersistingSequencingTest.java
----------------------------------------------------------------------
diff --git a/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/PersistingSequencingTest.java b/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/PersistingSequencingTest.java
index 04e55c3..3a33c9e 100644
--- a/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/PersistingSequencingTest.java
+++ b/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/PersistingSequencingTest.java
@@ -27,10 +27,11 @@ import org.qi4j.library.uid.sequence.assembly.PersistingSequencingAssembler;
 import org.qi4j.test.AbstractQi4jTest;
 import org.qi4j.test.EntityTestAssembler;
 
-import static junit.framework.Assert.assertEquals;
-
+import static org.junit.Assert.*;
+    
 public class PersistingSequencingTest extends AbstractQi4jTest
 {
+    @Override
     public void assemble( ModuleAssembly module ) throws AssemblyException
     {
         new PersistingSequencingAssembler().assemble( module );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/68c662c9/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/TransientSequencingTest.java
----------------------------------------------------------------------
diff --git a/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/TransientSequencingTest.java b/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/TransientSequencingTest.java
index fef14ea..5ad7e5b 100644
--- a/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/TransientSequencingTest.java
+++ b/libraries/uid/src/test/java/org/qi4j/library/uid/sequence/TransientSequencingTest.java
@@ -26,10 +26,11 @@ import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.library.uid.sequence.assembly.TransientSequencingAssembler;
 import org.qi4j.test.AbstractQi4jTest;
 
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
 
 public class TransientSequencingTest extends AbstractQi4jTest
 {
+    @Override
     public void assemble( ModuleAssembly module ) throws AssemblyException
     {
         new TransientSequencingAssembler().assemble( module );