You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2017/04/10 11:54:41 UTC

[1/9] polygene-java git commit: Performance Tests - allow multiple executions in one go

Repository: polygene-java
Updated Branches:
  refs/heads/develop 425af3228 -> 4f2bcc307


Performance Tests - allow multiple executions in one go

Perf report directory creation did not allow to run several tests and
failed. This commit fix this.


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/bf66ab27
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/bf66ab27
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/bf66ab27

Branch: refs/heads/develop
Commit: bf66ab2707d864385b9fe4e32833f3f5133fb73a
Parents: 425af32
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 11:55:29 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 11:55:29 2017 +0200

----------------------------------------------------------------------
 .../entitystore/AbstractEntityStorePerformanceTest.java            | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/bf66ab27/tests/performance/src/main/java/org/apache/polygene/test/performance/entitystore/AbstractEntityStorePerformanceTest.java
----------------------------------------------------------------------
diff --git a/tests/performance/src/main/java/org/apache/polygene/test/performance/entitystore/AbstractEntityStorePerformanceTest.java b/tests/performance/src/main/java/org/apache/polygene/test/performance/entitystore/AbstractEntityStorePerformanceTest.java
index 9dfb9c3..69d1f69 100644
--- a/tests/performance/src/main/java/org/apache/polygene/test/performance/entitystore/AbstractEntityStorePerformanceTest.java
+++ b/tests/performance/src/main/java/org/apache/polygene/test/performance/entitystore/AbstractEntityStorePerformanceTest.java
@@ -298,7 +298,7 @@ public abstract class AbstractEntityStorePerformanceTest
         throws IOException
     {
         File dir = new File( "build/reports/perf/" );
-        if( !dir.mkdirs() )
+        if( !dir.exists() && !dir.mkdirs() )
         {
             System.out.println( "Couldn't create Performance result directory." );
         }


Re: [7/9] polygene-java git commit: POLYGENE-29 Fix Kotlin Script file extension: *.kts

Posted by Paul Merlin <pa...@apache.org>.
Le 2017-04-10 13:57, Niclas Hedhman a �crit�:
> Paul,
> I looked at exactly the same page as you, but I didn't trust the
> documentation and went to
> https://github.com/JetBrains/kotlin/tree/master/libraries/examples/kotlin-jsr223-local-example/src/test/kotlin/org/jetbrains/kotlin/script/jsr223
> where it ultimately points to, and there it is a .kt file. Maybe add
> multiple extensions...

This .kt file is a test that demonstrate usage of Kotlin Scripting.
.kts is the only extension for which the scripting engine is registered 
and the official way to denotate Kotlin Scripts from regular Kotlin 
files. IDEs make that difference too.
See 
https://github.com/JetBrains/kotlin/blob/master/libraries/examples/kotlin-jsr223-local-example/src/test/kotlin/org/jetbrains/kotlin/script/jsr223/KotlinJsr223ScriptEngineIT.kt#L36



Re: [7/9] polygene-java git commit: POLYGENE-29 Fix Kotlin Script file extension: *.kts

Posted by Niclas Hedhman <ni...@hedhman.org>.
Paul,
I looked at exactly the same page as you, but I didn't trust the
documentation and went to
https://github.com/JetBrains/kotlin/tree/master/libraries/examples/kotlin-jsr223-local-example/src/test/kotlin/org/jetbrains/kotlin/script/jsr223
where it ultimately points to, and there it is a .kt file. Maybe add
multiple extensions...

On Mon, Apr 10, 2017 at 7:54 PM, <pa...@apache.org> wrote:

> POLYGENE-29 Fix Kotlin Script file extension: *.kts
>
> See https://kotlinlang.org/docs/reference/whatsnew11.html#
> javaxscript-support
>
>
> Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
> Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/
> commit/a5bf65b8
> Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/a5bf65b8
> Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/a5bf65b8
>
> Branch: refs/heads/develop
> Commit: a5bf65b857ef31d89210557d008e8e3334f68c78
> Parents: 7f4048d
> Author: Paul Merlin <pa...@apache.org>
> Authored: Mon Apr 10 12:54:21 2017 +0200
> Committer: Paul Merlin <pa...@apache.org>
> Committed: Mon Apr 10 12:54:21 2017 +0200
>
> ----------------------------------------------------------------------
>  .../main/java/org/apache/polygene/library/scripting/Scripting.java | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/polygene-java/blob/
> a5bf65b8/libraries/scripting/src/main/java/org/apache/
> polygene/library/scripting/Scripting.java
> ----------------------------------------------------------------------
> diff --git a/libraries/scripting/src/main/java/org/apache/polygene/
> library/scripting/Scripting.java b/libraries/scripting/src/
> main/java/org/apache/polygene/library/scripting/Scripting.java
> index 119b8a1..ad97b42 100644
> --- a/libraries/scripting/src/main/java/org/apache/polygene/
> library/scripting/Scripting.java
> +++ b/libraries/scripting/src/main/java/org/apache/polygene/
> library/scripting/Scripting.java
> @@ -27,7 +27,7 @@ public class Scripting
>      public static final Scripting ECMASCRIPT = new Scripting( "nashorn",
> ".js" );
>      public static final Scripting GROOVY = new Scripting( "groovy",
> ".groovy" );
>      public static final Scripting JAVASCRIPT = new Scripting( "nashorn",
> ".js" );
> -    public static final Scripting KOTLIN = new Scripting( "kotlin", ".kt"
> );
> +    public static final Scripting KOTLIN = new Scripting( "kotlin",
> ".kts" );
>      public static final Scripting LUA = new Scripting( "lua", ".lua" );
>      public static final Scripting PYTHON = new Scripting( "python", ".py"
> );
>      public static final Scripting RUBY = new Scripting( "jruby", ".rb" );
>
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org - New Energy for Java

[7/9] polygene-java git commit: POLYGENE-29 Fix Kotlin Script file extension: *.kts

Posted by pa...@apache.org.
POLYGENE-29 Fix Kotlin Script file extension: *.kts

See https://kotlinlang.org/docs/reference/whatsnew11.html#javaxscript-support


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/a5bf65b8
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/a5bf65b8
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/a5bf65b8

Branch: refs/heads/develop
Commit: a5bf65b857ef31d89210557d008e8e3334f68c78
Parents: 7f4048d
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:54:21 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:54:21 2017 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/polygene/library/scripting/Scripting.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/a5bf65b8/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/Scripting.java
----------------------------------------------------------------------
diff --git a/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/Scripting.java b/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/Scripting.java
index 119b8a1..ad97b42 100644
--- a/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/Scripting.java
+++ b/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/Scripting.java
@@ -27,7 +27,7 @@ public class Scripting
     public static final Scripting ECMASCRIPT = new Scripting( "nashorn", ".js" );
     public static final Scripting GROOVY = new Scripting( "groovy", ".groovy" );
     public static final Scripting JAVASCRIPT = new Scripting( "nashorn", ".js" );
-    public static final Scripting KOTLIN = new Scripting( "kotlin", ".kt" );
+    public static final Scripting KOTLIN = new Scripting( "kotlin", ".kts" );
     public static final Scripting LUA = new Scripting( "lua", ".lua" );
     public static final Scripting PYTHON = new Scripting( "python", ".py" );
     public static final Scripting RUBY = new Scripting( "jruby", ".rb" );


[4/9] polygene-java git commit: Use setAccessible( true ) only when necessary

Posted by pa...@apache.org.
Use setAccessible( true ) only when necessary

See o.a.p.core.api.util.AccessibleObjects
All usages are in the model construction
Keep only potentially necessary calls
Remove duplicated calls on some code paths

This commit retains support for using mixin classes declared as private
or package protected, injection to private or package protected
constructors, methods, fields etc\u2026


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/40d8d6de
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/40d8d6de
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/40d8d6de

Branch: refs/heads/develop
Commit: 40d8d6de0c4c459d09ffad31110b3057d175536a
Parents: e029f9b
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:44:40 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:44:40 2017 +0200

----------------------------------------------------------------------
 .../polygene/api/composite/PropertyMapper.java  |  1 -
 .../polygene/api/util/AccessibleObjects.java    | 57 ++++++++++++++++++++
 .../bootstrap/CompositeAssemblyImpl.java        |  1 -
 .../runtime/composite/CompositeMethodModel.java |  6 ---
 .../runtime/composite/CompositeModel.java       |  4 +-
 .../runtime/composite/ConstructorModel.java     |  4 +-
 .../runtime/composite/ConstructorsModel.java    |  2 -
 .../runtime/composite/FragmentClassLoader.java  |  4 +-
 .../runtime/composite/TransientClassLoader.java |  4 +-
 .../runtime/injection/InjectedFieldModel.java   |  4 +-
 .../runtime/injection/InjectedMethodModel.java  |  8 +--
 .../provider/UsesInjectionProviderFactory.java  |  6 +--
 12 files changed, 69 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/api/src/main/java/org/apache/polygene/api/composite/PropertyMapper.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/composite/PropertyMapper.java b/core/api/src/main/java/org/apache/polygene/api/composite/PropertyMapper.java
index 0591bd4..09102d0 100644
--- a/core/api/src/main/java/org/apache/polygene/api/composite/PropertyMapper.java
+++ b/core/api/src/main/java/org/apache/polygene/api/composite/PropertyMapper.java
@@ -103,7 +103,6 @@ public final class PropertyMapper
             {
                 String methodName = objectObjectEntry.getKey().toString();
                 Method propertyMethod = composite.getClass().getInterfaces()[ 0 ].getMethod( methodName );
-                propertyMethod.setAccessible( true );
                 Object value = objectObjectEntry.getValue();
                 Type propertyType = GenericPropertyInfo.propertyTypeOf( propertyMethod );
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/api/src/main/java/org/apache/polygene/api/util/AccessibleObjects.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/util/AccessibleObjects.java b/core/api/src/main/java/org/apache/polygene/api/util/AccessibleObjects.java
new file mode 100644
index 0000000..73bb6ff
--- /dev/null
+++ b/core/api/src/main/java/org/apache/polygene/api/util/AccessibleObjects.java
@@ -0,0 +1,57 @@
+/*
+ *  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.api.util;
+
+import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Member;
+import java.lang.reflect.Modifier;
+
+public final class AccessibleObjects
+{
+    /**
+     * Ensure that a Method, Field, Constructor is accessible.
+     *
+     * If it is public, do nothing.
+     * Otherwise, use {@link AccessibleObject#setAccessible(boolean)} if it hasn't already been done.
+     *
+     * @param accessibleObject The AccessibleObject
+     * @param <T> AccessibleObject type
+     * @return The given AccessibleObject, accessible
+     */
+    public static <T extends AccessibleObject> T accessible( T accessibleObject )
+    {
+        if( accessibleObject instanceof Member )
+        {
+            Member member = (Member) accessibleObject;
+            if( Modifier.isPublic( member.getModifiers() )
+                && Modifier.isPublic( member.getDeclaringClass().getModifiers() ) )
+            {
+                return accessibleObject;
+            }
+        }
+        if( !accessibleObject.isAccessible() )
+        {
+            accessibleObject.setAccessible( true );
+        }
+        return accessibleObject;
+    }
+
+    private AccessibleObjects() {}
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java
index fa71481..5e9b5fc 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java
@@ -239,7 +239,6 @@ public abstract class CompositeAssemblyImpl
                                                concat( sideEffectDeclarations( mixinModel.mixinClass() ),
                                                        sideEffectClasses.stream() )
                                                                                              );
-                                           method.setAccessible( true );
                                            ConstraintsModel constraints = constraintsFor(
                                                method,
                                                toList( concat( constraintDeclarations( mixinModel.mixinClass() ),

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
index e2eded4..6c62ae5 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
@@ -72,13 +72,7 @@ public final class CompositeMethodModel
         sideEffects = sideEffectsModel;
         constraints = constraintsModel;
         constraintsInstance = constraints.newInstance();
-        initialize();
-    }
-
-    private void initialize()
-    {
         annotations = new CompositeMethodAnnotatedElement();
-        this.method.setAccessible( true );
 //        instancePool = new SynchronizedCompositeMethodInstancePool();
     }
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java
index 56659de..be159bc 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java
@@ -33,6 +33,7 @@ import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.api.composite.Composite;
 import org.apache.polygene.api.composite.CompositeDescriptor;
 import org.apache.polygene.api.structure.ModuleDescriptor;
+import org.apache.polygene.api.util.AccessibleObjects;
 import org.apache.polygene.api.util.HierarchicalVisitor;
 import org.apache.polygene.api.util.VisitableHierarchy;
 import org.apache.polygene.runtime.injection.Dependencies;
@@ -215,8 +216,7 @@ public abstract class CompositeModel
         {
             constructor = (Constructor<? extends Composite>) proxyClass.getConstructors()[ 0 ];
         }
-        constructor.setAccessible( true );
-        return constructor;
+        return AccessibleObjects.accessible( constructor );
     }
 
     // Context

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorModel.java
index 3df1ad5..f3f60fb 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorModel.java
@@ -27,6 +27,7 @@ import java.util.stream.Stream;
 import org.apache.polygene.api.common.ConstructionException;
 import org.apache.polygene.api.composite.ConstructorDescriptor;
 import org.apache.polygene.api.composite.InvalidCompositeException;
+import org.apache.polygene.api.util.AccessibleObjects;
 import org.apache.polygene.api.util.HierarchicalVisitor;
 import org.apache.polygene.api.util.VisitableHierarchy;
 import org.apache.polygene.runtime.injection.DependencyModel;
@@ -45,9 +46,8 @@ public final class ConstructorModel
 
     public ConstructorModel( Constructor<?> constructor, InjectedParametersModel parameters )
     {
-        this.constructor = constructor;
+        this.constructor = AccessibleObjects.accessible( constructor);
         this.parameters = parameters;
-        this.constructor.setAccessible( true );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorsModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorsModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorsModel.java
index e41d40c..56b5d85 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorsModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/ConstructorsModel.java
@@ -72,11 +72,9 @@ public final class ConstructorsModel
         Class<?> injectionClass = FragmentClassLoader.getSourceClass( fragmentClass );
         for( Constructor<?> constructor : realConstructors )
         {
-            constructor.setAccessible( true );
             try
             {
                 Constructor<?> injectionConstructor = injectionClass.getDeclaredConstructor( constructor.getParameterTypes() );
-                injectionConstructor.setAccessible( true );
                 ConstructorModel constructorModel = newConstructorModel( this.fragmentClass, constructor,
                                                                          injectionConstructor );
                 if( constructorModel != null )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
index 440e023..2603d99 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
@@ -420,7 +420,6 @@ public class FragmentClassLoader
                 {
                     if( isOverridden( method, baseClass ) )
                     {
-                        method.setAccessible( true );
                         Class methodClass;
                         if( Modifier.isAbstract( method.getModifiers() ) )
                         {
@@ -544,8 +543,7 @@ public class FragmentClassLoader
     {
         try
         {
-            Method m = intface.getMethod( method.getName(), method.getParameterTypes() );
-            m.setAccessible( true );
+            intface.getMethod( method.getName(), method.getParameterTypes() );
             return true;
         }
         catch( NoSuchMethodException e )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
index 9f63677..68c4fe3 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
@@ -390,7 +390,6 @@ import static org.objectweb.asm.Type.getInternalName;
             {
                 if( isOverloaded( method, baseClass ) )
                 {
-                    method.setAccessible( true );
                     Class methodClass = method.getDeclaringClass();
 
                     midx++;
@@ -484,8 +483,7 @@ import static org.objectweb.asm.Type.getInternalName;
         return interfacesOf( baseClass ).map( RAW_CLASS ).filter( Methods.HAS_METHODS ).anyMatch( clazz -> {
             try
             {
-                Method m = clazz.getMethod( method.getName(), method.getParameterTypes() );
-                m.setAccessible( true );
+                clazz.getMethod( method.getName(), method.getParameterTypes() );
                 return true;
             }
             catch( NoSuchMethodException e )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedFieldModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedFieldModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedFieldModel.java
index e4fd289..553f1ff 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedFieldModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedFieldModel.java
@@ -29,6 +29,7 @@ import java.util.function.Predicate;
 import java.util.stream.Stream;
 import org.apache.polygene.api.composite.DependencyDescriptor;
 import org.apache.polygene.api.composite.InjectedFieldDescriptor;
+import org.apache.polygene.api.util.AccessibleObjects;
 import org.apache.polygene.api.util.Classes;
 import org.apache.polygene.api.util.HierarchicalVisitor;
 import org.apache.polygene.api.util.VisitableHierarchy;
@@ -51,8 +52,7 @@ public final class InjectedFieldModel
 
     public InjectedFieldModel( Field injectedField, DependencyModel dependencyModel )
     {
-        injectedField.setAccessible( true );
-        this.injectedField = injectedField;
+        this.injectedField = AccessibleObjects.accessible( injectedField );
         this.dependencyModel = dependencyModel;
     }
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedMethodModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedMethodModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedMethodModel.java
index f1dc19b..9df8692 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedMethodModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/InjectedMethodModel.java
@@ -24,6 +24,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.stream.Stream;
 import org.apache.polygene.api.composite.InjectedMethodDescriptor;
+import org.apache.polygene.api.util.AccessibleObjects;
 import org.apache.polygene.api.util.HierarchicalVisitor;
 import org.apache.polygene.api.util.VisitableHierarchy;
 import org.apache.polygene.bootstrap.InjectionException;
@@ -40,8 +41,7 @@ public final class InjectedMethodModel
 
     public InjectedMethodModel( Method method, InjectedParametersModel parameters )
     {
-        this.method = method;
-        this.method.setAccessible( true );
+        this.method = AccessibleObjects.accessible( method );
         this.parameters = parameters;
     }
 
@@ -64,10 +64,6 @@ public final class InjectedMethodModel
         Object[] params = parameters.newParametersInstance( context );
         try
         {
-            if( !method.isAccessible() )
-            {
-                method.setAccessible( true );
-            }
             method.invoke( instance, params );
         }
         catch( IllegalAccessException e )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/40d8d6de/core/runtime/src/main/java/org/apache/polygene/runtime/injection/provider/UsesInjectionProviderFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/provider/UsesInjectionProviderFactory.java b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/provider/UsesInjectionProviderFactory.java
index f4549c5..6b21d29 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/injection/provider/UsesInjectionProviderFactory.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/injection/provider/UsesInjectionProviderFactory.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Constructor;
 import org.apache.polygene.api.composite.NoSuchTransientException;
 import org.apache.polygene.api.object.NoSuchObjectException;
 import org.apache.polygene.api.structure.Module;
+import org.apache.polygene.api.util.AccessibleObjects;
 import org.apache.polygene.bootstrap.InvalidInjectionException;
 import org.apache.polygene.runtime.composite.UsesInstance;
 import org.apache.polygene.runtime.injection.DependencyModel;
@@ -102,10 +103,7 @@ public final class UsesInjectionProviderFactory
                             {
                                 Constructor constructor = injectionType.getDeclaredConstructor( context.instance()
                                                                                                     .getClass() );
-                                if( !constructor.isAccessible() )
-                                {
-                                    constructor.setAccessible( true );
-                                }
+                                AccessibleObjects.accessible( constructor );
                                 usesObject = constructor.newInstance( context.instance() );
                             }
                             catch( Throwable e3 )


[2/9] polygene-java git commit: Tighten o.a.p.core.api.util by moving some types to where they belong

Posted by pa...@apache.org.
Tighten o.a.p.core.api.util by moving some types to where they belong

Move ArrayIterable to o.a.p.core.spi.util
And ListMap to o.a.p.extensions.migration.util


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/76b5be20
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/76b5be20
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/76b5be20

Branch: refs/heads/develop
Commit: 76b5be209e52a004f7acc94ed1d50ca002860f26
Parents: bf66ab2
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:09:40 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:09:40 2017 +0200

----------------------------------------------------------------------
 .../apache/polygene/api/util/ArrayIterable.java | 75 --------------------
 .../org/apache/polygene/api/util/ListMap.java   | 48 -------------
 .../javaxjson/JavaxJsonSerializer.java          |  2 +-
 .../apache/polygene/spi/util/ArrayIterable.java | 75 ++++++++++++++++++++
 .../org/apache/polygene/spi/util/package.html   | 24 +++++++
 .../migration/assembly/MigrationRules.java      |  2 +-
 .../apache/polygene/migration/util/ListMap.java | 48 +++++++++++++
 .../apache/polygene/migration/util/package.html | 24 +++++++
 .../javaxxml/JavaxXmlSerializer.java            |  2 +-
 .../messagepack/MessagePackSerializer.java      |  2 +-
 10 files changed, 175 insertions(+), 127 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/core/api/src/main/java/org/apache/polygene/api/util/ArrayIterable.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/util/ArrayIterable.java b/core/api/src/main/java/org/apache/polygene/api/util/ArrayIterable.java
deleted file mode 100644
index 707eaca..0000000
--- a/core/api/src/main/java/org/apache/polygene/api/util/ArrayIterable.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *  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.api.util;
-
-import java.lang.reflect.Array;
-import java.util.Iterator;
-
-/**
- * Iterate over arrays, both primitive arrays and Object[].
- */
-public class ArrayIterable implements Iterable<Object>
-{
-    private final Object array;
-
-    public ArrayIterable( final Object array )
-    {
-        if( !array.getClass().isArray() )
-        {
-            throw new IllegalArgumentException( array + " is not an array" );
-        }
-        this.array = array;
-    }
-
-    @Override
-    public Iterator<Object> iterator()
-    {
-        return new ArrayIterator( array );
-    }
-
-    private class ArrayIterator implements Iterator<Object>
-    {
-        private final Object array;
-        private int currentIndex = 0;
-
-        private ArrayIterator( Object array )
-        {
-            this.array = array;
-        }
-
-        @Override
-        public boolean hasNext()
-        {
-            return currentIndex < Array.getLength( array );
-        }
-
-        @Override
-        public Object next()
-        {
-            return Array.get( array, currentIndex++ );
-        }
-
-        @Override
-        public void remove()
-        {
-            throw new UnsupportedOperationException( "cannot remove items from an array" );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/core/api/src/main/java/org/apache/polygene/api/util/ListMap.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/util/ListMap.java b/core/api/src/main/java/org/apache/polygene/api/util/ListMap.java
deleted file mode 100644
index 4cba48e..0000000
--- a/core/api/src/main/java/org/apache/polygene/api/util/ListMap.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  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.api.util;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * Map whose values are Lists of things. Create
- * one ArrayList for each key that is added. The list does not allow
- * duplicates.
- */
-public final class ListMap<K, V>
-    extends HashMap<K, List<V>>
-{
-    public void add( K key, V value )
-    {
-        List<V> list = get( key );
-        if( list == null )
-        {
-            list = new ArrayList<V>();
-            put( key, list );
-        }
-        if( !list.contains( value ) )
-        {
-            list.add( value );
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
index 8e34d0d..48aa511 100644
--- a/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
+++ b/core/spi/src/main/java/org/apache/polygene/serialization/javaxjson/JavaxJsonSerializer.java
@@ -50,11 +50,11 @@ import org.apache.polygene.api.type.MapType;
 import org.apache.polygene.api.type.ValueCompositeType;
 import org.apache.polygene.api.type.ValueType;
 import org.apache.polygene.api.util.Annotations;
-import org.apache.polygene.api.util.ArrayIterable;
 import org.apache.polygene.api.value.ValueComposite;
 import org.apache.polygene.api.value.ValueDescriptor;
 import org.apache.polygene.spi.serialization.AbstractTextSerializer;
 import org.apache.polygene.spi.serialization.JsonSerializer;
+import org.apache.polygene.spi.util.ArrayIterable;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.stream.Collectors.toList;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/core/spi/src/main/java/org/apache/polygene/spi/util/ArrayIterable.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/apache/polygene/spi/util/ArrayIterable.java b/core/spi/src/main/java/org/apache/polygene/spi/util/ArrayIterable.java
new file mode 100644
index 0000000..71f8748
--- /dev/null
+++ b/core/spi/src/main/java/org/apache/polygene/spi/util/ArrayIterable.java
@@ -0,0 +1,75 @@
+/*
+ *  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.spi.util;
+
+import java.lang.reflect.Array;
+import java.util.Iterator;
+
+/**
+ * Iterate over arrays, both primitive arrays and Object[].
+ */
+public class ArrayIterable implements Iterable<Object>
+{
+    private final Object array;
+
+    public ArrayIterable( final Object array )
+    {
+        if( !array.getClass().isArray() )
+        {
+            throw new IllegalArgumentException( array + " is not an array" );
+        }
+        this.array = array;
+    }
+
+    @Override
+    public Iterator<Object> iterator()
+    {
+        return new ArrayIterator( array );
+    }
+
+    private class ArrayIterator implements Iterator<Object>
+    {
+        private final Object array;
+        private int currentIndex = 0;
+
+        private ArrayIterator( Object array )
+        {
+            this.array = array;
+        }
+
+        @Override
+        public boolean hasNext()
+        {
+            return currentIndex < Array.getLength( array );
+        }
+
+        @Override
+        public Object next()
+        {
+            return Array.get( array, currentIndex++ );
+        }
+
+        @Override
+        public void remove()
+        {
+            throw new UnsupportedOperationException( "cannot remove items from an array" );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/core/spi/src/main/java/org/apache/polygene/spi/util/package.html
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/apache/polygene/spi/util/package.html b/core/spi/src/main/java/org/apache/polygene/spi/util/package.html
new file mode 100644
index 0000000..a6ad50b
--- /dev/null
+++ b/core/spi/src/main/java/org/apache/polygene/spi/util/package.html
@@ -0,0 +1,24 @@
+<!--
+  ~  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.
+  ~
+  ~
+  -->
+<html>
+    <body>
+        <h2>SPI Utilities.</h2>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/extensions/migration/src/main/java/org/apache/polygene/migration/assembly/MigrationRules.java
----------------------------------------------------------------------
diff --git a/extensions/migration/src/main/java/org/apache/polygene/migration/assembly/MigrationRules.java b/extensions/migration/src/main/java/org/apache/polygene/migration/assembly/MigrationRules.java
index 920e3de..0109388 100644
--- a/extensions/migration/src/main/java/org/apache/polygene/migration/assembly/MigrationRules.java
+++ b/extensions/migration/src/main/java/org/apache/polygene/migration/assembly/MigrationRules.java
@@ -23,7 +23,7 @@ package org.apache.polygene.migration.assembly;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import org.apache.polygene.api.util.ListMap;
+import org.apache.polygene.migration.util.ListMap;
 
 /**
  * Set of migration rules.

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/extensions/migration/src/main/java/org/apache/polygene/migration/util/ListMap.java
----------------------------------------------------------------------
diff --git a/extensions/migration/src/main/java/org/apache/polygene/migration/util/ListMap.java b/extensions/migration/src/main/java/org/apache/polygene/migration/util/ListMap.java
new file mode 100644
index 0000000..aafc8ce
--- /dev/null
+++ b/extensions/migration/src/main/java/org/apache/polygene/migration/util/ListMap.java
@@ -0,0 +1,48 @@
+/*
+ *  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.migration.util;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Map whose values are Lists of things. Create
+ * one ArrayList for each key that is added. The list does not allow
+ * duplicates.
+ */
+public final class ListMap<K, V>
+    extends HashMap<K, List<V>>
+{
+    public void add( K key, V value )
+    {
+        List<V> list = get( key );
+        if( list == null )
+        {
+            list = new ArrayList<V>();
+            put( key, list );
+        }
+        if( !list.contains( value ) )
+        {
+            list.add( value );
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/extensions/migration/src/main/java/org/apache/polygene/migration/util/package.html
----------------------------------------------------------------------
diff --git a/extensions/migration/src/main/java/org/apache/polygene/migration/util/package.html b/extensions/migration/src/main/java/org/apache/polygene/migration/util/package.html
new file mode 100644
index 0000000..65edf4f
--- /dev/null
+++ b/extensions/migration/src/main/java/org/apache/polygene/migration/util/package.html
@@ -0,0 +1,24 @@
+<!--
+  ~  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.
+  ~
+  ~
+  -->
+<html>
+    <body>
+        <h2>Entities Migration Utilities.</h2>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
----------------------------------------------------------------------
diff --git a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
index fa3895d..fa50019 100644
--- a/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
+++ b/extensions/serialization-javaxxml/src/main/java/org/apache/polygene/serialization/javaxxml/JavaxXmlSerializer.java
@@ -48,11 +48,11 @@ import org.apache.polygene.api.type.EnumType;
 import org.apache.polygene.api.type.MapType;
 import org.apache.polygene.api.type.ValueCompositeType;
 import org.apache.polygene.api.util.Annotations;
-import org.apache.polygene.api.util.ArrayIterable;
 import org.apache.polygene.api.value.ValueComposite;
 import org.apache.polygene.api.value.ValueDescriptor;
 import org.apache.polygene.spi.serialization.AbstractTextSerializer;
 import org.apache.polygene.spi.serialization.XmlSerializer;
+import org.apache.polygene.spi.util.ArrayIterable;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/76b5be20/extensions/serialization-messagepack/src/main/java/org/apache/polygene/serialization/messagepack/MessagePackSerializer.java
----------------------------------------------------------------------
diff --git a/extensions/serialization-messagepack/src/main/java/org/apache/polygene/serialization/messagepack/MessagePackSerializer.java b/extensions/serialization-messagepack/src/main/java/org/apache/polygene/serialization/messagepack/MessagePackSerializer.java
index c48b7f7..dea03e1 100644
--- a/extensions/serialization-messagepack/src/main/java/org/apache/polygene/serialization/messagepack/MessagePackSerializer.java
+++ b/extensions/serialization-messagepack/src/main/java/org/apache/polygene/serialization/messagepack/MessagePackSerializer.java
@@ -40,10 +40,10 @@ import org.apache.polygene.api.type.EnumType;
 import org.apache.polygene.api.type.MapType;
 import org.apache.polygene.api.type.ValueCompositeType;
 import org.apache.polygene.api.util.Annotations;
-import org.apache.polygene.api.util.ArrayIterable;
 import org.apache.polygene.api.value.ValueComposite;
 import org.apache.polygene.api.value.ValueDescriptor;
 import org.apache.polygene.spi.serialization.AbstractBinarySerializer;
+import org.apache.polygene.spi.util.ArrayIterable;
 import org.msgpack.core.MessagePack;
 import org.msgpack.core.MessagePacker;
 import org.msgpack.value.ArrayValue;


[8/9] polygene-java git commit: POLYGENE-29 Handle mixed method return type auto-unboxing

Posted by pa...@apache.org.
POLYGENE-29 Handle mixed method return type auto-unboxing


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/7fdf9609
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/7fdf9609
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/7fdf9609

Branch: refs/heads/develop
Commit: 7fdf9609e7d67885627e9e2d5bc33008d6dd0b05
Parents: a5bf65b
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 13:51:02 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 13:51:02 2017 +0200

----------------------------------------------------------------------
 .../polygene/library/scripting/ScriptMixin.java | 52 +++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7fdf9609/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/ScriptMixin.java
----------------------------------------------------------------------
diff --git a/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/ScriptMixin.java b/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/ScriptMixin.java
index 61c033b..bca28d3 100644
--- a/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/ScriptMixin.java
+++ b/libraries/scripting/src/main/java/org/apache/polygene/library/scripting/ScriptMixin.java
@@ -116,7 +116,8 @@ public class ScriptMixin
     public Object invoke( Object proxy, Method method, Object[] objects )
         throws Throwable
     {
-        return ( (Invocable) engine ).invokeFunction( method.getName(), objects );
+        Object result = ( (Invocable) engine ).invokeFunction( method.getName(), objects );
+        return castInvocationResult( method.getReturnType(), result );
     }
 
     @Override
@@ -186,4 +187,53 @@ public class ScriptMixin
     {
         engine.getContext().setAttribute( name, value, ScriptContext.GLOBAL_SCOPE );
     }
+
+    /**
+     * Needed to prevent class cast exception between boxed and unboxed types.
+     * Explicit casting to primitive type, triggers the auto-unboxing compiler trick.
+     */
+    @SuppressWarnings( "RedundantCast" )
+    private static Object castInvocationResult( Class<?> returnType, Object result )
+    {
+        if( void.class.equals( returnType ) || Void.class.equals( returnType ) )
+        {
+            return null;
+        }
+        if( returnType.isPrimitive() )
+        {
+            if( char.class.equals( returnType ) )
+            {
+                return (char) result;
+            }
+            if( boolean.class.equals( returnType ) )
+            {
+                return (boolean) result;
+            }
+            if( short.class.equals( returnType ) )
+            {
+                return (short) result;
+            }
+            if( int.class.equals( returnType ) )
+            {
+                return (int) result;
+            }
+            if( byte.class.equals( returnType ) )
+            {
+                return (byte) result;
+            }
+            if( long.class.equals( returnType ) )
+            {
+                return (long) result;
+            }
+            if( float.class.equals( returnType ) )
+            {
+                return (float) result;
+            }
+            if( double.class.equals( returnType ) )
+            {
+                return (double) result;
+            }
+        }
+        return returnType.cast( result );
+    }
 }


[6/9] polygene-java git commit: Minor, clean up CleanStackTraceTest

Posted by pa...@apache.org.
Minor, clean up CleanStackTraceTest


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/7f4048d7
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/7f4048d7
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/7f4048d7

Branch: refs/heads/develop
Commit: 7f4048d779753aa90f43eb69531ecc02112a60f4
Parents: 1cf686c
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:49:10 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:49:10 2017 +0200

----------------------------------------------------------------------
 .../test/composite/CleanStackTraceTest.java     | 26 ++++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7f4048d7/core/runtime/src/test/java/org/apache/polygene/test/composite/CleanStackTraceTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/polygene/test/composite/CleanStackTraceTest.java b/core/runtime/src/test/java/org/apache/polygene/test/composite/CleanStackTraceTest.java
index c504baf..010f7ae 100644
--- a/core/runtime/src/test/java/org/apache/polygene/test/composite/CleanStackTraceTest.java
+++ b/core/runtime/src/test/java/org/apache/polygene/test/composite/CleanStackTraceTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
 import org.apache.polygene.api.concern.Concerns;
 import org.apache.polygene.api.concern.GenericConcern;
 import org.apache.polygene.api.mixin.Mixins;
-import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 
 import static org.hamcrest.core.IsNull.notNullValue;
@@ -44,19 +43,16 @@ import static org.junit.Assume.assumeTrue;
  * NOTE: This satisfiedBy MUST NOT be inside package org.apache.polygene.runtime, or it will fail.
  * </p>
  */
-public class CleanStackTraceTest
-    extends AbstractPolygeneTest
+public class CleanStackTraceTest extends AbstractPolygeneTest
 {
-
     @BeforeClass
     public static void beforeClass_IBMJDK()
-    {   
+    {
         assumeTrue( !( System.getProperty( "java.vendor" ).contains( "IBM" ) ) );
-    }   
+    }
 
     @Override
     public void assemble( ModuleAssembly module )
-        throws AssemblyException
     {
         module.transients( CleanStackTraceTest.TestComposite.class );
     }
@@ -82,14 +78,14 @@ public class CleanStackTraceTest
         {
             String separator = System.getProperty( "line.separator" );
             String correctTrace1 = "java.lang.RuntimeException: level 2" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$DoStuffMixin.doStuff(CleanStackTraceTest.java:128)" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$NillyWilly.invoke(CleanStackTraceTest.java:141)" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest.cleanStackTraceOnApplicationException(CleanStackTraceTest.java:79)";
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$DoStuffMixin.doStuff(CleanStackTraceTest.java:123)" + separator +
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$NillyWilly.invoke(CleanStackTraceTest.java:135)" + separator +
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest.cleanStackTraceOnApplicationException(CleanStackTraceTest.java:75)";
             assertEquality( e, correctTrace1 );
             String correctTrace2 = "java.lang.RuntimeException: level 1" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$DoStuffMixin.doStuff(CleanStackTraceTest.java:124)" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$NillyWilly.invoke(CleanStackTraceTest.java:141)" + separator +
-                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest.cleanStackTraceOnApplicationException(CleanStackTraceTest.java:79)";
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$DoStuffMixin.doStuff(CleanStackTraceTest.java:119)" + separator +
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest$NillyWilly.invoke(CleanStackTraceTest.java:135)" + separator +
+                                   "\tat org.apache.polygene.test.composite.CleanStackTraceTest.cleanStackTraceOnApplicationException(CleanStackTraceTest.java:75)";
             assertThat( e.getCause(), notNullValue() );
             assertEquality( e.getCause(), correctTrace2 );
         }
@@ -106,7 +102,7 @@ public class CleanStackTraceTest
     }
 
     @Concerns( NillyWilly.class )
-    @Mixins(DoStuffMixin.class)
+    @Mixins( DoStuffMixin.class )
     public interface TestComposite
     {
         void doStuff();
@@ -115,7 +111,6 @@ public class CleanStackTraceTest
     public static class DoStuffMixin
         implements TestComposite
     {
-
         @Override
         public void doStuff()
         {
@@ -133,7 +128,6 @@ public class CleanStackTraceTest
     static class NillyWilly extends GenericConcern
         implements InvocationHandler
     {
-
         @Override
         public Object invoke( Object proxy, Method method, Object[] args )
             throws Throwable


[3/9] polygene-java git commit: Minor edits, imports, variable names, simplify expressions

Posted by pa...@apache.org.
Minor edits, imports, variable names, simplify expressions


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/e029f9ba
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/e029f9ba
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/e029f9ba

Branch: refs/heads/develop
Commit: e029f9ba5f9c5fe10eb8e4f35caef6aa1faa6fc6
Parents: 76b5be2
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:10:17 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:13:22 2017 +0200

----------------------------------------------------------------------
 .../org/apache/polygene/api/util/Classes.java   | 40 ++++++++++----------
 .../apache/polygene/api/util/Collectors.java    |  2 +-
 .../runtime/composite/CompositeMethodModel.java | 19 +++-------
 .../runtime/defaults/UseDefaultsTest.java       |  5 +--
 4 files changed, 27 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/e029f9ba/core/api/src/main/java/org/apache/polygene/api/util/Classes.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/util/Classes.java b/core/api/src/main/java/org/apache/polygene/api/util/Classes.java
index 175be95..49ead26 100644
--- a/core/api/src/main/java/org/apache/polygene/api/util/Classes.java
+++ b/core/api/src/main/java/org/apache/polygene/api/util/Classes.java
@@ -50,32 +50,32 @@ import static java.util.stream.StreamSupport.stream;
  */
 public final class Classes
 {
-    private final static Map<Type, Type> wrapperClasses = new HashMap<>();
+    private final static Map<Type, Type> WRAPPER_CLASSES = new HashMap<>();
 
     static
     {
-        wrapperClasses.put( boolean.class, Boolean.class );
-        wrapperClasses.put( byte.class, Byte.class );
-        wrapperClasses.put( short.class, Short.class );
-        wrapperClasses.put( char.class, Character.class );
-        wrapperClasses.put( int.class, Integer.class );
-        wrapperClasses.put( long.class, Long.class );
-        wrapperClasses.put( float.class, Float.class );
-        wrapperClasses.put( double.class, Double.class );
+        WRAPPER_CLASSES.put( boolean.class, Boolean.class );
+        WRAPPER_CLASSES.put( byte.class, Byte.class );
+        WRAPPER_CLASSES.put( short.class, Short.class );
+        WRAPPER_CLASSES.put( char.class, Character.class );
+        WRAPPER_CLASSES.put( int.class, Integer.class );
+        WRAPPER_CLASSES.put( long.class, Long.class );
+        WRAPPER_CLASSES.put( float.class, Float.class );
+        WRAPPER_CLASSES.put( double.class, Double.class );
     }
 
-    private final static Map<Type, Type> primitiveClasses = new HashMap<>();
+    private final static Map<Type, Type> PRIMITIVE_CLASSES = new HashMap<>();
 
     static
     {
-        primitiveClasses.put( boolean.class, Boolean.class );
-        primitiveClasses.put( byte.class, Byte.class );
-        primitiveClasses.put( short.class, Short.class );
-        primitiveClasses.put( char.class, Character.class );
-        primitiveClasses.put( int.class, Integer.class );
-        primitiveClasses.put( long.class, Long.class );
-        primitiveClasses.put( float.class, Float.class );
-        primitiveClasses.put( double.class, Double.class );
+        PRIMITIVE_CLASSES.put( boolean.class, Boolean.class );
+        PRIMITIVE_CLASSES.put( byte.class, Byte.class );
+        PRIMITIVE_CLASSES.put( short.class, Short.class );
+        PRIMITIVE_CLASSES.put( char.class, Character.class );
+        PRIMITIVE_CLASSES.put( int.class, Integer.class );
+        PRIMITIVE_CLASSES.put( long.class, Long.class );
+        PRIMITIVE_CLASSES.put( float.class, Float.class );
+        PRIMITIVE_CLASSES.put( double.class, Double.class );
     }
 
     /**
@@ -84,7 +84,7 @@ public final class Classes
      * to ensure that they are not primitives.
      */
     private static final Function<Type, Type> WRAPPER_CLASS = clazz -> {
-        Type wrapperClass = wrapperClasses.get( clazz );
+        Type wrapperClass = WRAPPER_CLASSES.get( clazz );
         return wrapperClass == null ? clazz : wrapperClass;
     };
 
@@ -95,7 +95,7 @@ public final class Classes
      */
     @SuppressWarnings( "UnusedDeclaration" )
     private static final Function<Type, Type> PRIMITIVE_CLASS = aClass -> {
-        Type primitiveClass = primitiveClasses.get( aClass );
+        Type primitiveClass = PRIMITIVE_CLASSES.get( aClass );
         return primitiveClass == null ? aClass : primitiveClass;
     };
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/e029f9ba/core/api/src/main/java/org/apache/polygene/api/util/Collectors.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/util/Collectors.java b/core/api/src/main/java/org/apache/polygene/api/util/Collectors.java
index 906b062..c3045cc 100644
--- a/core/api/src/main/java/org/apache/polygene/api/util/Collectors.java
+++ b/core/api/src/main/java/org/apache/polygene/api/util/Collectors.java
@@ -201,7 +201,7 @@ public class Collectors
                                             Function<? super T, ? extends U> valueMapper,
                                             Supplier<M> mapSupplier )
     {
-        return java.util.stream.Collector
+        return Collector
             .of( mapSupplier,
                  ( map, entry ) -> map.put( keyMapper.apply( entry ),
                                             valueMapper.apply( entry ) ),

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/e029f9ba/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
index 4d21359..e2eded4 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeMethodModel.java
@@ -29,7 +29,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.polygene.api.common.ConstructionException;
@@ -100,11 +99,7 @@ public final class CompositeMethodModel
     @SuppressWarnings( "unchecked" )
     public Stream<DependencyModel> dependencies()
     {
-        Stream<? extends Dependencies> fragments = Stream.of( this.concerns, sideEffects );
-        Stream<? extends Dependencies> nonNullFragments = fragments.filter( Objects::nonNull );
-        Function<? super Dependencies, Stream<? extends DependencyModel>> dependencies = Dependencies::dependencies;
-        Stream<DependencyModel> modelStream = nonNullFragments.flatMap( dependencies );
-        return modelStream;
+        return Stream.of( concerns, sideEffects ).filter( Objects::nonNull ).flatMap( Dependencies::dependencies );
     }
 
     // Context
@@ -223,13 +218,9 @@ public final class CompositeMethodModel
             try
             {
                 MixinModel model = mixins.mixinFor( method );
-                if( Genericpredicate.INSTANCE.test( model.mixinClass() ) )
-                {
-                    return false;
-                }
-                return ( model.mixinClass()
-                             .getMethod( method.getName(), method.getParameterTypes() )
-                             .isAnnotationPresent( annotationClass ) );
+                return !Genericpredicate.INSTANCE.test( model.mixinClass() )
+                       && ( model.mixinClass().getMethod( method.getName(), method.getParameterTypes() )
+                                 .isAnnotationPresent( annotationClass ) );
             }
             catch( NoSuchMethodException e )
             {
@@ -268,7 +259,7 @@ public final class CompositeMethodModel
         public Annotation[] getAnnotations()
         {
             // Add mixin annotations
-            List<Annotation> annotations = new ArrayList<Annotation>();
+            List<Annotation> annotations = new ArrayList<>();
             MixinModel model = mixins.mixinFor( method );
             Annotation[] mixinAnnotations = new Annotation[ 0 ];
             if( !Genericpredicate.INSTANCE.test( model.mixinClass() ) )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/e029f9ba/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
index a2dc6b3..2bc7b34 100644
--- a/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
+++ b/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
@@ -27,9 +27,7 @@ import java.util.Map;
 import org.apache.polygene.api.common.Optional;
 import org.apache.polygene.api.common.UseDefaults;
 import org.apache.polygene.api.composite.TransientBuilder;
-import org.apache.polygene.api.composite.TransientComposite;
 import org.apache.polygene.api.property.Property;
-import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.junit.Test;
@@ -44,8 +42,8 @@ import static org.junit.Assert.assertTrue;
  */
 public class UseDefaultsTest extends AbstractPolygeneTest
 {
+    @Override
     public void assemble( ModuleAssembly module )
-        throws AssemblyException
     {
         module.transients( TestComposite.class );
         module.forMixin( TestComposite.class ).declareDefaults().assemblyString().set( "habba" );
@@ -92,7 +90,6 @@ public class UseDefaultsTest extends AbstractPolygeneTest
     }
 
     interface TestComposite
-        extends TransientComposite
     {
         @Optional
         Property<Integer> nullInt();


[9/9] polygene-java git commit: build: add gradle-profiler scenario file

Posted by pa...@apache.org.
build: add gradle-profiler scenario file

See https://github.com/gradle/gradle-profiler


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/4f2bcc30
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/4f2bcc30
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/4f2bcc30

Branch: refs/heads/develop
Commit: 4f2bcc307181ffebdfa8f98c85ad50ef3ff92686
Parents: 7fdf960
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 13:54:00 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 13:54:00 2017 +0200

----------------------------------------------------------------------
 .gitignore                |  2 ++
 gradle-profiler.scenarios | 11 +++++++++++
 2 files changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/4f2bcc30/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index b1c086c..368ccc0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,5 @@ derby.log
 .gradletasknamecache
 private/cache
 node_modules
+gradle-user-home
+profile-out*

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/4f2bcc30/gradle-profiler.scenarios
----------------------------------------------------------------------
diff --git a/gradle-profiler.scenarios b/gradle-profiler.scenarios
new file mode 100644
index 0000000..4b85032
--- /dev/null
+++ b/gradle-profiler.scenarios
@@ -0,0 +1,11 @@
+# Configuration
+help {
+    tasks = ["help"]
+}
+
+# Verification from a clean working copy
+clean_check {
+    gradle-args = ["--parallel"]
+    tasks = ["check"]
+    cleanup-tasks = ["clean"]
+}


[5/9] polygene-java git commit: [Fragment|Transient]ClassLoaders only supports JDK_8 opcodes

Posted by pa...@apache.org.
[Fragment|Transient]ClassLoaders only supports JDK_8 opcodes

We don\u2019t support JDK 7
Before this commit we were generating JDK_7 opcodes even when running on a JDK >=8


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/1cf686ca
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/1cf686ca
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/1cf686ca

Branch: refs/heads/develop
Commit: 1cf686ca60e92458d77eb3b7ed946c0626d63859
Parents: 40d8d6d
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Apr 10 12:47:34 2017 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Apr 10 12:47:34 2017 +0200

----------------------------------------------------------------------
 .../polygene/runtime/composite/FragmentClassLoader.java  | 11 ++++-------
 .../polygene/runtime/composite/TransientClassLoader.java | 11 ++++-------
 2 files changed, 8 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/1cf686ca/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
index 2603d99..5f56595 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java
@@ -92,13 +92,10 @@ public class FragmentClassLoader
         String jdkString = System.getProperty( "java.specification.version" );
         switch( jdkString )
         {
-        case "1.8":
-            JDK_VERSION = Opcodes.V1_8;
-            break;
-        case "1.7":
-        default:
-            JDK_VERSION = Opcodes.V1_7;
-            break;
+            case "1.8":
+            default:
+                JDK_VERSION = Opcodes.V1_8;
+                break;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/1cf686ca/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
index 68c4fe3..7e20a0e 100644
--- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
+++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientClassLoader.java
@@ -91,13 +91,10 @@ import static org.objectweb.asm.Type.getInternalName;
         String jdkString = System.getProperty( "java.specification.version" );
         switch( jdkString )
         {
-        case "1.8":
-            JDK_VERSION = Opcodes.V1_8;
-            break;
-        case "1.7":
-        default:
-            JDK_VERSION = Opcodes.V1_7;
-            break;
+            case "1.8":
+            default:
+                JDK_VERSION = Opcodes.V1_8;
+                break;
         }
     }