You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/07/07 22:53:49 UTC

[1/3] incubator-freemarker git commit: Build: Fixed Maven SNAPSHOT deployment (all artifacts use the same build number now). Added "maven-install" task for local installation.

Repository: incubator-freemarker
Updated Branches:
  refs/heads/2.3-gae 96d3971cc -> 9b8798854


Build: Fixed Maven SNAPSHOT deployment (all artifacts use the same build number now). Added "maven-install" task for local installation.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/9b3d130a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/9b3d130a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/9b3d130a

Branch: refs/heads/2.3-gae
Commit: 9b3d130acd1f87c11f139b60e45b9b3e809eb5b1
Parents: 96d3971
Author: ddekany <dd...@apache.org>
Authored: Sat Jul 8 00:50:24 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Sat Jul 8 00:50:24 2017 +0200

----------------------------------------------------------------------
 build.xml | 39 ++++++++++++++-------------------------
 1 file changed, 14 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b3d130a/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 5b030bf..32e4168 100644
--- a/build.xml
+++ b/build.xml
@@ -892,7 +892,16 @@
 </project>
 ]]></echo>
   </target>
-  
+
+  <target name="maven-install" depends="jar, maven-pom"
+      description="Installs the jar into the local maven repo (without signing)">
+		<exec executable="${mvnCommand}" failonerror="true">
+			<arg value="install:install-file" />
+			<arg value="-Dfile=build/freemarker.jar" />
+			<arg value="-DpomFile=build/pom.xml" />
+		</exec>
+  </target>
+
   <!--
     Uploads the freemarker.jar that is in the current DISTRIBUTION DIRECTORY
     to a Maven repository (snapshot or central).
@@ -949,7 +958,7 @@ Proceed? </input>
     
 		<!-- Sign and deploy the main artifact -->
 		<exec executable="${mvnCommand}" failonerror="true">
-			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
+			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.6:sign-and-deploy-file" />
       <!--
         As we use the gpg plugin instead of a normal Maven "deploy", sadly we can't just
         inherit the repo URL and repositoryId from the parent POM.
@@ -958,35 +967,15 @@ Proceed? </input>
 			<arg value="-DrepositoryId=${maven-server-id}" />
 			<arg value="-DpomFile=build/pom.xml" />
 			<arg value="-Dfile=${dist.bin.dir}/freemarker.jar" />
-      <arg value="-Pgpg" />
-		</exec>
-
-		<!-- Sign and deploy the sources artifact -->
-		<exec executable="${mvnCommand}" failonerror="true">
-			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
-			<arg value="-Durl=${maven-repository-url}" />
-			<arg value="-DrepositoryId=${maven-server-id}" />
-			<arg value="-DpomFile=build/pom.xml" />
-			<arg value="-Dfile=build/maven-source-attachment.jar" />
-			<arg value="-Dclassifier=sources" />
-      <arg value="-Pgpg" />
-		</exec>
-
-		<!-- Sign and deploy the javadoc artifact -->
-		<exec executable="${mvnCommand}" failonerror="true">
-			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
-			<arg value="-Durl=${maven-repository-url}" />
-			<arg value="-DrepositoryId=${maven-server-id}" />
-			<arg value="-DpomFile=build/pom.xml" />
-			<arg value="-Dfile=build/maven-javadoc-attachment.jar" />
-			<arg value="-Dclassifier=javadoc" />
+			<arg value="-Dsources=build/maven-source-attachment.jar" />
+			<arg value="-Djavadoc=build/maven-javadoc-attachment.jar" />
       <arg value="-Pgpg" />
 		</exec>
     
     <echo>*****************************************************************</echo>
     <echo>Check the above lines for any Maven errors!</echo>
     <echo>Now you need to close and maybe release the staged repo on</echo>
-    <echo>http://repository.apache.org.</echo>
+    <echo>http://repository.apache.org (except for SNAPSHOT versions).</echo>
     <echo>Note that before releasing, voting is needed!</echo>
     <echo>*****************************************************************</echo>
   </target>


[3/3] incubator-freemarker git commit: Some internal AST oversight fixes, and a new internal parser setting, preventStrippings. These are needed for the FM2 to FM3 converter.

Posted by dd...@apache.org.
Some internal AST oversight fixes, and a new internal parser setting, preventStrippings. These are needed for the FM2 to FM3 converter.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/9b879885
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/9b879885
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/9b879885

