2
0
Эх сурвалжийг харах

Merge branch 'master' into PBRisComing

Nehon 10 жил өмнө
parent
commit
2db5f773e0
56 өөрчлөгдсөн 967 нэмэгдсэн , 544 устгасан
  1. 2 0
      .gitignore
  2. 11 1
      .travis.yml
  3. 9 9
      build.gradle
  4. 31 33
      common.gradle
  5. 3 1
      jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java
  6. 0 1
      jme3-core/src/main/java/com/jme3/animation/Bone.java
  7. 9 1
      jme3-core/src/main/java/com/jme3/light/AmbientLight.java
  8. 27 2
      jme3-core/src/main/java/com/jme3/light/DirectionalLight.java
  9. 9 2
      jme3-core/src/main/java/com/jme3/light/Light.java
  10. 52 7
      jme3-core/src/main/java/com/jme3/light/PointLight.java
  11. 97 11
      jme3-core/src/main/java/com/jme3/light/SpotLight.java
  12. 27 46
      jme3-core/src/main/java/com/jme3/math/Matrix4f.java
  13. 33 11
      jme3-core/src/main/java/com/jme3/math/Transform.java
  14. 2 0
      jme3-core/src/main/java/com/jme3/system/AppSettings.java
  15. 10 5
      jme3-core/src/main/java/com/jme3/util/BufferUtils.java
  16. 1 3
      jme3-core/src/main/java/com/jme3/util/LittleEndien.java
  17. 7 6
      jme3-examples/build.gradle
  18. 12 2
      jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java
  19. 12 2
      jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java
  20. 1 0
      private/known_hosts
  21. BIN
      private/www-updater.key.enc
  22. 1 2
      sdk/JME3TestsTemplate/build.xml
  23. 8 8
      sdk/JME3TestsTemplate/nbproject/genfiles.properties
  24. 12 6
      sdk/JME3TestsTemplate/nbproject/project.properties
  25. 2 0
      sdk/jme3-angelfont/nbproject/project.properties
  26. 1 0
      sdk/jme3-blender/nbproject/project.properties
  27. 10 2
      sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java
  28. 3 0
      sdk/jme3-code-check/nbproject/project.properties
  29. 2 2
      sdk/jme3-core-baselibs/nbproject/genfiles.properties
  30. 90 81
      sdk/jme3-core-baselibs/nbproject/project.xml
  31. 54 0
      sdk/jme3-core-libraries/nbproject/project.xml
  32. 2 2
      sdk/jme3-core-updatecenters/nbproject/genfiles.properties
  33. 2 0
      sdk/jme3-core-updatecenters/nbproject/project.xml
  34. 1 0
      sdk/jme3-core-updatecenters/src/META-INF/services/org.netbeans.spi.autoupdate.KeyStoreProvider
  35. 1 1
      sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties
  36. 47 0
      sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/JmeKeyStoreProvider.java
  37. BIN
      sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/trustedcerts.jks
  38. 1 0
      sdk/jme3-obfuscate/nbproject/project.properties
  39. 1 1
      sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties
  40. 81 66
      sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml
  41. 2 2
      sdk/nbi/stub/ext/components/products/blender/nbproject/genfiles.properties
  42. 81 66
      sdk/nbi/stub/ext/components/products/helloworld/nbproject/build-impl.xml
  43. 2 2
      sdk/nbi/stub/ext/components/products/helloworld/nbproject/genfiles.properties
  44. 2 1
      sdk/nbi/stub/ext/components/products/helloworld/src/org/mycompany/ConfigurationLogic.java
  45. 81 66
      sdk/nbi/stub/ext/components/products/jdk/nbproject/build-impl.xml
  46. 2 2
      sdk/nbi/stub/ext/components/products/jdk/nbproject/genfiles.properties
  47. 81 66
      sdk/nbi/stub/ext/engine/nbproject/build-impl.xml
  48. 2 2
      sdk/nbi/stub/ext/engine/nbproject/genfiles.properties
  49. 4 4
      sdk/nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties
  50. 4 4
      sdk/nbi/stub/ext/infra/build/products/blender-linux-x86/build.properties
  51. 2 2
      sdk/nbi/stub/ext/infra/build/products/blender-macosx/build.properties
  52. 3 3
      sdk/nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties
  53. 4 4
      sdk/nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties
  54. 1 1
      sdk/nbproject/project.properties
  55. 6 0
      upload.gradle
  56. 16 5
      version.gradle

+ 2 - 0
.gitignore

@@ -136,8 +136,10 @@
 !/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so
 /.nb-gradle/
 /sdk/ant-jme/nbproject/private/
+/sdk/nbi/stub/ext/engine/nbproject/private/
 /sdk/nbi/stub/ext/components/products/jdk/nbproject/private/
 /sdk/nbi/stub/ext/components/products/blender/nbproject/private/
+/sdk/nbi/stub/ext/components/products/helloworld/nbproject/private/
 /sdk/BasicGameTemplate/nbproject/private/
 /sdk/nbi/stub/ext/components/products/jdk/build/
 /sdk/nbi/stub/ext/components/products/jdk/dist/

+ 11 - 1
.travis.yml

@@ -25,17 +25,27 @@ install:
 script:
   - ./gradlew check
   - ./gradlew createZipDistribution
