diff --git a/.gitignore b/.gitignore
index 5894dca..ad8b3b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
freemarker-2.3.13.tar.gz
+/freemarker-2.3.19.tar.gz
diff --git a/freemarker-2.3.19-build.patch b/freemarker-2.3.19-build.patch
new file mode 100644
index 0000000..9986062
--- /dev/null
+++ b/freemarker-2.3.19-build.patch
@@ -0,0 +1,130 @@
+--- build.xml 2012-03-01 01:56:24.000000000 +0100
++++ build.xml-gil 2012-05-16 12:33:02.759366191 +0200
+@@ -58,6 +58,7 @@
+
+
+
++
+
+
+
+@@ -86,11 +87,14 @@
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+@@ -119,6 +123,8 @@
+
+
+
++
++
+
+
+
+@@ -139,6 +145,8 @@
+
+
+
++
++
+
+
+
+@@ -297,6 +305,7 @@
+
+
+
++
++ < Needed only for testing SLF4J:>
+
+
+
+@@ -326,7 +335,7 @@
+
+
+
+-
++
+
+
+
+@@ -547,7 +556,7 @@
+
+
+
+
+@@ -561,13 +570,13 @@
+
+
+
+-
++
+
+
+
+
+
+-
++
+
+
+
+@@ -580,7 +589,7 @@
+
+
+
+
+@@ -591,7 +600,7 @@
+
+
+
+
+@@ -602,7 +611,7 @@
+
+
+
+
+@@ -613,7 +622,7 @@
+
+
+
+
diff --git a/freemarker-2.3.19-enable-jdom.patch b/freemarker-2.3.19-enable-jdom.patch
new file mode 100644
index 0000000..e7accbc
--- /dev/null
+++ b/freemarker-2.3.19-enable-jdom.patch
@@ -0,0 +1,127 @@
+diff -Nru freemarker-2.3.19/build.xml freemarker-2.3.19-gil/build.xml
+--- freemarker-2.3.19/build.xml 2012-05-16 13:22:41.753528850 +0200
++++ freemarker-2.3.19-gil/build.xml 2012-05-16 13:33:05.935562933 +0200
+@@ -575,7 +575,7 @@
+
+
+
+-
++
+
+
+
+diff -Nru freemarker-2.3.19/src/freemarker/ext/jdom/NodeListModel.java freemarker-2.3.19-gil/src/freemarker/ext/jdom/NodeListModel.java
+--- freemarker-2.3.19/src/freemarker/ext/jdom/NodeListModel.java 2012-03-01 01:56:25.000000000 +0100
++++ freemarker-2.3.19-gil/src/freemarker/ext/jdom/NodeListModel.java 2012-05-16 13:29:44.097551911 +0200
+@@ -734,7 +734,7 @@
+ else if ("data".equals(localName))
+ attr = new Attribute("data", pi.getData());
+ else
+- attr = new Attribute(localName, pi.getValue(localName));
++ attr = new Attribute(localName, pi.getPseudoAttributeValue(localName));
+ } else if (node instanceof DocType) {
+ DocType doctype = (DocType)node;
+ if ("publicId".equals(localName))
+@@ -844,17 +844,17 @@
+ private static final Element getParent(Object node)
+ {
+ if (node instanceof Element)
+- return((Element)node).getParent();
++ return((Element)node).getParentElement();
+ else if (node instanceof Attribute)
+ return((Attribute)node).getParent();
+ else if (node instanceof Text)
+- return((Text)node).getParent();
++ return((Text)node).getParentElement();
+ else if (node instanceof ProcessingInstruction)
+- return((ProcessingInstruction)node).getParent();
++ return((ProcessingInstruction)node).getParentElement();
+ else if (node instanceof Comment)
+- return((Comment)node).getParent();
++ return((Comment)node).getParentElement();
+ else if (node instanceof EntityRef)
+- return((EntityRef)node).getParent();
++ return((EntityRef)node).getParentElement();
+ else
+ // With 2.1 semantics it makes more sense to just return a null and let the core
+ // throw an InvalidReferenceException and the template writer can use ?exists etcetera. (JR)
+@@ -878,7 +878,7 @@
+ LinkedList list = new LinkedList();
+ do {
+ list.addFirst(parent);
+- parent = parent.getParent();
++ parent = parent.getParentElement();
+ }
+ while (parent != null);
+ return list;
+@@ -894,7 +894,7 @@
+ list.addFirst(node);
+ do {
+ list.addFirst(parent);
+- parent = parent.getParent();
++ parent = parent.getParentElement();
+ }
+ while (parent != null);
+ return list;
+@@ -950,10 +950,10 @@
+ if (node instanceof Element)
+ doc = ((Element)node).getDocument();
+ else if (node instanceof Attribute) {
+- Element parent = ((Attribute)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ doc = parent == null ? null : parent.getDocument();
+ } else if (node instanceof Text) {
+- Element parent = ((Text)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ doc = parent == null ? null : parent.getDocument();
+ } else if (node instanceof Document)
+ doc = (Document)node;
+diff -Nru freemarker-2.3.19/src/freemarker/ext/xml/JdomNavigator.java freemarker-2.3.19-gil/src/freemarker/ext/xml/JdomNavigator.java
+--- freemarker-2.3.19/src/freemarker/ext/xml/JdomNavigator.java 2012-03-01 01:56:25.000000000 +0100
++++ freemarker-2.3.19-gil/src/freemarker/ext/xml/JdomNavigator.java 2012-05-16 13:32:06.328559677 +0200
+@@ -169,7 +169,7 @@
+ result.add(new Attribute("data", pi.getData()));
+ }
+ else {
+- result.add(new Attribute(localName, pi.getValue(localName)));
++ result.add(new Attribute(localName, pi.getPseudoAttributeValue(localName)));
+ }
+ } else if (node instanceof DocType) {
+ DocType doctype = (DocType)node;
+@@ -206,22 +206,22 @@
+
+ Object getParent(Object node) {
+ if (node instanceof Element) {
+- return((Element)node).getParent();
++ return((Element)node).getParentElement();
+ }
+ if (node instanceof Attribute) {
+ return((Attribute)node).getParent();
+ }
+ if (node instanceof Text) {
+- return((Text)node).getParent();
++ return((Text)node).getParentElement();
+ }
+ if (node instanceof ProcessingInstruction) {
+- return((ProcessingInstruction)node).getParent();
++ return((ProcessingInstruction)node).getParentElement();
+ }
+ if (node instanceof Comment) {
+- return((Comment)node).getParent();
++ return((Comment)node).getParentElement();
+ }
+ if (node instanceof EntityRef) {
+- return((EntityRef)node).getParent();
++ return((EntityRef)node).getParentElement();
+ }
+ return null;
+ }
+@@ -235,7 +235,7 @@
+ return parent == null ? null : parent.getDocument();
+ }
+ else if (node instanceof Text) {
+- Element parent = ((Text)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ return parent == null ? null : parent.getDocument();
+ }
+ else if (node instanceof Document)
diff --git a/freemarker-2.3.19-javacc.patch b/freemarker-2.3.19-javacc.patch
new file mode 100644
index 0000000..1205962
--- /dev/null
+++ b/freemarker-2.3.19-javacc.patch
@@ -0,0 +1,31 @@
+--- build.xml 2012-05-16 13:50:05.577618606 +0200
++++ build.xml-gil 2012-05-16 13:50:10.364618868 +0200
+@@ -488,13 +488,12 @@
+ description="Build the JavaCC parser from its grammar file">
+
+
+
+
+-
++ /-->
+
+
+
++
+
+
+
+diff -Nru freemarker-2.3.19/src/freemarker/ext/beans/BeansWrapper.java freemarker-2.3.19-gil/src/freemarker/ext/beans/BeansWrapper.java
+--- freemarker-2.3.19/src/freemarker/ext/beans/BeansWrapper.java 2012-03-01 01:56:25.000000000 +0100
++++ freemarker-2.3.19-gil/src/freemarker/ext/beans/BeansWrapper.java 2012-05-16 13:03:24.057465638 +0200
+@@ -232,7 +232,6 @@
+ */
+ public BeansWrapper() {
+ if(javaRebelAvailable) {
+- JavaRebelIntegration.registerWrapper(this);
+ }
+ }
+
+@@ -1672,13 +1671,7 @@
+
+
+ private static boolean isJavaRebelAvailable() {
+- try {
+- JavaRebelIntegration.testAvailability();
+- return true;
+- }
+- catch(NoClassDefFoundError e) {
+ return false;
+- }
+ }
+
+ /**
diff --git a/freemarker-2.3.19-no-tomcat5.patch b/freemarker-2.3.19-no-tomcat5.patch
new file mode 100644
index 0000000..ccb5bde
--- /dev/null
+++ b/freemarker-2.3.19-no-tomcat5.patch
@@ -0,0 +1,140 @@
+--- build.xml 2012-05-16 12:49:40.018420644 +0200
++++ build.xml-gil 2012-05-16 12:56:22.835442638 +0200
+@@ -55,8 +55,6 @@
+
+
+
+-
+-
+
+
+
+@@ -99,7 +97,7 @@
+
+
+
+-
++
+
+
+
+@@ -260,9 +258,9 @@
+
+
+
+-
+-
+-
++
++
++
+
+
+
+@@ -571,7 +569,7 @@
+
+
+
+-
++
+
+
+
+@@ -655,7 +653,7 @@
+
+
+
+
+@@ -666,7 +664,7 @@
+
+
+
+
+@@ -678,7 +676,7 @@
+
+
+
+
+@@ -689,7 +687,7 @@
+
+
+
+
+@@ -698,20 +696,20 @@
+
+
+
+-
++
+
+
+-
+-
++
++
+
+
+
+
+
+
+@@ -722,7 +720,7 @@
+
+
+
+
+@@ -733,7 +731,7 @@
+
+
+
+
+@@ -744,7 +742,7 @@
+
+
+
+
+@@ -755,7 +753,7 @@
+
+
+
+
diff --git a/freemarker-2.3.19.pom b/freemarker-2.3.19.pom
new file mode 100644
index 0000000..1f45c09
--- /dev/null
+++ b/freemarker-2.3.19.pom
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+ org.freemarker
+ freemarker
+ 2.3.19
+ jar
+ FreeMarker
+
+ FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
+
+ http://freemarker.org
+
+
+ BSD-style license
+ http://freemarker.org/LICENSE.txt
+
+
+
+ http://freemarker.svn.sourceforge.net/viewvc/freemarker/
+ scm:svn:https://freemarker.svn.sourceforge.net/svnroot/freemarker
+
+
+
+
+
+
\ No newline at end of file
diff --git a/freemarker.spec b/freemarker.spec
index 02a517d..58572ed 100644
--- a/freemarker.spec
+++ b/freemarker.spec
@@ -5,29 +5,35 @@
echo "ERROR: Sources should not contain JAR files:" && echo "$F" && exit 1
%global fm_compatible_ver 2.3
-%global fm_ver %{fm_compatible_ver}.13
+%global fm_ver %{fm_compatible_ver}.19
Name: freemarker
Version: %{fm_ver}
-Release: 14%{?dist}
+Release: 1%{?dist}
Summary: A template engine
Group: Development/Libraries
License: BSD
URL: http://freemarker.sourceforge.net/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
-Source1: %{name}-%{version}-pom.xml
+Source1: http://freemarker.sourceforge.net/maven2/org/%{name}/%{name}/%{version}/%{name}-%{version}.pom
# disabled functionality: ext/jdom, ext/jsp/FreeMarkerPageContext1, ext/xml/JdomNavigator
-Patch0: %{name}-%{version}~build.patch
-#
-Patch1: %{name}-%{version}~PyObject.__class__.patch
+Patch0: %{name}-%{version}-build.patch
+#
+Patch1: %{name}-2.3.13~PyObject.__class__.patch
# http://netbeans.org/bugzilla/show_bug.cgi?id=156876
-Patch2: %{name}-%{version}~logging.patch
+Patch2: %{name}-%{version}-logging.patch
# illegal character in the javadoc comment
-Patch3: %{name}-%{version}~encoding.patch
+Patch3: %{name}-2.3.13~encoding.patch
# do not depend on tomcat5
-Patch4: no-tomcat5.patch
+Patch4: %{name}-%{version}-no-tomcat5.patch
+# Disable JavaRebelIntegration
+Patch5: %{name}-%{version}-no-javarebel.patch
+# enable jdom extension
+Patch6: %{name}-%{version}-enable-jdom.patch
+# use system javacc and fix Token.java
+Patch7: %{name}-%{version}-javacc.patch
BuildArch: noarch
@@ -46,6 +52,7 @@ BuildRequires: junit >= 3.8.2
BuildRequires: jython >= 2.2.1
BuildRequires: log4j >= 1.2
BuildRequires: rhino >= 1.6
+BuildRequires: slf4j
BuildRequires: tomcat6-el-2.1-api
BuildRequires: tomcat6-lib >= 6.0.16
BuildRequires: tomcat6-servlet-2.5-api >= 6.0
@@ -76,11 +83,14 @@ This package contains the API documentation for %{name}.
find -type f \( -iname '*.jar' -o -iname '*.class' \) -exec rm -f '{}' \;
-%patch0 -p1 -b .sav
-%patch1 -p1
-%patch2 -p1
+%patch0 -p0
+# % p atch1 -p1
+%patch2 -p0
%patch3 -p1
-%patch4 -p1
+%patch4 -p0
+%patch5 -p1
+%patch6 -p1
+%patch7 -p0
# %{__rm} -rf src/freemarker/core/ParseException.java
%{__rm} -rf src/freemarker/core/FMParser.java
@@ -94,7 +104,7 @@ find -type f \( -iname '*.jar' -o -iname '*.class' \) -exec rm -f '{}' \;
%{__ln_s} -f %{_javadir}/dom4j.jar lib/dom4j.jar
%{__ln_s} -f %{_javadir}/emma_ant.jar lib/emma_ant.jar
%{__ln_s} -f %{_javadir}/emma.jar lib/emma.jar
-%{__ln_s} -f %{_javadir}/javacc.jar lib/javacc.jar
+#%{__ln_s} -f %{_javadir}/javacc.jar lib/javacc.jar
%{__ln_s} -f %{_javadir}/jaxen.jar lib/jaxen.jar
%{__ln_s} -f %{_javadir}/jdom.jar lib/jdom.jar
# js.jsr provided by rhino package
@@ -111,6 +121,7 @@ find -type f \( -iname '*.jar' -o -iname '*.class' \) -exec rm -f '{}' \;
%{__ln_s} -f %{_javadir}/jython.jar lib/jython.jar
%{__ln_s} -f %{_javadir}/log4j.jar lib/log4j.jar
%{__ln_s} -f %{_javadir}/avalon-logkit.jar lib/logkit.jar
+%{__ln_s} -f %{_javadir}/slf4j/api.jar lib/slf4j-api.jar
# It doesn't required due to OpenJDK 6 is used
#%{__ln_s} -f %{_javadir}/rt122.jar lib/rt122.jar
@@ -164,6 +175,9 @@ dos2unix -k docs/docs/api/package-list
%doc LICENSE.txt
%changelog
+* Wed May 16 2012 gil cattaneo - 2.3.19-1
+- update to 2.3.19
+
* Wed Feb 01 2012 Marek Goldmann - 2.3.13-14
- Added Maven POM, RHBZ#786383
diff --git a/sources b/sources
index 9f1e69d..418fff4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8201b01e09828bd268522ed66b50a236 freemarker-2.3.13.tar.gz
+9d5e28d1f10149f5de26390b22dc009d freemarker-2.3.19.tar.gz