Branch: refs/heads/2.3-gae
Commit: 9b879885406d687595fb7dafd772087dd83541cb
Parents: a36ea52
Author: ddekany <dd...@apache.org>
Authored: Sat Jul 8 00:53:30 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Sat Jul 8 00:53:30 2017 +0200

----------------------------------------------------------------------
 .../java/freemarker/core/NumericalOutput.java   |  4 ++--
 src/main/java/freemarker/core/TextBlock.java    |  4 ++--
 .../java/freemarker/core/TrimInstruction.java   |  8 +++----
 src/main/java/freemarker/core/_CoreAPI.java     |  4 ++++
 .../java/freemarker/template/Configuration.java | 22 +++++++++++++++++++-
 src/main/java/freemarker/template/Template.java |  9 +++++---
 .../java/freemarker/template/_TemplateAPI.java  |  4 ++++
 src/main/javacc/FTL.jj                          | 15 ++++++++++---
 .../freemarker/core/ast-strlitinterpolation.ast |  4 ++--
 9 files changed, 57 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/core/NumericalOutput.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/NumericalOutput.java b/src/main/java/freemarker/core/NumericalOutput.java
index bd1ed11..08e8301 100644
--- a/src/main/java/freemarker/core/NumericalOutput.java
+++ b/src/main/java/freemarker/core/NumericalOutput.java
@@ -150,8 +150,8 @@ final class NumericalOutput extends Interpolation {
     Object getParameterValue(int idx) {
         switch (idx) {
         case 0: return expression;
-        case 1: return Integer.valueOf(minFracDigits);
-        case 2: return Integer.valueOf(maxFracDigits);
+        case 1: return hasFormat ? Integer.valueOf(minFracDigits) : null;
+        case 2: return hasFormat ? Integer.valueOf(maxFracDigits) : null;
         default: throw new IndexOutOfBoundsException();
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/core/TextBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TextBlock.java b/src/main/java/freemarker/core/TextBlock.java
index fb343fa..8be305b 100644
--- a/src/main/java/freemarker/core/TextBlock.java
+++ b/src/main/java/freemarker/core/TextBlock.java
@@ -143,8 +143,8 @@ public final class TextBlock extends TemplateElement {
     private boolean deliberateLeftTrim() {
         boolean result = false;
         for (TemplateElement elem = this.nextTerminalNode(); 
-             elem != null && elem.beginLine == this.endLine;
-             elem = elem.nextTerminalNode()) {
+            elem != null && elem.beginLine == this.endLine;
+            elem = elem.nextTerminalNode()) {
             if (elem instanceof TrimInstruction) {
                 TrimInstruction ti = (TrimInstruction) elem;
                 if (!ti.left && !ti.right) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/core/TrimInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TrimInstruction.java b/src/main/java/freemarker/core/TrimInstruction.java
index 1279b99..a563a8a 100644
--- a/src/main/java/freemarker/core/TrimInstruction.java
+++ b/src/main/java/freemarker/core/TrimInstruction.java
@@ -25,10 +25,10 @@ package freemarker.core;
  */
 final class TrimInstruction extends TemplateElement {
     
-    private static final int TYPE_T = 0;  
-    private static final int TYPE_LT = 1;  
-    private static final int TYPE_RT = 2;  
-    private static final int TYPE_NT = 3;  
+    static final int TYPE_T = 0;  
+    static final int TYPE_LT = 1;  
+    static final int TYPE_RT = 2;  
+    static final int TYPE_NT = 3;  
 
     final boolean left, right;
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/core/_CoreAPI.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/_CoreAPI.java b/src/main/java/freemarker/core/_CoreAPI.java
index 66442da..1f10f81 100644
--- a/src/main/java/freemarker/core/_CoreAPI.java
+++ b/src/main/java/freemarker/core/_CoreAPI.java
@@ -213,5 +213,9 @@ public class _CoreAPI {
     public static TemplateElement getChildElement(TemplateElement te, int index) {
         return te.getChild(index);
     }
+
+    public static void setPreventStrippings(FMParser parser, boolean preventStrippings) {
+        parser.setPreventStrippings(preventStrippings);
+    }
     
 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/template/Configuration.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/Configuration.java b/src/main/java/freemarker/template/Configuration.java
index 57b0121..5956a39 100644
--- a/src/main/java/freemarker/template/Configuration.java
+++ b/src/main/java/freemarker/template/Configuration.java
@@ -499,7 +499,8 @@ public class Configuration extends Configurable implements Cloneable, ParserConf
     private Version incompatibleImprovements;
     private int tagSyntax = ANGLE_BRACKET_TAG_SYNTAX;
     private int namingConvention = AUTO_DETECT_NAMING_CONVENTION;
-    private int tabSize = 8;  // Default from JavaCC 3.x 
+    private int tabSize = 8;  // Default from JavaCC 3.x
+    private boolean preventStrippings;
 
     private TemplateCache cache;
     
@@ -2399,6 +2400,25 @@ public class Configuration extends Configurable implements Cloneable, ParserConf
     }
     
     /**
+     * Getter pair of {@link #setPreventStrippings(boolean)}.
+     * 
+     * @since 2.3.27
+     */
+    boolean getPreventStrippings() {
+        return preventStrippings;
+    }
+
+    /**
+     * Used internally; added for the FreeMarker 2 to FreeMarker 3 converter, prevents the stripping/removal of AST
+     * nodes so that the source code can be fully reproduced from the AST.
+     * 
+     * @since 2.3.27
+     */
+    void setPreventStrippings(boolean preventStrippings) {
+        this.preventStrippings = preventStrippings;
+    }
+
+    /**
      * Retrieves the template with the given name from the template cache, loading it into the cache first if it's
      * missing/staled.
      * 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/template/Template.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/Template.java b/src/main/java/freemarker/template/Template.java
index 6c2aa4e..240e527 100644
--- a/src/main/java/freemarker/template/Template.java
+++ b/src/main/java/freemarker/template/Template.java
@@ -225,9 +225,9 @@ public class Template extends Configurable {
      * @since 2.3.24
      */
     public Template(
-            String name, String sourceName, Reader reader,
-            Configuration cfg, ParserConfiguration customParserConfiguration,
-            String encoding) throws IOException {
+           String name, String sourceName, Reader reader,
+           Configuration cfg, ParserConfiguration customParserConfiguration,
+           String encoding) throws IOException {
         this(name, sourceName, cfg, customParserConfiguration);
         
         this.setEncoding(encoding);
@@ -243,6 +243,9 @@ public class Template extends Configurable {
             
             try {
                 FMParser parser = new FMParser(this, reader, actualParserConfiguration);
+                if (cfg != null) {
+                    _CoreAPI.setPreventStrippings(parser, cfg.getPreventStrippings());
+                }
                 try {
                     this.rootElement = parser.Root();
                 } catch (IndexOutOfBoundsException exc) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/java/freemarker/template/_TemplateAPI.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/_TemplateAPI.java b/src/main/java/freemarker/template/_TemplateAPI.java
index 373e0e6..22cbc21 100644
--- a/src/main/java/freemarker/template/_TemplateAPI.java
+++ b/src/main/java/freemarker/template/_TemplateAPI.java
@@ -164,5 +164,9 @@ public class _TemplateAPI {
     public static TimeZone getDefaultTimeZone() {
         return Configuration.getDefaultTimeZone();
     }
+
+    public static void setPreventStrippings(Configuration conf, boolean preventStrippings) {
+        conf.setPreventStrippings(preventStrippings);
+    }
     
 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/main/javacc/FTL.jj
----------------------------------------------------------------------
diff --git a/src/main/javacc/FTL.jj b/src/main/javacc/FTL.jj
index 75c7784..94338af 100644
--- a/src/main/javacc/FTL.jj
+++ b/src/main/javacc/FTL.jj
@@ -70,7 +70,7 @@ public class FMParser {
 
     private Template template;
 
-    private boolean stripWhitespace, stripText;
+    private boolean stripWhitespace, stripText, preventStrippings;
     private int incompatibleImprovements;
     private OutputFormat outputFormat;
     private int autoEscapingPolicy;
@@ -291,6 +291,13 @@ public class FMParser {
         parentTokenSource.namingConvention = token_source.namingConvention;
         parentTokenSource.namingConventionEstabilisher = token_source.namingConventionEstabilisher;
     }
+    
+    /**
+     * Used when we need to recreate the source code from the AST (such as for the FM2 to FM3 converter).
+     */
+    void setPreventStrippings(boolean preventStrippings) {
+        this.preventStrippings = preventStrippings;
+    }
 
     private OutputFormat getFormatFromStdFileExt() {
         String sourceName = template.getSourceName();
@@ -3975,7 +3982,7 @@ TextBlock PCData() :
         }
     )+
     {
-        if (stripText && mixedContentNesting == 1) return null;
+        if (stripText && mixedContentNesting == 1 && !preventStrippings) return null;
 
         TextBlock result = new TextBlock(buf.toString(), false);
         result.setLocation(template, start, t);
@@ -4383,7 +4390,9 @@ TemplateElement Root() :
     {
         TemplateElement root = children.asSingleElement(); 
         root.setFieldsForRootElement();
-        root = root.postParseCleanup(stripWhitespace);
+        if (!preventStrippings) {
+            root = root.postParseCleanup(stripWhitespace);
+        }
         // The cleanup result is possibly an element from deeper:
         root.setFieldsForRootElement();
         return root;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9b879885/src/test/resources/freemarker/core/ast-strlitinterpolation.ast
----------------------------------------------------------------------
diff --git a/src/test/resources/freemarker/core/ast-strlitinterpolation.ast b/src/test/resources/freemarker/core/ast-strlitinterpolation.ast
index 7d14e80..e8130bb 100644
--- a/src/test/resources/freemarker/core/ast-strlitinterpolation.ast
+++ b/src/test/resources/freemarker/core/ast-strlitinterpolation.ast
@@ -60,8 +60,8 @@
                 - content: x  // f.c.Identifier
             - value part: #{...}  // f.c.NumericalOutput
                 - content: y  // f.c.Identifier
-                - minimum decimals: "0"  // Integer
-                - maximum decimals: "0"  // Integer
+                - minimum decimals: null  // Null
+                - maximum decimals: null  // Null
     #text  // f.c.TextBlock
         - content: "\n6. "  // String
     ${...}  // f.c.DollarVariable


[2/3] incubator-freemarker git commit: Updated version number

Posted by dd...@apache.org.
Updated version number


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/a36ea523
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/a36ea523
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/a36ea523

Branch: refs/heads/2.3-gae
Commit: a36ea52359bd90fa45340537b66ec58216f8be41
Parents: 9b3d130
Author: ddekany <dd...@apache.org>
Authored: Sat Jul 8 00:51:20 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Sat Jul 8 00:52:15 2017 +0200

----------------------------------------------------------------------
 src/main/resources/freemarker/version.properties         | 11 +++++------
 .../freemarker/template/DefaultObjectWrapperTest.java    |  1 +
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a36ea523/src/main/resources/freemarker/version.properties
----------------------------------------------------------------------
diff --git a/src/main/resources/freemarker/version.properties b/src/main/resources/freemarker/version.properties
index 4750d18..9a1a8c5 100644
--- a/src/main/resources/freemarker/version.properties
+++ b/src/main/resources/freemarker/version.properties
@@ -58,12 +58,11 @@
 # - When the major version number is increased, major backward
 #   compatibility violations are allowed, but still should be avoided.
 # During Apache Incubation, "-incubating" is added to this string.
-version=2.3.26-incubating
-# This exists as oss.sonatype only allows SNAPSHOT and final releases,
-# so instead 2.3.21-rc01 and such we have to use 2.3.21-SNAPSHOT there.
-# For final releases it's the same as "version".
-# During Apache Incubation, "-incubating" is added to this string.
-mavenVersion=2.3.26-incubating
+version=2.3.27-nightly_@timestampInVersion@-incubating
+# This exists as for Maven we use "-SNAPSHOT" for non-final releases.
+# For final releases it's the same as "version". During Apache
+# Incubation, "-incubating" is added *before* "-SNAPSHOT".
+mavenVersion=2.3.27-incubating-SNAPSHOT
 
 # Version string that conforms to OSGi
 # ------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a36ea523/src/test/java/freemarker/template/DefaultObjectWrapperTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/template/DefaultObjectWrapperTest.java b/src/test/java/freemarker/template/DefaultObjectWrapperTest.java
index dcbc659..9a9e283 100644
--- a/src/test/java/freemarker/template/DefaultObjectWrapperTest.java
+++ b/src/test/java/freemarker/template/DefaultObjectWrapperTest.java
@@ -93,6 +93,7 @@ public class DefaultObjectWrapperTest {
         expected.add(Configuration.VERSION_2_3_24);
         expected.add(Configuration.VERSION_2_3_24); // no non-BC change in 2.3.25
         expected.add(Configuration.VERSION_2_3_26);
+        expected.add(Configuration.VERSION_2_3_26); // no non-BC change in 2.3.27
 
         List<Version> actual = new ArrayList<Version>();
         for (int i = _TemplateAPI.VERSION_INT_2_3_0; i <= Configuration.getVersion().intValue(); i++) {