+  - "[ $TRAVIS_BRANCH == 'master' ] && [ $TRAVIS_PULL_REQUEST == 'false' ] && ./gradlew uploadArchives;"
+
+before_deploy:
+  - export RELEASE_DIST=$(ls build/distributions/*.zip)
 
 deploy:
   provider: releases
   api_key:
     secure: PuEsJd6juXBH29ByITW3ntSAyrwWs0IeFvXJ5Y2YlhojhSMtTwkoWeB6YmDJWP4fhzbajk4TQ1HlOX2IxJXSW/8ShOEIUlGXz9fHiST0dkSM+iRAUgC5enCLW5ITPTiem7eY9ZhS9miIam7ngce9jHNMh75PTzZrEJtezoALT9w=
-  file: build/distributions/jME3.1.0_snapshot-github_2015-08-02.zip
+  file_glob: true
+  file: "${RELEASE_DIST}"
   skip_cleanup: true
   on:
     repo: jMonkeyEngine/jmonkeyengine
     tags: true
 
+before_install:
+  - git fetch --unshallow
+  - openssl aes-256-cbc -K $encrypted_a1949b55824a_key -iv $encrypted_a1949b55824a_iv 
+    -in private/www-updater.key.enc -out private/www-updater.key -d
+
 # before_install:
   # required libs for android build tools
   # sudo apt-get update

+ 9 - 9
build.gradle

@@ -11,6 +11,7 @@ buildscript {
 
 apply plugin: 'base'
 apply from: file('version.gradle')
+apply from: file('upload.gradle')
 
 // This is applied to all sub projects
 subprojects {
@@ -59,15 +60,14 @@ task libDist(dependsOn: subprojects.build) << {
     }
 }
 
-task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"Package the nightly zip distribution"){    
-        archiveName "jME"+jmeVersion+"_"+jmeVersionTag+"_"+new Date().format("yyyy-MM-dd")+".zip"
-       
-        into("/") {
-             from {"./dist"}
-        }            
-        into("/sources") {
-            from {"$buildDir/libDist/sources"}     
-        }
+task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"Package the nightly zip distribution"){
+    archiveName "jME" + jmeFullVersion + ".zip"
+    into("/") {
+         from {"./dist"}
+    }            
+    into("/sources") {
+        from {"$buildDir/libDist/sources"}     
+    }
 }
 
 task copyLibs(type: Copy){

+ 31 - 33
common.gradle

@@ -4,7 +4,6 @@
 
 apply plugin: 'java'
 apply plugin: 'maven'
-apply plugin: 'maven-publish'
 
 group = 'com.jme3'
 version = jmePomVersion
@@ -19,15 +18,20 @@ repositories {
     }
 }
 
+configurations {
+    deployerJars
+}
+
 dependencies {
     // Adding dependencies here will add the dependencies to each subproject.
     testCompile group: 'junit', name: 'junit', version: '4.10'
+    deployerJars "org.apache.maven.wagon:wagon-ssh:2.9"
 }
 
 jar {
     manifest {
         attributes 'Implementation-Title': 'jMonkeyEngine',
-                   'Implementation-Version': version
+                   'Implementation-Version': jmeFullVersion
     }
 }
 
@@ -63,41 +67,35 @@ artifacts {
     }
 }
 
-publishing {
-    publications {
-        maven(MavenPublication) {
-            from components.java
-            artifact sourcesJar
-            artifact javadocJar
-
-            pom.withXml {
-                asNode().children().last() + {
-                        resolveStrategy = Closure.DELEGATE_FIRST
-                        name POM_NAME
-                        description POM_DESCRIPTION
-                        url POM_URL
-                        scm {
-                            url POM_SCM_URL
-                            connection POM_SCM_CONNECTION
-                            developerConnection POM_SCM_DEVELOPER_CONNECTION
-                        }
-                        licenses {
-                            license {
-                                name POM_LICENSE_NAME
-                                url POM_LICENSE_URL
-                                distribution POM_LICENSE_DISTRIBUTION
-                            }
-                        }
+uploadArchives {
+    repositories.mavenDeployer {
+        configuration = configurations.deployerJars
+        
+        // disable this otherwise it will fill up the server with stale jars
+        uniqueVersion = false
+        
+        repository(url: "scp://updates.jmonkeyengine.org/var/www/updates/maven") {
+             authentication(userName: "www-updater", privateKey: "private/www-updater.key")
+        }
+        
+        pom.project {
+            name POM_NAME
+            description POM_DESCRIPTION
+            url POM_URL
+            scm {
+                url POM_SCM_URL
+                connection POM_SCM_CONNECTION
+                developerConnection POM_SCM_DEVELOPER_CONNECTION
+            }
+            licenses {
+                license {
+                    name POM_LICENSE_NAME
+                    url POM_LICENSE_URL
+                    distribution POM_LICENSE_DISTRIBUTION
                 }
             }
         }
     }
-
-    repositories {
-        maven {
-            url "${rootProject.buildDir}/repo" // change to point to your repo, e.g. http://my.org/repo
-        }
-    }
 }
 
 task createFolders(description: 'Creates the source folders if they do not exist.') doLast {

+ 3 - 1
jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CapsuleCollisionShape.java

@@ -93,7 +93,9 @@ public class CapsuleCollisionShape extends CollisionShape{
      */
     @Override
     public void setScale(Vector3f scale) {
-        Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "CapsuleCollisionShape cannot be scaled");
+        if (!scale.equals(Vector3f.UNIT_XYZ)) {
+            Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "CapsuleCollisionShape cannot be scaled");
+        }
     }
 
     public void write(JmeExporter ex) throws IOException {

+ 0 - 1
jme3-core/src/main/java/com/jme3/animation/Bone.java

@@ -553,7 +553,6 @@ public final class Bone implements Savable {
         Vector3f translate = modelPos.add(rotate.mult(scale.mult(modelBindInversePos, tmp2), tmp2), tmp2);
 
         // Populating the matrix
-        outTransform.loadIdentity();
         outTransform.setTransform(translate, scale, rotate.toRotationMatrix(tmp4));
     }
 

+ 9 - 1
jme3-core/src/main/java/com/jme3/light/AmbientLight.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -32,6 +32,7 @@
 package com.jme3.light;
 
 import com.jme3.bounding.BoundingBox;
+import com.jme3.math.ColorRGBA;
 import com.jme3.math.Vector3f;
 import com.jme3.renderer.Camera;
 import com.jme3.scene.Spatial;
@@ -49,6 +50,13 @@ import com.jme3.util.TempVars;
  */
 public class AmbientLight extends Light {
 
+    public AmbientLight() {
+    }
+
+    public AmbientLight(ColorRGBA color) {
+        super(color);
+    }
+
     @Override
     public boolean intersectsBox(BoundingBox box, TempVars vars) {
         return true;

+ 27 - 2
jme3-core/src/main/java/com/jme3/light/DirectionalLight.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@ import com.jme3.export.InputCapsule;
 import com.jme3.export.JmeExporter;
 import com.jme3.export.JmeImporter;
 import com.jme3.export.OutputCapsule;
+import com.jme3.math.ColorRGBA;
 import com.jme3.math.Vector3f;
 import com.jme3.renderer.Camera;
 import com.jme3.scene.Spatial;
@@ -53,6 +54,30 @@ public class DirectionalLight extends Light {
 
     protected Vector3f direction = new Vector3f(0f, -1f, 0f);
 
+    /**
+     * Creates a DirectionalLight
+     */
+    public DirectionalLight() {
+    }
+
+    /**
+     * Creates a DirectionalLight with the given direction
+     * @param direction the light's direction
+     */
+    public DirectionalLight(Vector3f direction) {
+        setDirection(direction);
+    }
+
+    /**
+     * Creates a DirectionalLight with the given direction and the given color
+     * @param direction the light's direction
+     * @param color the light's color
+     */
+    public DirectionalLight(Vector3f direction, ColorRGBA color) {
+        super(color);
+        setDirection(direction);
+    }
+
     @Override
     public void computeLastDistance(Spatial owner) {
         lastDistance = 0; // directional lights are always closest to their owner
@@ -77,7 +102,7 @@ public class DirectionalLight extends Light {
      * 
      * @param dir the direction of the light.
      */
-    public void setDirection(Vector3f dir){
+    public final void setDirection(Vector3f dir){
         direction.set(dir);
         if (!direction.isUnitVector()) {
             direction.normalizeLocal();

+ 9 - 2
jme3-core/src/main/java/com/jme3/light/Light.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -101,7 +101,7 @@ public abstract class Light implements Savable, Cloneable {
         }
     }
 
-    protected ColorRGBA color = new ColorRGBA(1f,1f,1f,1f);
+    protected ColorRGBA color = new ColorRGBA(ColorRGBA.White);
     
     /**
      * Used in LightList for caching the distance 
@@ -122,6 +122,13 @@ public abstract class Light implements Savable, Cloneable {
     boolean frustumCheckNeeded = true;
     boolean intersectsFrustum  = false;
 
+    protected Light() {
+    }
+
+    protected Light(ColorRGBA color) {
+        setColor(color);
+    }
+
     /**
      * Returns the color of the light.
      * 

+ 52 - 7
jme3-core/src/main/java/com/jme3/light/PointLight.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -32,14 +32,13 @@
 package com.jme3.light;
 
 import com.jme3.bounding.BoundingBox;
-import com.jme3.bounding.BoundingSphere;
 import com.jme3.bounding.BoundingVolume;
 import com.jme3.export.InputCapsule;
 import com.jme3.export.JmeExporter;
 import com.jme3.export.JmeImporter;
 import com.jme3.export.OutputCapsule;
+import com.jme3.math.ColorRGBA;
 import com.jme3.math.FastMath;
-import com.jme3.math.Plane;
 import com.jme3.math.Vector3f;
 import com.jme3.renderer.Camera;
 import com.jme3.scene.Spatial;
@@ -62,6 +61,52 @@ public class PointLight extends Light {
     protected float radius = 0;
     protected float invRadius = 0;
 
+    /**
+     * Creates a PointLight
+     */
+    public PointLight() {
+    }
+
+    /**
+     * Creates a PointLight at the given position
+     * @param position the position in world space
+     */
+    public PointLight(Vector3f position) {
+        setPosition(position);
+    }
+
+    /**
+     * Creates a PointLight at the given position and with the given color
+     * @param position the position in world space
+     * @param color the light color
+     */
+    public PointLight(Vector3f position, ColorRGBA color) {
+        super(color);
+        setPosition(position);
+    }
+    
+    /**
+     * Creates a PointLight at the given position, with the given color and the 
+     * given radius
+     * @param position the position in world space
+     * @param color the light color
+     * @param radius the light radius
+     */
+    public PointLight(Vector3f position, ColorRGBA color, float radius) {
+        this(position, color);
+        setRadius(radius);
+    }
+    
+    /**
+     * Creates a PointLight at the given position, with the given radius
+     * @param position the position in world space
+     * @param radius the light radius
+     */
+    public PointLight(Vector3f position, float radius) {
+        this(position);
+        setRadius(radius);
+    }
+
     @Override
     public void computeLastDistance(Spatial owner) {
         if (owner.getWorldBound() != null) {
@@ -88,7 +133,7 @@ public class PointLight extends Light {
      * 
      * @param position the world space position of the light.
      */
-    public void setPosition(Vector3f position) {
+    public final void setPosition(Vector3f position) {
         this.position.set(position);
     }
 
@@ -115,13 +160,13 @@ public class PointLight extends Light {
      * 
      * @throws IllegalArgumentException If radius is negative
      */
-    public void setRadius(float radius) {
+    public final void setRadius(float radius) {
         if (radius < 0) {
             throw new IllegalArgumentException("Light radius cannot be negative");
         }
         this.radius = radius;
-        if (radius != 0) {
-            this.invRadius = 1 / radius;
+        if (radius != 0f) {
+            this.invRadius = 1f / radius;
         } else {
             this.invRadius = 0;
         }

+ 97 - 11
jme3-core/src/main/java/com/jme3/light/SpotLight.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012 jMonkeyEngine
+ * Copyright (c) 2009-2012, 2015 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -34,6 +34,7 @@ package com.jme3.light;
 import com.jme3.bounding.BoundingBox;
 import com.jme3.bounding.BoundingVolume;
 import com.jme3.export.*;
+import com.jme3.math.ColorRGBA;
 import com.jme3.math.FastMath;
 import com.jme3.math.Plane;
 import com.jme3.math.Vector3f;
@@ -44,36 +45,121 @@ import java.io.IOException;
 
 /**
  * Represents a spot light.
- * A spot light emmit a cone of light from a position and in a direction.
- * It can be used to fake torch lights or car's lights.
+ * A spot light emits a cone of light from a position and in a direction.
+ * It can be used to fake torch lights or cars' lights.
  * <p>
  * In addition to a position and a direction, spot lights also have a range which 
  * can be used to attenuate the influence of the light depending on the 
- * distance between the light and the effected object.
+ * distance between the light and the affected object.
  * Also the angle of the cone can be tweaked by changing the spot inner angle and the spot outer angle.
- * the spot inner angle determin the cone of light where light has full influence.
- * the spot outer angle determin the cone global cone of light of the spot light.
- * the light intensity slowly decrease between the inner cone and the outer cone.
+ * the spot inner angle determines the cone of light where light has full influence.
+ * the spot outer angle determines the cone global cone of light of the spot light.
+ * the light intensity slowly decreases between the inner cone and the outer cone.
  *  @author Nehon
  */
 public class SpotLight extends Light {
 
     protected Vector3f position = new Vector3f();
-    protected Vector3f direction = new Vector3f(0,-1,0);
+    protected Vector3f direction = new Vector3f(0, -1, 0);
     protected float spotInnerAngle = FastMath.QUARTER_PI / 8;
     protected float spotOuterAngle = FastMath.QUARTER_PI / 6;
     protected float spotRange = 100;
     protected float invSpotRange = 1f / 100;
-    protected float packedAngleCos=0;
+    protected float packedAngleCos = 0;
     
     protected float outerAngleCosSqr, outerAngleSinSqr;
     protected float outerAngleSinRcp, outerAngleSin, outerAngleCos;
     
+    /**
+     * Creates a SpotLight.
+     */
     public SpotLight() {
         super();
         computeAngleParameters();
     }
 
+    /**
+     * Creates a SpotLight at the given position and with the given direction.
+     * @param position the position in world space.
+     * @param direction the direction of the light.
+     */
+    public SpotLight(Vector3f position, Vector3f direction) {
+        this();
+        setPosition(position);
+        setDirection(direction);
+    }
+    
+    /**
+     * Creates a SpotLight at the given position, with the given direction, and the
+     * given range.
+     * @param position the position in world space.
+     * @param direction the direction of the light.
+     * @param range the spot light range
+     */
+    public SpotLight(Vector3f position, Vector3f direction, float range) {
+        this();
+        setPosition(position);
+        setDirection(direction);
+        this.spotRange = range;
+    }
+
+    /**
+     * Creates a SpotLight at the given position, with the given direction and
+     * the given color.
+     * @param position the position in world space.
+     * @param direction the direction of the light.
+     * @param color the light's color.
+     */
+    public SpotLight(Vector3f position, Vector3f direction, ColorRGBA color) {
+        super(color);
+        computeAngleParameters();
+        setPosition(position);
+        setDirection(direction);
+    }
+    
+    
+    /**
+     * Creates a SpotLight at the given position, with the given direction,
+     * the given range and the given color.
+     * @param position the position in world space.
+     * @param direction the direction of the light.
+     * @param range the spot light range
+     * @param color the light's color.
+     */
+    public SpotLight(Vector3f position, Vector3f direction, float range, ColorRGBA color) {
+        super(color);
+        computeAngleParameters();
+        setPosition(position);
+        setDirection(direction);
+        this.spotRange = range;
+    }
+    
+    /**
+     * Creates a SpotLight at the given position, with the given direction,
+     * the given color and the given inner and outer angles 
+     * (controls the falloff of the light)
+     * 
+     * @param position the position in world space.
+     * @param direction the direction of the light.
+     * @param range the spot light range
+     * @param color the light's color.
+     * @param innerAngle the inner angle of the spot light.
+     * @param outerAngle the outer angle of the spot light.
+     * 
+     * @see SpotLight#setSpotInnerAngle(float) 
+     * @see SpotLight#setSpotOuterAngle(float) 
+     */
+    public SpotLight(Vector3f position, Vector3f direction, float range, ColorRGBA color, float innerAngle, float outerAngle) {
+        super(color);
+        this.spotInnerAngle = innerAngle;
+        this.spotOuterAngle = outerAngle;
+        computeAngleParameters();
+        setPosition(position);
+        setDirection(direction);
+        this.spotRange = range;
+    }  
+    
+
     private void computeAngleParameters() {
         float innerCos = FastMath.cos(spotInnerAngle);
         outerAngleCos = FastMath.cos(spotOuterAngle);
@@ -189,7 +275,7 @@ public class SpotLight extends Light {
         return direction;
     }
 
-    public void setDirection(Vector3f direction) {
+    public final void setDirection(Vector3f direction) {
         this.direction.set(direction);
     }
 
@@ -197,7 +283,7 @@ public class SpotLight extends Light {
         return position;
     }
 
-    public void setPosition(Vector3f position) {
+    public final void setPosition(Vector3f position) {
         this.position.set(position);
     }
 

+ 27 - 46
jme3-core/src/main/java/com/jme3/math/Matrix4f.java

@@ -154,53 +154,34 @@ public final class Matrix4f implements Savable, Cloneable, java.io.Serializable
     }
 
     public void fromFrame(Vector3f location, Vector3f direction, Vector3f up, Vector3f left) {
-        loadIdentity();
-
         TempVars vars = TempVars.get();
-
-        Vector3f f = vars.vect1.set(direction);
-        Vector3f s = vars.vect2.set(f).crossLocal(up);
-        Vector3f u = vars.vect3.set(s).crossLocal(f);
-//        s.normalizeLocal();
-//        u.normalizeLocal();
-
-        m00 = s.x;
-        m01 = s.y;
-        m02 = s.z;
-
-        m10 = u.x;
-        m11 = u.y;
-        m12 = u.z;
-
-        m20 = -f.x;
-        m21 = -f.y;
-        m22 = -f.z;
-
-//        m00 = -left.x;
-//        m10 = -left.y;
-//        m20 = -left.z;
-//
-//        m01 = up.x;
-//        m11 = up.y;
-//        m21 = up.z;
-//
-//        m02 = -direction.x;
-//        m12 = -direction.y;
-//        m22 = -direction.z;
-//
-
-        Matrix4f transMatrix = vars.tempMat4;
-        transMatrix.loadIdentity();
-        transMatrix.m03 = -location.x;
-        transMatrix.m13 = -location.y;
-        transMatrix.m23 = -location.z;
-        this.multLocal(transMatrix);
-
-        vars.release();
-
-//        transMatrix.multLocal(this);
-
-//        set(transMatrix);
+        try {
+            Vector3f fwdVector = vars.vect1.set(direction);
+            Vector3f leftVector = vars.vect2.set(fwdVector).crossLocal(up);
+            Vector3f upVector = vars.vect3.set(leftVector).crossLocal(fwdVector);
+
+            m00 = leftVector.x;
+            m01 = leftVector.y;
+            m02 = leftVector.z;
+            m03 = -leftVector.dot(location);
+
+            m10 = upVector.x;
+            m11 = upVector.y;
+            m12 = upVector.z;
+            m13 = -upVector.dot(location);
+
+            m20 = -fwdVector.x;
+            m21 = -fwdVector.y;
+            m22 = -fwdVector.z;
+            m23 = fwdVector.dot(location);
+
+            m30 = 0f;
+            m31 = 0f;
+            m32 = 0f;
+            m33 = 1f;
+        } finally {
+            vars.release();
+        }
     }
 
     /**

+ 33 - 11
jme3-core/src/main/java/com/jme3/math/Transform.java

@@ -49,7 +49,7 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
 
     private Quaternion rot = new Quaternion();
     private Vector3f translation = new Vector3f();
-    private Vector3f scale = new Vector3f(1,1,1);
+    private Vector3f scale = new Vector3f(1, 1, 1);
 
     public Transform(Vector3f translation, Quaternion rot){
         this.translation.set(translation);
@@ -283,9 +283,32 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
      * Loads the identity.  Equal to translation=0,0,0 scale=1,1,1 rot=0,0,0,1.
      */
     public void loadIdentity() {
-        translation.set(0,0,0);
-        scale.set(1,1,1);
-        rot.set(0,0,0,1);
+        translation.set(0, 0, 0);
+        scale.set(1, 1, 1);
+        rot.set(0, 0, 0, 1);
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+        hash = 89 * hash + rot.hashCode();
+        hash = 89 * hash + translation.hashCode();
+        hash = 89 * hash + scale.hashCode();
+        return hash;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final Transform other = (Transform) obj;
+        return this.translation.equals(other.translation)
+                && this.scale.equals(other.scale)
+                && this.rot.equals(other.rot);
     }
 
     @Override
@@ -307,22 +330,21 @@ public final class Transform implements Savable, Cloneable, java.io.Serializable
         return this;
     }
 
+    @Override
     public void write(JmeExporter e) throws IOException {
         OutputCapsule capsule = e.getCapsule(this);
-        capsule.write(rot, "rot", new Quaternion());
+        capsule.write(rot, "rot", Quaternion.IDENTITY);
         capsule.write(translation, "translation", Vector3f.ZERO);
         capsule.write(scale, "scale", Vector3f.UNIT_XYZ);
     }
 
+    @Override
     public void read(JmeImporter e) throws IOException {
         InputCapsule capsule = e.getCapsule(this);
         
-        rot = (Quaternion)capsule.readSavable("rot", new Quaternion());        
-        translation = (Vector3f)capsule.readSavable("translation", null);
-        if( translation == null ) {
-            translation = new Vector3f();
-        }
-        scale = (Vector3f)capsule.readSavable("scale", Vector3f.UNIT_XYZ);
+        rot.set((Quaternion)capsule.readSavable("rot", Quaternion.IDENTITY));
+        translation.set((Vector3f)capsule.readSavable("translation", Vector3f.ZERO));
+        scale.set((Vector3f)capsule.readSavable("scale", Vector3f.UNIT_XYZ));
     }
     
     @Override

+ 2 - 0
jme3-core/src/main/java/com/jme3/system/AppSettings.java

@@ -54,6 +54,8 @@ import java.util.prefs.Preferences;
  */
 public final class AppSettings extends HashMap<String, Object> {
 
+    private static final long serialVersionUID = 1L;
+    
     private static final AppSettings defaults = new AppSettings(false);
 
     /**

+ 10 - 5
jme3-core/src/main/java/com/jme3/util/BufferUtils.java

@@ -36,6 +36,7 @@ import com.jme3.math.Quaternion;
 import com.jme3.math.Vector2f;
 import com.jme3.math.Vector3f;
 import com.jme3.math.Vector4f;
+import java.io.UnsupportedEncodingException;
 import java.lang.ref.PhantomReference;
 import java.lang.ref.Reference;
 import java.lang.ref.ReferenceQueue;
@@ -1010,11 +1011,15 @@ public final class BufferUtils {
     }
 
     public static ByteBuffer createByteBuffer(String data) {
-        byte[] bytes = data.getBytes();
-        ByteBuffer bb = createByteBuffer(bytes.length);
-        bb.put(bytes);
-        bb.flip();
-        return bb;
+        try {
+            byte[] bytes = data.getBytes("UTF-8");
+            ByteBuffer bb = createByteBuffer(bytes.length);
+            bb.put(bytes);
+            bb.flip();
+            return bb;
+        } catch (UnsupportedEncodingException ex) {
+            throw new UnsupportedOperationException(ex);
+        }
     }
 
     /**

+ 1 - 3
jme3-core/src/main/java/com/jme3/util/LittleEndien.java

@@ -42,7 +42,6 @@ import java.io.*;
 public class LittleEndien extends InputStream implements DataInput {
 
     protected BufferedInputStream in;
-    protected BufferedReader inRead;
 
     /**
      * Creates a new LittleEndien reader from the given input stream.  The
@@ -51,7 +50,6 @@ public class LittleEndien extends InputStream implements DataInput {
      */
     public LittleEndien(InputStream in) {
         this.in = new BufferedInputStream(in);
-        inRead = new BufferedReader(new InputStreamReader(in));
     }
 
     public int read() throws IOException {
@@ -141,7 +139,7 @@ public class LittleEndien extends InputStream implements DataInput {
     }
 
     public String readLine() throws IOException {
-        return inRead.readLine();
+        throw new IOException("Unsupported operation");
     }
 
     public String readUTF() throws IOException {

+ 7 - 6
jme3-examples/build.gradle

@@ -21,7 +21,6 @@ dependencies {
 //    compile project(':jme3-bullet-native')
     compile project(':jme3-jbullet')
     compile project(':jme3-jogg')
-//    compile project(':jme3-jogl')
     compile project(':jme3-lwjgl')
     compile project(':jme3-networking')
     compile project(':jme3-niftygui')
@@ -51,7 +50,9 @@ jar.doFirst{
     }
 }
 
-task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar']) << {
+task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar', \
+                       ':jme3-android-native:jar', ':jme3-bullet-native-android:jar', \
+                       ':jme3-bullet-native:jar']) << {
     // Copy all dependencies to ../dist/lib, remove versions from jar files
     configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact ->
         copy {
@@ -97,23 +98,23 @@ task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-and
     copy {
         from project(':jme3-bullet-native').jar.archivePath
         into '../dist/opt/native-bullet'
-        rename {"jme3-bullet-natives.jar"}
+        rename {project(':jme3-bullet-native').name+".jar"}
     }
 
     // Copy android packages, remove version
     copy {
         from project(':jme3-android').jar.archivePath
         into '../dist/opt/android'
-        rename { project(':jme3-android').name + ".jar" }
+        rename {project(':jme3-android').name+".jar"}
     }
     copy {
         from project(':jme3-android-native').jar.archivePath
         into '../dist/opt/android'
-        rename { project(':jme3-android-native').name + ".jar" }
+        rename {project(':jme3-android-native').name+".jar"}
     }
     copy {
         from project(':jme3-bullet-native-android').jar.archivePath
         into '../dist/opt/native-bullet'
-        rename {"jme3-bullet-native-android.jar"}
+        rename {project(':jme3-bullet-native-android').name+".jar"}
     }
 }

+ 12 - 2
jme3-jogl/src/main/java/com/jme3/system/jogl/JoglAbstractDisplay.java

@@ -41,10 +41,12 @@ import com.jme3.renderer.jogl.JoglRenderer;
 import com.jogamp.opengl.util.Animator;
 import com.jogamp.opengl.util.AnimatorBase;
 import com.jogamp.opengl.util.FPSAnimator;
+
 import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
+
 import com.jogamp.opengl.DebugGL2;
 import com.jogamp.opengl.DebugGL3;
 import com.jogamp.opengl.DebugGL3bc;
@@ -52,6 +54,7 @@ import com.jogamp.opengl.DebugGL4;
 import com.jogamp.opengl.DebugGL4bc;
 import com.jogamp.opengl.DebugGLES1;
 import com.jogamp.opengl.DebugGLES2;
+import com.jogamp.opengl.DebugGLES3;
 import com.jogamp.opengl.GL;
 import com.jogamp.opengl.GLAutoDrawable;
 import com.jogamp.opengl.GLCapabilities;
@@ -136,7 +139,9 @@ public abstract class JoglAbstractDisplay extends JoglContext implements GLEvent
                             if (gl.isGLES2()) {
                                 glad.setGL(new DebugGLES2(gl.getGLES2()));
                             } else {
-                                // TODO ES3
+                                if (gl.isGLES3()) {
+                                	glad.setGL(new DebugGLES3(gl.getGLES3()));
+                                }
                             }
                         }
                     } else {
@@ -167,7 +172,12 @@ public abstract class JoglAbstractDisplay extends JoglContext implements GLEvent
         
         renderer = new JoglRenderer();
         
-        renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+        canvas.invoke(false, new GLRunnable() {
+            public boolean run(GLAutoDrawable glad) {
+                renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+                return true;
+            }
+        });
     }
 
     protected void startGLCanvas() {

+ 12 - 2
jme3-jogl/src/main/java/com/jme3/system/jogl/JoglNewtAbstractDisplay.java

@@ -42,8 +42,10 @@ import com.jogamp.newt.opengl.GLWindow;
 import com.jogamp.opengl.util.Animator;
 import com.jogamp.opengl.util.AnimatorBase;
 import com.jogamp.opengl.util.FPSAnimator;
+
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
+
 import com.jogamp.opengl.DebugGL2;
 import com.jogamp.opengl.DebugGL3;
 import com.jogamp.opengl.DebugGL3bc;
@@ -51,6 +53,7 @@ import com.jogamp.opengl.DebugGL4;
 import com.jogamp.opengl.DebugGL4bc;
 import com.jogamp.opengl.DebugGLES1;
 import com.jogamp.opengl.DebugGLES2;
+import com.jogamp.opengl.DebugGLES3;
 import com.jogamp.opengl.GL;
 import com.jogamp.opengl.GLAutoDrawable;
 import com.jogamp.opengl.GLCapabilities;
@@ -115,7 +118,9 @@ public abstract class JoglNewtAbstractDisplay extends JoglContext implements GLE
                             if (gl.isGLES2()) {
                                 glad.setGL(new DebugGLES2(gl.getGLES2()));
                             } else {
-                                // TODO ES3
+                            	if (gl.isGLES3()) {
+                                	glad.setGL(new DebugGLES3(gl.getGLES3()));
+                                }
                             }
                         }
                     } else {
@@ -146,7 +151,12 @@ public abstract class JoglNewtAbstractDisplay extends JoglContext implements GLE
         
         renderer = new JoglRenderer();
         
-        renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+        canvas.invoke(false, new GLRunnable() {
+            public boolean run(GLAutoDrawable glad) {
+                renderer.setMainFrameBufferSrgb(settings.getGammaCorrection());
+                return true;
+            }
+        });
     }
 
     protected void startGLCanvas() {

+ 1 - 0
private/known_hosts

@@ -0,0 +1 @@
+updates.jmonkeyengine.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5bNOiZwU5dF62nBllxkjiSIfn0k6RVfprvO1aUypRmARD3/MKJKg7cGLezlLKaHZtVs84VpEqpmg5IzPAXWEmxUw1oke70uYMli7JV+4oPAeQRFwUdldP98I5h9VHwSjBqMycRLkxYaHF8edIPt1Zsa2dM3qrufy71ndQoFF6g7QxmT7gsTxwcNufDxymIgiAna/Qp2fr0YCLCiB8RQ7JTHfqA3dOWw0wz7AwfBTwwDCHkVxB5B4nz5iZxFr0scvqcae8vMncq8xKS7OMrLbn6asVaF6dDu+5Jc0mqxma5Qg7VC1xQXZsvlRISfrTFhQMhEx+j9w5snzihrlFnZ35

BIN
private/www-updater.key.enc


+ 1 - 2
sdk/JME3TestsTemplate/build.xml

@@ -51,8 +51,7 @@
       -init-macrodef-junit:     defines macro for junit execution
       -init-macrodef-debug:     defines macro for class debugging
       -init-macrodef-java:      defines macro for class execution
-      -do-jar-with-manifest:    JAR building (if you are using a manifest)
-      -do-jar-without-manifest: JAR building (if you are not using a manifest)
+      -do-jar:                  JAR building
       run:                      execution of project 
       -javadoc-build:           Javadoc generation
       test-report:              JUnit report generation

+ 8 - 8
sdk/JME3TestsTemplate/nbproject/genfiles.properties

@@ -1,8 +1,8 @@
-build.xml.data.CRC32=0f706f4a
-build.xml.script.CRC32=0b0b23c4
-build.xml.stylesheet.CRC32=[email protected]
-# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
-# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=0f706f4a
-nbproject/build-impl.xml.script.CRC32=46d1a69a
-nbproject/[email protected]
+build.xml.data.CRC32=0f706f4a
+build.xml.script.CRC32=82b8b23d
+build.xml.stylesheet.CRC32=[email protected]
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=0f706f4a
+nbproject/build-impl.xml.script.CRC32=46d1a69a
+nbproject/[email protected]

+ 12 - 6
sdk/JME3TestsTemplate/nbproject/project.properties

@@ -25,9 +25,17 @@ excludes=
 includes=**
 jar.compress=false
 javac.classpath=\
-    ${libs.jme3.classpath}:\
-    ${libs.jme3-libraries.classpath}:\
-    ${libs.jme3-libraries-blender.classpath}:\
+    ${libs.jme3-jogg.classpath}:\
+    ${libs.jme3-blender.classpath}:\
+    ${libs.jme3-networking.classpath}:\
+    ${libs.jme3-plugins.classpath}:\
+    ${libs.jme3-core.classpath}:\
+    ${libs.jme3-desktop.classpath}:\
+    ${libs.jme3-lwjgl.classpath}:\
+    ${libs.jme3-niftygui.classpath}:\
+    ${libs.jme3-effects.classpath}:\
+    ${libs.jme3-terrain.classpath}:\
+    ${libs.jme3-jbullet.classpath}:\
     ${libs.jme3-test-data.classpath}
 # Space-separated list of extra javac options
 javac.compilerargs=
@@ -36,9 +44,7 @@ javac.source=1.6
 javac.target=1.6
 javac.test.classpath=\
     ${javac.classpath}:\
-    ${build.classes.dir}:\
-    ${libs.junit.classpath}:\
-    ${libs.junit_4.classpath}
+    ${build.classes.dir}
 javadoc.additionalparam=
 javadoc.author=false
 javadoc.encoding=${source.encoding}

+ 2 - 0
sdk/jme3-angelfont/nbproject/project.properties

@@ -1,4 +1,6 @@
 #Thu, 25 Aug 2011 20:26:50 +0200
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint\:-serial
+nbm.homepage=http\://www.jmonkeyengine.org
+nbm.module.author=Normen Hansen
 spec.version.base=3.1.0

+ 1 - 0
sdk/jme3-blender/nbproject/project.properties

@@ -1,6 +1,7 @@
 #Thu, 25 Aug 2011 20:26:50 +0200
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
 nbm.homepage=http\://www.jmonkeyengine.org
 nbm.module.author=Kaelthas
 nbm.needs.restart=true

+ 10 - 2
sdk/jme3-blender/src/com/jme3/gde/blender/BlenderTool.java

@@ -164,6 +164,14 @@ public class BlenderTool {
             return "../blender";
         }
     }
+    
+    private static String getBlenderOsSettingsPath() {
+        if (Utilities.isMac()) {
+            return "../blender/blender.app/Contents/Resources";
+        } else {
+            return "../blender";
+        }
+    }
 
     private static boolean checkBlenderFolders() {
         String jmpDir = Places.getUserDirectory().getAbsolutePath();
@@ -251,9 +259,9 @@ public class BlenderTool {
     }
 
     private static File getBlenderSettingsFolder() {
-        File blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath() + "/2.69", null, false);
+        File blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.75", null, false);
         if (blender == null) {
-            blender = InstalledFileLocator.getDefault().locate(getBlenderOsPath() + "/2.67", null, false);
+            blender = InstalledFileLocator.getDefault().locate(getBlenderOsSettingsPath() + "/2.69", null, false);
         }
         if (blender == null) {
             DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message("Error finding Blender settings"));

+ 3 - 0
sdk/jme3-code-check/nbproject/project.properties

@@ -1,4 +1,7 @@
 #Thu, 25 Aug 2011 20:26:50 +0200
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
+nbm.homepage=http\://www.jmonkeyengine.org
+nbm.module.author=Normen Hansen
 spec.version.base=3.1.0

+ 2 - 2
sdk/jme3-core-baselibs/nbproject/genfiles.properties

@@ -1,8 +1,8 @@
-build.xml.data.CRC32=278ea45d
+build.xml.data.CRC32=d43b0890
 build.xml.script.CRC32=cdae6a36
 [email protected]
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=278ea45d
+nbproject/build-impl.xml.data.CRC32=d43b0890
 nbproject/build-impl.xml.script.CRC32=246f9b81
 nbproject/[email protected]

+ 90 - 81
sdk/jme3-core-baselibs/nbproject/project.xml

@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
+<?xml version='1.0'?>
+<project xmlns='http://www.netbeans.org/ns/project/1'>
   <type>org.netbeans.modules.apisupport.project</type>
   <configuration>
-    <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
+    <data xmlns='http://www.netbeans.org/ns/nb-module-project/3'>
       <code-name-base>com.jme3.gde.core.baselibs</code-name-base>
-      <suite-component/>
+      <suite-component />
       <module-dependencies>
         <dependency>
           <code-name-base>com.jme3.gde.core.libraries</code-name-base>
-          <build-prerequisite/>
-          <compile-dependency/>
+          <build-prerequisite />
+          <compile-dependency />
           <run-dependency>
             <release-version>1</release-version>
             <specification-version>3.1.0</specification-version>
@@ -19,133 +19,142 @@
       <public-packages>
         <package>com.jme3.asset</package>
         <package>com.jme3.scene.plugins.blender</package>
-        <package>com.jme3.scene.plugins.blender.animations</package>
-        <package>com.jme3.scene.plugins.blender.cameras</package>
+        <package>com.jme3.scene.plugins.blender.math</package>
         <package>com.jme3.scene.plugins.blender.constraints</package>
         <package>com.jme3.scene.plugins.blender.constraints.definitions</package>
         <package>com.jme3.scene.plugins.blender.curves</package>
-        <package>com.jme3.scene.plugins.blender.file</package>
-        <package>com.jme3.scene.plugins.blender.landscape</package>
-        <package>com.jme3.scene.plugins.blender.lights</package>
-        <package>com.jme3.scene.plugins.blender.materials</package>
-        <package>com.jme3.scene.plugins.blender.math</package>
         <package>com.jme3.scene.plugins.blender.meshes</package>
-        <package>com.jme3.scene.plugins.blender.modifiers</package>
-        <package>com.jme3.scene.plugins.blender.objects</package>
         <package>com.jme3.scene.plugins.blender.particles</package>
+        <package>com.jme3.scene.plugins.blender.cameras</package>
+        <package>com.jme3.scene.plugins.blender.objects</package>
+        <package>com.jme3.scene.plugins.blender.landscape</package>
+        <package>com.jme3.scene.plugins.blender.modifiers</package>
         <package>com.jme3.scene.plugins.blender.textures</package>
+        <package>com.jme3.scene.plugins.blender.textures.io</package>
         <package>com.jme3.scene.plugins.blender.textures.blending</package>
         <package>com.jme3.scene.plugins.blender.textures.generating</package>
-        <package>com.jme3.scene.plugins.blender.textures.io</package>
-        <package>checkers.quals</package>
-        <package>com.jme3.animation</package>
-        <package>com.jme3.app</package>
-        <package>com.jme3.app.state</package>
-        <package>com.jme3.asset.cache</package>
-        <package>com.jme3.asset.plugins</package>
-        <package>com.jme3.audio</package>
-        <package>com.jme3.audio.openal</package>
-        <package>com.jme3.audio.plugins</package>
-        <package>com.jme3.bounding</package>
-        <package>com.jme3.cinematic</package>
-        <package>com.jme3.cinematic.events</package>
-        <package>com.jme3.collision</package>
-        <package>com.jme3.collision.bih</package>
-        <package>com.jme3.cursors.plugins</package>
-        <package>com.jme3.effect</package>
-        <package>com.jme3.effect.influencers</package>
-        <package>com.jme3.effect.shapes</package>
+        <package>com.jme3.scene.plugins.blender.animations</package>
+        <package>com.jme3.scene.plugins.blender.materials</package>
+        <package>com.jme3.scene.plugins.blender.file</package>
+        <package>com.jme3.scene.plugins.blender.lights</package>
+        <package>jme3tools.shader</package>
+        <package>jme3tools.savegame</package>
+        <package>jme3tools.shadercheck</package>
+        <package>jme3tools.optimize</package>
+        <package>jme3tools.converters</package>
+        <package>com.jme3.shader</package>
+        <package>com.jme3.shader.plugins</package>
         <package>com.jme3.export</package>
         <package>com.jme3.export.binary</package>
-        <package>com.jme3.font</package>
-        <package>com.jme3.font.plugins</package>
+        <package>com.jme3.cinematic</package>
+        <package>com.jme3.cinematic.events</package>
+        <package>com.jme3.math</package>
+        <package>com.jme3.util</package>
+        <package>com.jme3.util.blockparser</package>
+        <package>com.jme3.util.xml</package>
+        <package>com.jme3.post</package>
         <package>com.jme3.input</package>
-        <package>com.jme3.input.controls</package>
         <package>com.jme3.input.dummy</package>
+        <package>com.jme3.input.controls</package>
         <package>com.jme3.input.event</package>
-        <package>com.jme3.light</package>
+        <package>com.jme3.profile</package>
+        <package>com.jme3.ui</package>
+        <package>com.jme3.audio</package>
+        <package>com.jme3.audio.openal</package>
+        <package>com.jme3.audio.plugins</package>
+        <package>com.jme3.cursors.plugins</package>
+        <package>com.jme3.bounding</package>
+        <package>com.jme3.shadow</package>
+        <package>com.jme3.texture</package>
+        <package>com.jme3.texture.image</package>
+        <package>com.jme3.texture.plugins</package>
+        <package>com.jme3.system</package>
         <package>com.jme3.material</package>
         <package>com.jme3.material.plugins</package>
-        <package>com.jme3.math</package>
-        <package>com.jme3.post</package>
-        <package>com.jme3.profile</package>
         <package>com.jme3.renderer</package>
-        <package>com.jme3.renderer.opengl</package>
         <package>com.jme3.renderer.queue</package>
+        <package>com.jme3.renderer.opengl</package>
+        <package>com.jme3.effect</package>
+        <package>com.jme3.effect.shapes</package>
+        <package>com.jme3.effect.influencers</package>
+        <package>com.jme3.app</package>
+        <package>com.jme3.app.state</package>
+        <package>com.jme3.asset.plugins</package>
+        <package>com.jme3.asset.cache</package>
+        <package>com.jme3.light</package>
+        <package>com.jme3.animation</package>
+        <package>com.jme3.collision</package>
+        <package>com.jme3.collision.bih</package>
         <package>com.jme3.scene</package>
-        <package>com.jme3.scene.control</package>
+        <package>com.jme3.scene.shape</package>
+        <package>com.jme3.scene.plugins</package>
         <package>com.jme3.scene.debug</package>
         <package>com.jme3.scene.instancing</package>
+        <package>com.jme3.scene.control</package>
         <package>com.jme3.scene.mesh</package>
-        <package>com.jme3.scene.plugins</package>
-        <package>com.jme3.scene.shape</package>
-        <package>com.jme3.shader</package>
-        <package>com.jme3.shader.plugins</package>
-        <package>com.jme3.shadow</package>
-        <package>com.jme3.system</package>
-        <package>com.jme3.texture</package>
-        <package>com.jme3.texture.image</package>
-        <package>com.jme3.texture.plugins</package>
-        <package>com.jme3.ui</package>
-        <package>com.jme3.util</package>
-        <package>com.jme3.util.blockparser</package>
-        <package>com.jme3.util.xml</package>
-        <package>jme3tools.converters</package>
-        <package>jme3tools.converters.model</package>
-        <package>jme3tools.converters.model.strip</package>
-        <package>jme3tools.optimize</package>
-        <package>jme3tools.savegame</package>
-        <package>jme3tools.shader</package>
-        <package>jme3tools.shadercheck</package>
+        <package>com.jme3.font</package>
+        <package>com.jme3.font.plugins</package>
+        <package>checkers.quals</package>
+        <package>jme3tools.navigation</package>
         <package>com.jme3.input.awt</package>
         <package>com.jme3.system.awt</package>
-        <package>jme3tools.navigation</package>
-        <package>com.jme3.post.filters</package>
         <package>com.jme3.post.ssao</package>
+        <package>com.jme3.post.filters</package>
         <package>com.jme3.water</package>
         <package>com.jme3.bullet</package>
-        <package>com.jme3.bullet.collision</package>
-        <package>com.jme3.bullet.collision.shapes</package>
-        <package>com.jme3.bullet.collision.shapes.infos</package>
-        <package>com.jme3.bullet.control</package>
-        <package>com.jme3.bullet.control.ragdoll</package>
-        <package>com.jme3.bullet.debug</package>
+        <package>com.jme3.bullet.util</package>
         <package>com.jme3.bullet.joints</package>
         <package>com.jme3.bullet.joints.motors</package>
         <package>com.jme3.bullet.objects</package>
         <package>com.jme3.bullet.objects.infos</package>
-        <package>com.jme3.bullet.util</package>
-        <package>com.jme3.audio.lwjgl</package>
+        <package>com.jme3.bullet.debug</package>
+        <package>com.jme3.bullet.control</package>
+        <package>com.jme3.bullet.control.ragdoll</package>
+        <package>com.jme3.bullet.collision</package>
+        <package>com.jme3.bullet.collision.shapes</package>
+        <package>com.jme3.bullet.collision.shapes.infos</package>
         <package>com.jme3.input.lwjgl</package>
-        <package>com.jme3.renderer.lwjgl</package>
+        <package>com.jme3.audio.lwjgl</package>
         <package>com.jme3.system.lwjgl</package>
+        <package>com.jme3.renderer.lwjgl</package>
         <package>com.jme3.network</package>
-        <package>com.jme3.network.base</package>
         <package>com.jme3.network.kernel</package>
-        <package>com.jme3.network.kernel.tcp</package>
         <package>com.jme3.network.kernel.udp</package>
+        <package>com.jme3.network.kernel.tcp</package>
+        <package>com.jme3.network.util</package>
         <package>com.jme3.network.message</package>
         <package>com.jme3.network.rmi</package>
+        <package>com.jme3.network.base</package>
         <package>com.jme3.network.serializing</package>
         <package>com.jme3.network.serializing.serializers</package>
+        <package>com.jme3.network.service</package>
+        <package>com.jme3.network.service.rpc</package>
+        <package>com.jme3.network.service.rpc.msg</package>
+        <package>com.jme3.network.service.serializer</package>
         <package>com.jme3.niftygui</package>
         <package>com.jme3.export.xml</package>
         <package>com.jme3.scene.plugins.fbx</package>
+        <package>com.jme3.scene.plugins.fbx.obj</package>
+        <package>com.jme3.scene.plugins.fbx.anim</package>
+        <package>com.jme3.scene.plugins.fbx.node</package>
+        <package>com.jme3.scene.plugins.fbx.misc</package>
+        <package>com.jme3.scene.plugins.fbx.material</package>
         <package>com.jme3.scene.plugins.fbx.file</package>
+        <package>com.jme3.scene.plugins.fbx.mesh</package>
         <package>com.jme3.scene.plugins.ogre</package>
         <package>com.jme3.scene.plugins.ogre.matext</package>
         <package>com.jme3.terrain</package>
+        <package>com.jme3.terrain.heightmap</package>
         <package>com.jme3.terrain.geomipmap</package>
+        <package>com.jme3.terrain.geomipmap.picking</package>
         <package>com.jme3.terrain.geomipmap.grid</package>
         <package>com.jme3.terrain.geomipmap.lodcalc</package>
         <package>com.jme3.terrain.geomipmap.lodcalc.util</package>
-        <package>com.jme3.terrain.geomipmap.picking</package>
-        <package>com.jme3.terrain.heightmap</package>
         <package>com.jme3.terrain.noise</package>
-        <package>com.jme3.terrain.noise.basis</package>
         <package>com.jme3.terrain.noise.filter</package>
-        <package>com.jme3.terrain.noise.fractal</package>
         <package>com.jme3.terrain.noise.modulator</package>
+        <package>com.jme3.terrain.noise.fractal</package>
+        <package>com.jme3.terrain.noise.basis</package>
       </public-packages>
       <class-path-extension>
         <runtime-relative-path>ext/jme3-blender-3.1.0-snapshot-github.jar</runtime-relative-path>
@@ -193,4 +202,4 @@
       </class-path-extension>
     </data>
   </configuration>
-</project>
+</project>

+ 54 - 0
sdk/jme3-core-libraries/nbproject/project.xml

@@ -6,6 +6,44 @@
       <suite-component />
       <module-dependencies />
       <public-packages>
+        <package>org.ejml</package>
+        <package>org.ejml.interfaces.decomposition</package>
+        <package>org.ejml.interfaces.linsol</package>
+        <package>org.ejml.data</package>
+        <package>org.ejml.alg.dense.linsol</package>
+        <package>org.ejml.ops</package>
+        <package>org.ejml.factory</package>
+        <package>org.ejml.alg.fixed</package>
+        <package>org.ejml.alg.generic</package>
+        <package>org.ejml.alg.block</package>
+        <package>org.ejml.alg.block.decomposition.chol</package>
+        <package>org.ejml.alg.block.decomposition.qr</package>
+        <package>org.ejml.alg.block.decomposition.hessenberg</package>
+        <package>org.ejml.alg.block.decomposition.bidiagonal</package>
+        <package>org.ejml.alg.block.linsol.chol</package>
+        <package>org.ejml.alg.block.linsol.qr</package>
+        <package>org.ejml.alg.dense.decomposition</package>
+        <package>org.ejml.alg.dense.decomposition.chol</package>
+        <package>org.ejml.alg.dense.decomposition.lu</package>
+        <package>org.ejml.alg.dense.decomposition.qr</package>
+        <package>org.ejml.alg.dense.decomposition.hessenberg</package>
+        <package>org.ejml.alg.dense.decomposition.svd</package>
+        <package>org.ejml.alg.dense.decomposition.svd.implicitqr</package>
+        <package>org.ejml.alg.dense.decomposition.eig</package>
+        <package>org.ejml.alg.dense.decomposition.eig.watched</package>
+        <package>org.ejml.alg.dense.decomposition.eig.symm</package>
+        <package>org.ejml.alg.dense.decomposition.bidiagonal</package>
+        <package>org.ejml.alg.dense.mult</package>
+        <package>org.ejml.alg.dense.misc</package>
+        <package>org.ejml.alg.dense.linsol.chol</package>
+        <package>org.ejml.alg.dense.linsol.lu</package>
+        <package>org.ejml.alg.dense.linsol.qr</package>
+        <package>org.ejml.alg.dense.linsol.svd</package>
+        <package>org.ejml.simple</package>
+        <package>org.ejml.alg.dense.decompose</package>
+        <package>org.ejml.alg.dense.decompose.chol</package>
+        <package>org.ejml.alg.dense.decompose.lu</package>
+        <package>org.ejml.alg.dense.decompose.qr</package>
         <package>com.bulletphysics</package>
         <package>com.bulletphysics.collision.broadphase</package>
         <package>com.bulletphysics.collision.dispatch</package>
@@ -161,6 +199,22 @@
         <package>org.jglfont.impl.format.awt</package>
         <package>org.jglfont.impl</package>
       </public-packages>
+      <class-path-extension>
+        <runtime-relative-path>ext/core-0.27.jar</runtime-relative-path>
+        <binary-origin>release/modules/ext/core-0.27.jar</binary-origin>
+      </class-path-extension>
+      <class-path-extension>
+        <runtime-relative-path>ext/dense64-0.27.jar</runtime-relative-path>
+        <binary-origin>release/modules/ext/dense64-0.27.jar</binary-origin>
+      </class-path-extension>
+      <class-path-extension>
+        <runtime-relative-path>ext/simple-0.27.jar</runtime-relative-path>
+        <binary-origin>release/modules/ext/simple-0.27.jar</binary-origin>
+      </class-path-extension>
+      <class-path-extension>
+        <runtime-relative-path>ext/denseC64-0.27.jar</runtime-relative-path>
+        <binary-origin>release/modules/ext/denseC64-0.27.jar</binary-origin>
+      </class-path-extension>
       <class-path-extension>
         <runtime-relative-path>ext/jbullet.jar</runtime-relative-path>
         <binary-origin>release/modules/ext/jbullet.jar</binary-origin>

+ 2 - 2
sdk/jme3-core-updatecenters/nbproject/genfiles.properties

@@ -1,8 +1,8 @@
-build.xml.data.CRC32=08468784
+build.xml.data.CRC32=e145fa2a
 build.xml.script.CRC32=cfa8d5c5
 [email protected]
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=08468784
+nbproject/build-impl.xml.data.CRC32=e145fa2a
 nbproject/build-impl.xml.script.CRC32=270846fb
 nbproject/[email protected]

+ 2 - 0
sdk/jme3-core-updatecenters/nbproject/project.xml

@@ -8,6 +8,8 @@
             <module-dependencies>
                 <dependency>
                     <code-name-base>org.netbeans.modules.autoupdate.services</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
                     <run-dependency>
                         <specification-version>1.47.2</specification-version>
                     </run-dependency>

+ 1 - 0
sdk/jme3-core-updatecenters/src/META-INF/services/org.netbeans.spi.autoupdate.KeyStoreProvider

@@ -0,0 +1 @@
+com.jme3.gde.core.updatecenters.keystore.JmeKeyStoreProvider

+ 1 - 1
sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/Bundle.properties

@@ -1,7 +1,7 @@
 #jMP update centers
 com_jme3_gde_core_update_center_nightly=http://updates.jmonkeyengine.org/nightly/3.1/plugins/updates.xml
 com_jme3_gde_core_update_center_stable=http://updates.jmonkeyengine.org/stable/3.1/plugins/updates.xml
-com_jme3_jmp_contributions_update_center=http://updates.jmonkeyengine.org/contributions/updates.xml
+com_jme3_jmp_contributions_update_center=http://updates.jmonkeyengine.org/contrib/3.1/updates.xml
 
 #jMP update centers
 Services/AutoupdateType/com_jme3_gde_core_update_center_nightly.instance=jMonkeyEngine SDK Nightly (Breaks!)

+ 47 - 0
sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/JmeKeyStoreProvider.java

@@ -0,0 +1,47 @@
+package com.jme3.gde.core.updatecenters.keystore;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import org.netbeans.spi.autoupdate.KeyStoreProvider;
+import org.openide.util.Exceptions;
+
+/**
+ * Loads the jMonkeyEngine SDK Plugins certificates into the AutoUpdate system.
+ *
+ * @author Kirill Vainer
+ */
+public class JmeKeyStoreProvider implements KeyStoreProvider {
+
+    @Override
+    public KeyStore getKeyStore() {
+        InputStream in = null;
+        try {
+            in = JmeKeyStoreProvider.class.getResourceAsStream("trustedcerts.jks");
+            KeyStore store = KeyStore.getInstance("JKS");
+            store.load(in, "trustedcerts".toCharArray());
+            return store;
+        } catch (KeyStoreException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (IOException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (NoSuchAlgorithmException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (CertificateException ex) {
+            Exceptions.printStackTrace(ex);
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException ex) {
+                    Exceptions.printStackTrace(ex);
+                }
+            }
+        }
+        return null;
+    }
+
+}

BIN
sdk/jme3-core-updatecenters/src/com/jme3/gde/core/updatecenters/keystore/trustedcerts.jks


+ 1 - 0
sdk/jme3-obfuscate/nbproject/project.properties

@@ -1,6 +1,7 @@
 #Thu, 25 Aug 2011 20:26:50 +0200
 javac.source=1.6
 javac.compilerargs=-Xlint -Xlint\:-serial
+license.file=../license-jme.txt
 nbm.homepage=http\://proguard.sourceforge.net/
 nbm.module.author=Normen Hansen
 nbm.needs.restart=true

+ 1 - 1
sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/testsdesktop/Bundle.properties

@@ -1,7 +1,7 @@
 # To change this license header, choose License Headers in Project Properties.
 # To change this template file, choose Tools | Templates
 # and open the template in the editor.
-
+LBL_CreateProjectStep=Name and Location
 JmeTestsPanelVisual.projectNameLabel.text=Project &Name:
 JmeTestsPanelVisual.projectLocationLabel.text=Project &Location:
 JmeTestsPanelVisual.browseButton.actionCommand=BROWSE

+ 81 - 66
sdk/nbi/stub/ext/components/products/blender/nbproject/build-impl.xml

@@ -54,6 +54,7 @@ is divided into following sections:
         <property file="nbproject/project.properties"/>
     </target>
     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <property name="platform.java" value="${java.home}/bin/java"/>
         <available file="${manifest.file}" property="manifest.available"/>
         <condition property="splashscreen.available">
             <and>
@@ -71,16 +72,20 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class">
+        <condition property="profile.available">
             <and>
-                <isset property="manifest.available"/>
-                <isset property="main.class.available"/>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
             </and>
         </condition>
         <condition property="do.archive">
-            <not>
-                <istrue value="${jar.archive.disabled}"/>
-            </not>
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
         </condition>
         <condition property="do.mkdist">
             <and>
@@ -91,12 +96,6 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </and>
-        </condition>
         <condition property="do.archive+manifest.available">
             <and>
                 <isset property="manifest.available"/>
@@ -115,24 +114,12 @@ is divided into following sections:
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="do.archive+manifest.available+main.class">
+        <condition property="do.archive+profile.available">
             <and>
-                <istrue value="${manifest.available+main.class}"/>
+                <isset property="profile.available"/>
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="manifest.available-mkdist.available">
-            <or>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
-        <condition property="manifest.available+main.class-mkdist.available">
-            <or>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
         <condition property="have.tests">
             <or>
                 <available file="${test.src.dir}"/>
@@ -186,7 +173,15 @@ is divided into following sections:
         </condition>
         <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
         <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
-            <length length="0" string="${endorsed.classpath}" when="greater"/>
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
         </condition>
         <condition else="false" property="jdkBug6558476">
             <and>
@@ -275,6 +270,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <compilerarg value="-processorpath"/>
                     <compilerarg path="@{processorpath}:${empty.dir}"/>
@@ -314,6 +310,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <customize/>
                 </javac>
@@ -370,6 +367,11 @@ is divided into following sections:
             </and>
         </condition>
     </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
     <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
@@ -393,7 +395,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -407,6 +409,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -438,7 +443,7 @@ is divided into following sections:
                     </fileset>
                 </union>
                 <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
-                <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="blender" testname="TestNG tests" workingDir="${work.dir}">
+                <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="blender" testname="TestNG tests" workingDir="${work.dir}">
                     <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
                     <propertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -534,7 +539,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -548,6 +553,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -826,8 +834,8 @@ is divided into following sections:
                     </chainedmapper>
                 </pathconvert>
                 <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
-                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-                    <fileset dir="${build.classes.dir}"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
                     <manifest>
                         <attribute name="Class-Path" value="${jar.classpath}"/>
                         <customize/>
@@ -839,7 +847,7 @@ is divided into following sections:
     <target name="-init-presetdef-jar">
         <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
             <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
-                <j2seproject1:fileset dir="${build.classes.dir}"/>
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
             </jar>
         </presetdef>
     </target>
@@ -894,6 +902,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="jar"/>
             <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
@@ -927,7 +936,7 @@ is divided into following sections:
     <target if="has.persistence.xml" name="-copy-persistence-xml">
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy todir="${build.classes.dir}/META-INF">
-            <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
         </copy>
     </target>
     <target name="-post-compile">
@@ -962,41 +971,25 @@ is divided into following sections:
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
-        <j2seproject1:jar/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}"/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}">
-            <j2seproject1:manifest>
-                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
-            </j2seproject1:manifest>
-        </j2seproject1:jar>
-        <echo level="info">To run this application from the command line without Ant, try:</echo>
-        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <pathconvert property="run.classpath.with.dist.jar">
-            <path path="${run.classpath}"/>
-            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
-        </pathconvert>
-        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
-    </target>
-    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
+    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <touch file="${tmp.manifest.file}" verbose="false"/>
     </target>
-    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
+    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
         <manifest file="${tmp.manifest.file}" mode="update">
             <attribute name="Main-Class" value="${main.class}"/>
         </manifest>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Profile" value="${javac.profile}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
         <basename file="${application.splash}" property="splashscreen.basename"/>
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
@@ -1004,23 +997,41 @@ is divided into following sections:
             <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
         </manifest>
     </target>
-    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
+    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
         <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
         <echo level="info">To run this application from the command line without Ant, try:</echo>
         <property location="${dist.jar}" name="dist.jar.resolved"/>
         <echo level="info">java -jar "${dist.jar.resolved}"</echo>
     </target>
-    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
+            <isset property="main.class.available"/>
+        </condition>
+        <condition else="debug" property="jar.usage.level" value="info">
+            <isset property="main.class.available"/>
+        </condition>
+        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+    </target>
+    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
         <delete>
             <fileset file="${tmp.manifest.file}"/>
         </delete>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
     <target name="-post-jar">
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
     <!--
                 =================
                 EXECUTION SECTION
@@ -1199,11 +1210,14 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+        <condition else="" property="bug5101868workaround" value="*.java">
+            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+        </condition>
+        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
             <classpath>
                 <path path="${javac.classpath}"/>
             </classpath>
-            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
+            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
@@ -1277,7 +1291,7 @@ is divided into following sections:
         <mkdir dir="${build.test.results.dir}"/>
     </target>
     <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
-        <j2seproject3:test testincludes="**/*Test.java"/>
+        <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
     </target>
     <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
@@ -1381,6 +1395,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="clean"/>
             <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init" name="-do-clean">

+ 2 - 2
sdk/nbi/stub/ext/components/products/blender/nbproject/genfiles.properties

@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=be360661
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
 nbproject/build-impl.xml.data.CRC32=eb8fa073
-nbproject/build-impl.xml.script.CRC32=d884e704
-nbproject/build-impl.xml.stylesheet.CRC32=[email protected]
+nbproject/build-impl.xml.script.CRC32=64c85909
+nbproject/build-impl.xml.stylesheet.CRC32=[email protected]

+ 81 - 66
sdk/nbi/stub/ext/components/products/helloworld/nbproject/build-impl.xml

@@ -54,6 +54,7 @@ is divided into following sections:
         <property file="nbproject/project.properties"/>
     </target>
     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <property name="platform.java" value="${java.home}/bin/java"/>
         <available file="${manifest.file}" property="manifest.available"/>
         <condition property="splashscreen.available">
             <and>
@@ -71,16 +72,20 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class">
+        <condition property="profile.available">
             <and>
-                <isset property="manifest.available"/>
-                <isset property="main.class.available"/>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
             </and>
         </condition>
         <condition property="do.archive">
-            <not>
-                <istrue value="${jar.archive.disabled}"/>
-            </not>
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
         </condition>
         <condition property="do.mkdist">
             <and>
@@ -91,12 +96,6 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </and>
-        </condition>
         <condition property="do.archive+manifest.available">
             <and>
                 <isset property="manifest.available"/>
@@ -115,24 +114,12 @@ is divided into following sections:
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="do.archive+manifest.available+main.class">
+        <condition property="do.archive+profile.available">
             <and>
-                <istrue value="${manifest.available+main.class}"/>
+                <isset property="profile.available"/>
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="manifest.available-mkdist.available">
-            <or>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
-        <condition property="manifest.available+main.class-mkdist.available">
-            <or>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
         <condition property="have.tests">
             <or>
                 <available file="${test.src.dir}"/>
@@ -186,7 +173,15 @@ is divided into following sections:
         </condition>
         <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
         <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
-            <length length="0" string="${endorsed.classpath}" when="greater"/>
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
         </condition>
         <condition else="false" property="jdkBug6558476">
             <and>
@@ -275,6 +270,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <compilerarg value="-processorpath"/>
                     <compilerarg path="@{processorpath}:${empty.dir}"/>
@@ -314,6 +310,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <customize/>
                 </javac>
@@ -370,6 +367,11 @@ is divided into following sections:
             </and>
         </condition>
     </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
     <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
@@ -393,7 +395,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -407,6 +409,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -438,7 +443,7 @@ is divided into following sections:
                     </fileset>
                 </union>
                 <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
-                <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="helloworld" testname="TestNG tests" workingDir="${work.dir}">
+                <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="helloworld" testname="TestNG tests" workingDir="${work.dir}">
                     <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
                     <propertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -534,7 +539,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -548,6 +553,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -826,8 +834,8 @@ is divided into following sections:
                     </chainedmapper>
                 </pathconvert>
                 <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
-                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-                    <fileset dir="${build.classes.dir}"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
                     <manifest>
                         <attribute name="Class-Path" value="${jar.classpath}"/>
                         <customize/>
@@ -839,7 +847,7 @@ is divided into following sections:
     <target name="-init-presetdef-jar">
         <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
             <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
-                <j2seproject1:fileset dir="${build.classes.dir}"/>
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
             </jar>
         </presetdef>
     </target>
@@ -894,6 +902,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="jar"/>
             <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
@@ -927,7 +936,7 @@ is divided into following sections:
     <target if="has.persistence.xml" name="-copy-persistence-xml">
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy todir="${build.classes.dir}/META-INF">
-            <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
         </copy>
     </target>
     <target name="-post-compile">
@@ -962,41 +971,25 @@ is divided into following sections:
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
-        <j2seproject1:jar/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}"/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}">
-            <j2seproject1:manifest>
-                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
-            </j2seproject1:manifest>
-        </j2seproject1:jar>
-        <echo level="info">To run this application from the command line without Ant, try:</echo>
-        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <pathconvert property="run.classpath.with.dist.jar">
-            <path path="${run.classpath}"/>
-            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
-        </pathconvert>
-        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
-    </target>
-    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
+    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <touch file="${tmp.manifest.file}" verbose="false"/>
     </target>
-    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
+    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
         <manifest file="${tmp.manifest.file}" mode="update">
             <attribute name="Main-Class" value="${main.class}"/>
         </manifest>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Profile" value="${javac.profile}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
         <basename file="${application.splash}" property="splashscreen.basename"/>
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
@@ -1004,23 +997,41 @@ is divided into following sections:
             <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
         </manifest>
     </target>
-    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
+    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
         <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
         <echo level="info">To run this application from the command line without Ant, try:</echo>
         <property location="${dist.jar}" name="dist.jar.resolved"/>
         <echo level="info">java -jar "${dist.jar.resolved}"</echo>
     </target>
-    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
+            <isset property="main.class.available"/>
+        </condition>
+        <condition else="debug" property="jar.usage.level" value="info">
+            <isset property="main.class.available"/>
+        </condition>
+        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+    </target>
+    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
         <delete>
             <fileset file="${tmp.manifest.file}"/>
         </delete>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
     <target name="-post-jar">
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
     <!--
                 =================
                 EXECUTION SECTION
@@ -1199,11 +1210,14 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+        <condition else="" property="bug5101868workaround" value="*.java">
+            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+        </condition>
+        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
             <classpath>
                 <path path="${javac.classpath}"/>
             </classpath>
-            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
+            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
@@ -1277,7 +1291,7 @@ is divided into following sections:
         <mkdir dir="${build.test.results.dir}"/>
     </target>
     <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
-        <j2seproject3:test testincludes="**/*Test.java"/>
+        <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
     </target>
     <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
@@ -1381,6 +1395,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="clean"/>
             <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init" name="-do-clean">

+ 2 - 2
sdk/nbi/stub/ext/components/products/helloworld/nbproject/genfiles.properties

@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=be360661
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
 nbproject/build-impl.xml.data.CRC32=b5c7f54a
-nbproject/build-impl.xml.script.CRC32=5e5a5ed4
-nbproject/build-impl.xml.stylesheet.CRC32=[email protected]
+nbproject/build-impl.xml.script.CRC32=eca949af
+nbproject/build-impl.xml.stylesheet.CRC32=[email protected]

+ 2 - 1
sdk/nbi/stub/ext/components/products/helloworld/src/org/mycompany/ConfigurationLogic.java

@@ -213,7 +213,8 @@ public class ConfigurationLogic extends ProductConfigurationLogic {
     }
     private static void setExecutableContents(File parent, String path) {
         File binDir = new File(parent, path);
-        for (File file : binDir.listFiles()) {
+        File[] fileList = binDir.listFiles();
+        for (File file : fileList) {
             try {
                 file.setExecutable(true, false);
             } catch (Exception ex) {

+ 81 - 66
sdk/nbi/stub/ext/components/products/jdk/nbproject/build-impl.xml

@@ -54,6 +54,7 @@ is divided into following sections:
         <property file="nbproject/project.properties"/>
     </target>
     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <property name="platform.java" value="${java.home}/bin/java"/>
         <available file="${manifest.file}" property="manifest.available"/>
         <condition property="splashscreen.available">
             <and>
@@ -71,16 +72,20 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class">
+        <condition property="profile.available">
             <and>
-                <isset property="manifest.available"/>
-                <isset property="main.class.available"/>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
             </and>
         </condition>
         <condition property="do.archive">
-            <not>
-                <istrue value="${jar.archive.disabled}"/>
-            </not>
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
         </condition>
         <condition property="do.mkdist">
             <and>
@@ -91,12 +96,6 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </and>
-        </condition>
         <condition property="do.archive+manifest.available">
             <and>
                 <isset property="manifest.available"/>
@@ -115,24 +114,12 @@ is divided into following sections:
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="do.archive+manifest.available+main.class">
+        <condition property="do.archive+profile.available">
             <and>
-                <istrue value="${manifest.available+main.class}"/>
+                <isset property="profile.available"/>
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="manifest.available-mkdist.available">
-            <or>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
-        <condition property="manifest.available+main.class-mkdist.available">
-            <or>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
         <condition property="have.tests">
             <or>
                 <available file="${test.src.dir}"/>
@@ -186,7 +173,15 @@ is divided into following sections:
         </condition>
         <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
         <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
-            <length length="0" string="${endorsed.classpath}" when="greater"/>
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
         </condition>
         <condition else="false" property="jdkBug6558476">
             <and>
@@ -275,6 +270,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <compilerarg value="-processorpath"/>
                     <compilerarg path="@{processorpath}:${empty.dir}"/>
@@ -314,6 +310,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <customize/>
                 </javac>
@@ -370,6 +367,11 @@ is divided into following sections:
             </and>
         </condition>
     </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
     <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
@@ -393,7 +395,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -407,6 +409,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -438,7 +443,7 @@ is divided into following sections:
                     </fileset>
                 </union>
                 <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
-                <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="JDK" testname="TestNG tests" workingDir="${work.dir}">
+                <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="JDK" testname="TestNG tests" workingDir="${work.dir}">
                     <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
                     <propertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -534,7 +539,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -548,6 +553,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -826,8 +834,8 @@ is divided into following sections:
                     </chainedmapper>
                 </pathconvert>
                 <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
-                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-                    <fileset dir="${build.classes.dir}"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
                     <manifest>
                         <attribute name="Class-Path" value="${jar.classpath}"/>
                         <customize/>
@@ -839,7 +847,7 @@ is divided into following sections:
     <target name="-init-presetdef-jar">
         <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
             <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
-                <j2seproject1:fileset dir="${build.classes.dir}"/>
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
             </jar>
         </presetdef>
     </target>
@@ -894,6 +902,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="jar"/>
             <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
@@ -927,7 +936,7 @@ is divided into following sections:
     <target if="has.persistence.xml" name="-copy-persistence-xml">
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy todir="${build.classes.dir}/META-INF">
-            <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
         </copy>
     </target>
     <target name="-post-compile">
@@ -962,41 +971,25 @@ is divided into following sections:
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
-        <j2seproject1:jar/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}"/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}">
-            <j2seproject1:manifest>
-                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
-            </j2seproject1:manifest>
-        </j2seproject1:jar>
-        <echo level="info">To run this application from the command line without Ant, try:</echo>
-        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <pathconvert property="run.classpath.with.dist.jar">
-            <path path="${run.classpath}"/>
-            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
-        </pathconvert>
-        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
-    </target>
-    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
+    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <touch file="${tmp.manifest.file}" verbose="false"/>
     </target>
-    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
+    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
         <manifest file="${tmp.manifest.file}" mode="update">
             <attribute name="Main-Class" value="${main.class}"/>
         </manifest>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Profile" value="${javac.profile}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
         <basename file="${application.splash}" property="splashscreen.basename"/>
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
@@ -1004,23 +997,41 @@ is divided into following sections:
             <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
         </manifest>
     </target>
-    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
+    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
         <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
         <echo level="info">To run this application from the command line without Ant, try:</echo>
         <property location="${dist.jar}" name="dist.jar.resolved"/>
         <echo level="info">java -jar "${dist.jar.resolved}"</echo>
     </target>
-    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
+            <isset property="main.class.available"/>
+        </condition>
+        <condition else="debug" property="jar.usage.level" value="info">
+            <isset property="main.class.available"/>
+        </condition>
+        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+    </target>
+    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
         <delete>
             <fileset file="${tmp.manifest.file}"/>
         </delete>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
     <target name="-post-jar">
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
     <!--
                 =================
                 EXECUTION SECTION
@@ -1199,11 +1210,14 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+        <condition else="" property="bug5101868workaround" value="*.java">
+            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+        </condition>
+        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
             <classpath>
                 <path path="${javac.classpath}"/>
             </classpath>
-            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
+            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
@@ -1277,7 +1291,7 @@ is divided into following sections:
         <mkdir dir="${build.test.results.dir}"/>
     </target>
     <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
-        <j2seproject3:test testincludes="**/*Test.java"/>
+        <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
     </target>
     <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
@@ -1381,6 +1395,7 @@ is divided into following sections:
             <param location="${project.Core_NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="clean"/>
             <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init" name="-do-clean">

+ 2 - 2
sdk/nbi/stub/ext/components/products/jdk/nbproject/genfiles.properties

@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=be360661
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
 nbproject/build-impl.xml.data.CRC32=9bcaebf3
-nbproject/build-impl.xml.script.CRC32=9989608c
-nbproject/build-impl.xml.stylesheet.CRC32=[email protected]
+nbproject/build-impl.xml.script.CRC32=fafefbc7
+nbproject/build-impl.xml.stylesheet.CRC32=[email protected]

+ 81 - 66
sdk/nbi/stub/ext/engine/nbproject/build-impl.xml

@@ -54,6 +54,7 @@ is divided into following sections:
         <property file="nbproject/project.properties"/>
     </target>
     <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <property name="platform.java" value="${java.home}/bin/java"/>
         <available file="${manifest.file}" property="manifest.available"/>
         <condition property="splashscreen.available">
             <and>
@@ -71,16 +72,20 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class">
+        <condition property="profile.available">
             <and>
-                <isset property="manifest.available"/>
-                <isset property="main.class.available"/>
+                <isset property="javac.profile"/>
+                <length length="0" string="${javac.profile}" when="greater"/>
+                <matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
             </and>
         </condition>
         <condition property="do.archive">
-            <not>
-                <istrue value="${jar.archive.disabled}"/>
-            </not>
+            <or>
+                <not>
+                    <istrue value="${jar.archive.disabled}"/>
+                </not>
+                <istrue value="${not.archive.disabled}"/>
+            </or>
         </condition>
         <condition property="do.mkdist">
             <and>
@@ -91,12 +96,6 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <condition property="manifest.available+main.class+mkdist.available">
-            <and>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </and>
-        </condition>
         <condition property="do.archive+manifest.available">
             <and>
                 <isset property="manifest.available"/>
@@ -115,24 +114,12 @@ is divided into following sections:
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="do.archive+manifest.available+main.class">
+        <condition property="do.archive+profile.available">
             <and>
-                <istrue value="${manifest.available+main.class}"/>
+                <isset property="profile.available"/>
                 <istrue value="${do.archive}"/>
             </and>
         </condition>
-        <condition property="manifest.available-mkdist.available">
-            <or>
-                <istrue value="${manifest.available}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
-        <condition property="manifest.available+main.class-mkdist.available">
-            <or>
-                <istrue value="${manifest.available+main.class}"/>
-                <isset property="do.mkdist"/>
-            </or>
-        </condition>
         <condition property="have.tests">
             <or>
                 <available file="${test.src.dir}"/>
@@ -186,7 +173,15 @@ is divided into following sections:
         </condition>
         <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
         <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
-            <length length="0" string="${endorsed.classpath}" when="greater"/>
+            <and>
+                <isset property="endorsed.classpath"/>
+                <not>
+                    <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+            <isset property="profile.available"/>
         </condition>
         <condition else="false" property="jdkBug6558476">
             <and>
@@ -275,6 +270,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <compilerarg value="-processorpath"/>
                     <compilerarg path="@{processorpath}:${empty.dir}"/>
@@ -314,6 +310,7 @@ is divided into following sections:
                         <path path="@{classpath}"/>
                     </classpath>
                     <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.profile.cmd.line.arg}"/>
                     <compilerarg line="${javac.compilerargs}"/>
                     <customize/>
                 </javac>
@@ -370,6 +367,11 @@ is divided into following sections:
             </and>
         </condition>
     </target>
+    <target name="-init-test-properties">
+        <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+        <property name="test.binarytestincludes" value=""/>
+        <property name="test.binaryexcludes" value=""/>
+    </target>
     <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
@@ -393,7 +395,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
         <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -407,6 +409,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -438,7 +443,7 @@ is divided into following sections:
                     </fileset>
                 </union>
                 <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
-                <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="HelloWorld_Engine" testname="TestNG tests" workingDir="${work.dir}">
+                <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="HelloWorld_Engine" testname="TestNG tests" workingDir="${work.dir}">
                     <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
                     <propertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -534,7 +539,7 @@ is divided into following sections:
             </sequential>
         </macrodef>
     </target>
-    <target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+    <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
         <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
             <attribute default="${includes}" name="includes"/>
             <attribute default="${excludes}" name="excludes"/>
@@ -548,6 +553,9 @@ is divided into following sections:
                         <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
                             <filename name="@{testincludes}"/>
                         </fileset>
+                        <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+                            <filename name="${test.binarytestincludes}"/>
+                        </fileset>
                     </batchtest>
                     <syspropertyset>
                         <propertyref prefix="test-sys-prop."/>
@@ -826,8 +834,8 @@ is divided into following sections:
                     </chainedmapper>
                 </pathconvert>
                 <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
-                <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
-                    <fileset dir="${build.classes.dir}"/>
+                <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+                    <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
                     <manifest>
                         <attribute name="Class-Path" value="${jar.classpath}"/>
                         <customize/>
@@ -839,7 +847,7 @@ is divided into following sections:
     <target name="-init-presetdef-jar">
         <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
             <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
-                <j2seproject1:fileset dir="${build.classes.dir}"/>
+                <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
             </jar>
         </presetdef>
     </target>
@@ -894,6 +902,7 @@ is divided into following sections:
             <param location="${project.NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="jar"/>
             <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
@@ -927,7 +936,7 @@ is divided into following sections:
     <target if="has.persistence.xml" name="-copy-persistence-xml">
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy todir="${build.classes.dir}/META-INF">
-            <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
+            <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
         </copy>
     </target>
     <target name="-post-compile">
@@ -962,41 +971,25 @@ is divided into following sections:
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
-        <j2seproject1:jar/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}"/>
-    </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
-        <j2seproject1:jar manifest="${manifest.file}">
-            <j2seproject1:manifest>
-                <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
-            </j2seproject1:manifest>
-        </j2seproject1:jar>
-        <echo level="info">To run this application from the command line without Ant, try:</echo>
-        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
-        <property location="${dist.jar}" name="dist.jar.resolved"/>
-        <pathconvert property="run.classpath.with.dist.jar">
-            <path path="${run.classpath}"/>
-            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
-        </pathconvert>
-        <echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
-    </target>
-    <target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
+    <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <touch file="${tmp.manifest.file}" verbose="false"/>
     </target>
-    <target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
+    <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
         <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
         <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
         <manifest file="${tmp.manifest.file}" mode="update">
             <attribute name="Main-Class" value="${main.class}"/>
         </manifest>
     </target>
-    <target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+        <manifest file="${tmp.manifest.file}" mode="update">
+            <attribute name="Profile" value="${javac.profile}"/>
+        </manifest>
+    </target>
+    <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
         <basename file="${application.splash}" property="splashscreen.basename"/>
         <mkdir dir="${build.classes.dir}/META-INF"/>
         <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
@@ -1004,23 +997,41 @@ is divided into following sections:
             <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
         </manifest>
     </target>
-    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
+    <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
         <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
         <echo level="info">To run this application from the command line without Ant, try:</echo>
         <property location="${dist.jar}" name="dist.jar.resolved"/>
         <echo level="info">java -jar "${dist.jar.resolved}"</echo>
     </target>
-    <target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+        <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+        <property location="${dist.jar}" name="dist.jar.resolved"/>
+        <pathconvert property="run.classpath.with.dist.jar">
+            <path path="${run.classpath}"/>
+            <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+        </pathconvert>
+        <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
+            <isset property="main.class.available"/>
+        </condition>
+        <condition else="debug" property="jar.usage.level" value="info">
+            <isset property="main.class.available"/>
+        </condition>
+        <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+    </target>
+    <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
         <delete>
             <fileset file="${tmp.manifest.file}"/>
         </delete>
     </target>
-    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+    <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
     <target name="-post-jar">
         <!-- Empty placeholder for easier customization. -->
         <!-- You can override this target in the ../build.xml file. -->
     </target>
-    <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+    <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
     <!--
                 =================
                 EXECUTION SECTION
@@ -1199,11 +1210,14 @@ is divided into following sections:
                 </not>
             </and>
         </condition>
-        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+        <condition else="" property="bug5101868workaround" value="*.java">
+            <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+        </condition>
+        <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
             <classpath>
                 <path path="${javac.classpath}"/>
             </classpath>
-            <fileset dir="${src.dir}" excludes="*.java,${excludes}" includes="${includes}">
+            <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
                 <filename name="**/*.java"/>
             </fileset>
             <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
@@ -1277,7 +1291,7 @@ is divided into following sections:
         <mkdir dir="${build.test.results.dir}"/>
     </target>
     <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
-        <j2seproject3:test testincludes="**/*Test.java"/>
+        <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
     </target>
     <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
         <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
@@ -1381,6 +1395,7 @@ is divided into following sections:
             <param location="${project.NBI_Engine}/build.xml" name="call.script"/>
             <param name="call.target" value="clean"/>
             <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
+            <param name="transfer.not.archive.disabled" value="true"/>
         </antcall>
     </target>
     <target depends="init" name="-do-clean">

+ 2 - 2
sdk/nbi/stub/ext/engine/nbproject/genfiles.properties

@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=a12b3d02
 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
 # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
 nbproject/build-impl.xml.data.CRC32=a04276f0
-nbproject/build-impl.xml.script.CRC32=0d96e5f4
-nbproject/build-impl.xml.stylesheet.CRC32=[email protected]
+nbproject/build-impl.xml.script.CRC32=1db81ade
+nbproject/build-impl.xml.stylesheet.CRC32=[email protected]

+ 4 - 4
sdk/nbi/stub/ext/infra/build/products/blender-linux-x64/build.properties

@@ -103,9 +103,9 @@ product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
 # * indices should start with 1
 product.data.length=1
 product.data.1.zip=false
-product.data.1.uri=http://download.blender.org/release/Blender2.69/blender-2.69-linux-glibc211-x86_64.tar.bz2
-product.data.tar=blender-2.69-linux-glibc211-x86_64.tar.bz2
-product.data.sub.dir=blender-2.69-linux-glibc211-x86_64
+product.data.1.uri=http://download.blender.org/release/Blender2.75/blender-2.75a-linux-glibc211-x86_64.tar.bz2
+product.data.tar=blender-2.75a-linux-glibc211-x86_64.tar.bz2
+product.data.sub.dir=blender-2.75a-linux-glibc211-x86_64
 
 # modificator for the required disk space parameter; the core value will be the
 # sum of unzipped unstallation data files
@@ -158,4 +158,4 @@ product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.a
 # * ${sources.params.length} - total number of the parameters
 # * indices should start with 1
 # * parameters are not i18n compliant
-sources.params.length=0
+sources.params.length=0

+ 4 - 4
sdk/nbi/stub/ext/infra/build/products/blender-linux-x86/build.properties

@@ -103,9 +103,9 @@ product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
 # * indices should start with 1
 product.data.length=1
 product.data.1.zip=false
-product.data.1.uri=http://download.blender.org/release/Blender2.69/blender-2.69-linux-glibc211-i686.tar.bz2
-product.data.tar=blender-2.69-linux-glibc211-i686.tar.bz2
-product.data.sub.dir=blender-2.69-linux-glibc211-i686
+product.data.1.uri=http://download.blender.org/release/Blender2.75/blender-2.75a-linux-glibc211-i686.tar.bz2
+product.data.tar=blender-2.75a-linux-glibc211-i686.tar.bz2
+product.data.sub.dir=blender-2.75a-linux-glibc211-i686
 
 # modificator for the required disk space parameter; the core value will be the
 # sum of unzipped unstallation data files
@@ -158,4 +158,4 @@ product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.a
 # * ${sources.params.length} - total number of the parameters
 # * indices should start with 1
 # * parameters are not i18n compliant
-sources.params.length=0
+sources.params.length=0

+ 2 - 2
sdk/nbi/stub/ext/infra/build/products/blender-macosx/build.properties

@@ -104,7 +104,7 @@ product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
 product.data.length=1
 product.data.1.zip=true
 #normen
-product.data.1.uri=http://download.blender.org/release/Blender2.69/blender-2.69-OSX_10.6-x86_64.zip
+product.data.1.uri=http://download.blender.org/release/Blender2.75/blender-2.75a-OSX_10.6-x86_64.zip
 product.data.root=Blender
 product.data.sub.dir=Blender
 
@@ -159,4 +159,4 @@ product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.a
 # * ${sources.params.length} - total number of the parameters
 # * indices should start with 1
 # * parameters are not i18n compliant
-sources.params.length=0
+sources.params.length=0

+ 3 - 3
sdk/nbi/stub/ext/infra/build/products/blender-windows-x64/build.properties

@@ -103,8 +103,8 @@ product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
 # * indices should start with 1
 product.data.length=1
 product.data.1.zip=true
-product.data.1.uri=http://download.blender.org/release/Blender2.69/blender-2.69-windows64.zip
-product.data.sub.dir=blender-2.69-windows64
+product.data.1.uri=http://download.blender.org/release/Blender2.75/blender-2.75a-windows64.zip
+product.data.sub.dir=blender-2.75a-windows64
 
 # modificator for the required disk space parameter; the core value will be the
 # sum of unzipped unstallation data files
@@ -157,4 +157,4 @@ product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.a
 # * ${sources.params.length} - total number of the parameters
 # * indices should start with 1
 # * parameters are not i18n compliant
-sources.params.length=0
+sources.params.length=0

+ 4 - 4
sdk/nbi/stub/ext/infra/build/products/blender-windows-x86/build.properties

@@ -103,9 +103,9 @@ product.logic.1.path=${nbproject.dist.dir}/${nbproject.dist.file.name}
 # * indices should start with 1
 product.data.length=1
 product.data.1.zip=true
-#normenhttp://ftp.nluug.nl/pub/graphics/blender/release//Blender2.65/blender-2.65a-windows32.zip
-product.data.1.uri=http://download.blender.org/release/Blender2.69/blender-2.69-windows32.zip
-product.data.sub.dir=blender-2.69-windows32
+#normen
+product.data.1.uri=http://download.blender.org/release/Blender2.75/blender-2.75a-windows32.zip
+product.data.sub.dir=blender-2.75a-windows32
 
 # modificator for the required disk space parameter; the core value will be the
 # sum of unzipped unstallation data files
@@ -158,4 +158,4 @@ product.properties.3.value=$N{install}/{product-install-directory-name-macosx}.a
 # * ${sources.params.length} - total number of the parameters
 # * indices should start with 1
 # * parameters are not i18n compliant
-sources.params.length=0
+sources.params.length=0

+ 1 - 1
sdk/nbproject/project.properties

@@ -12,7 +12,7 @@ app.version=3.1-snapshot-github
 plugins.version=3.1.0
 nbm.revision=0
 #command line args
-run.args.extra=-J-Xmx512m -J-XX\:PermSize\=128m -J-XX\:MaxDirectMemorySize\=2048m -J-Dsun.zip.disableMemoryMapping\=true -J-Dapple.awt.graphics.UseQuartz\=true -J-Dsun.java2d.noddraw\=true
+run.args.extra=-J-Dsun.java2d.dpiaware\=true -J-Dapple.laf.useScreenMenuBar\=true -J-Dawt.useSystemAAFontSettings\=lcd -J-Dswing.aatext\=true -J-Xmx512m -J-XX\:MaxDirectMemorySize\=2048m -J-Dsun.zip.disableMemoryMapping\=true -J-Dapple.awt.graphics.UseQuartz\=true -J-Dsun.java2d.noddraw\=true
 auxiliary.org-netbeans-modules-apisupport-installer.license-file=license-jme.txt
 auxiliary.org-netbeans-modules-apisupport-installer.os-linux=true
 auxiliary.org-netbeans-modules-apisupport-installer.os-macosx=true

+ 6 - 0
upload.gradle

@@ -0,0 +1,6 @@
+task copySshKnownHosts(type: Copy) {
+    from 'private/known_hosts'
+    into System.properties['user.home'] + '/.ssh'
+}
+
+uploadArchives.dependsOn copySshKnownHosts

+ 16 - 5
version.gradle

@@ -3,25 +3,25 @@
  =====================
  
  Nightly Build Snapshot
- * Full Version: 3.1.0-5124
+ * Full Version: 3.1-5124
  * POM Version: 3.1.0-SNAPSHOT
  * NBM Revision: 5124
  * NBM UC Suffix: nightly/3.1/plugins
 
  Nightly Build Snapshot (PBRIsComing branch)
- * Full Version: 3.1.0-PBRIsComing-5124
+ * Full Version: 3.1-PBRIsComing-5124
  * POM Version: 3.1.0-PBRIsComing-SNAPSHOT
  * NBM Revision: 5124
  * NBM UC Suffix: PBRIsComing-nightly/3.1/plugins
 
  Alpha1 Release
- * Full Version: 3.1.0-alpha1
+ * Full Version: 3.1-alpha1
  * POM Version: 3.1.0-alpha1
  * NBM Revision: 1
  * NBM UC Suffix: stable/3.1/plugins
  
  Final Release
- * Full Version: 3.1.0
+ * Full Version: 3.1
  * POM Version: 3.1.0
  * NBM Revision: 5
  * NBM UC Suffix: stable/3.1/plugins
@@ -62,7 +62,18 @@ task configureVersionInfo {
         jmeGitTag = grgit.describe()
         if (jmeGitTag == null) jmeGitTag = ""
         
-        jmeFullVersion = "${jmeVersion}"
+        if (System.env.TRAVIS_BRANCH != null) {
+            jmeBranchName = System.env.TRAVIS_BRANCH
+        }
+        if (System.env.TRAVIS_TAG != null) {
+            jmeGitTag = System.env.TRAVIS_TAG
+        }
+        if (System.env.TRAVIS_PULL_REQUEST != null && 
+            System.env.TRAVIS_PULL_REQUEST != "false") {
+            jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST
+        }
+        
+        jmeFullVersion = jmeMainVersion
         jmePomVersion  = jmeVersion
         
         if (jmeBranchName != "master") {