Excellent, now I know how to set the logging. Also, I fixed (c) below
with my last commit.
In case you weren't aware yet, the fastest way to build the WAR via
Maven is "mvn clean install -Dmaven.test.skip", and to deploy it via
embedded Tomcat is "mvn tomcat7:run-war -Dmaven.test.skip" for it to
appear at http://localhost:8080/JSPWiki.
Here's the method in question, as you pointed out earlier, apparently
Juan Pablo played a role in its design:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/main/java/org/apache/wiki/ui/TemplateManager.java?revision=1471631&view=markup#l420
I was trying to find a way to open a resource via wildcard, instead of
JSPWiki.jar using JSPWiki*.jar, but couldn't find an API for that. The
only other solutions I can do are (1) switch to the long name in both
Ant and Maven (which will be subject to rather frequent version
changes), (2) filter the version into the file (kind of messy as it
would have to be compatible for both Ant and Maven right now); (3) just
hardcode the list of languages and update the list when we add a new
language in; (4) some solution like below you mention.
If you could test (4) I'd appreciate it. If (4) is not readily
workable, I don't mind (3) at all -- we add new languages so rarely,
also with (3) at least we'd no longer need to copy the
default.properties to default_en.properties in order to get English to
appear in the list.
Thanks,
Glen
On 05/01/2013 03:49 PM, Harry Metske wrote:
in the jspwiki.properties, down the bottom you can find the log4j
configuration. I just set the root logger to debug, then the stacktrace
pops up in jspwiki.log.
Looking at the code I would say it's just trying to get the resource
"templates/default_*.properties" from classpath, I would have to test to
see if that works without "unjarring" the JSPWiki.jar.
regards,
Harry
On 1 May 2013 21:07, Glen Mazza <glen.ma...@gmail.com> wrote:
Thanks, Harry, how did you get that stacktrace to appear? I couldn't find
it anywhere--not in catalina.out, not in the jspwiki log file... Maybe I
need to adjust the logging level (where to do?).
I wonder if TemplateManager *must* be given the name of the JAR file to
read (kind of yucky), if it just can't access the files it wants to look at
from the classpath. As we just have one pom, I don't have the flexibility
yet in naming the JAR as I do the WAR, so I would have to hardcode
TemplateManager to the Maven name, and update the Ant build.xml to use the
long name. Maven has filtering, if need be, so the classfile can update to
whatever the project version is if we have to go that route.
As for the other differences between the WARs, (a) the JARs: Maven
downloads a few different different sub-dependencies by default compared to
what we earlier hardcoded for Ant (as viewable by running mvn
dependency:tree), I wouldn't want to put in Maven overrides unless we know
there's a problem with including them. Generally, when we formally declare
a dependency on A and Maven Central says A needs B and C, then we should
just rely on the default of all three unless we know otherwise. (b)
META-INF: doesn't matter, Maven constructs a different META-INF compared to
what Ant does including the POM and other config info; and (c) these files:
+./geronimo-web.xml
+./jspwiki.policy
+./jspwiki.tld
+./jstl-fmt.tld
+./oscache.tld
I goofed up here -- I need to put them under webapp/WEB-INF not just
webapp and the pom.xml is wrongly copying them into two locations. I'll
get this fixed first.
and (d) The WEB-INF/classes directory is empty (Maven apparently creates
it by default) so that one doesn't matter.
Thanks,
Glen
On 05/01/2013 02:31 PM, Harry Metske wrote:
The NPE has the following stacktrace (snipped) :
java.lang.**NullPointerException: in is null
at java.util.zip.ZipInputStream.<**init>(ZipInputStream.java:100)
at java.util.zip.ZipInputStream.<**init>(ZipInputStream.java:79)
at java.util.jar.JarInputStream.<**init>(JarInputStream.java:76)
at java.util.jar.JarInputStream.<**init>(JarInputStream.java:62)
at
org.apache.wiki.ui.**TemplateManager.listLanguages(**
TemplateManager.java:437)
at
org.apache.jsp.templates.**default_.PreferencesTab_jsp._**
jspService(PreferencesTab_jsp.**java:167)
at org.apache.jasper.runtime.**HttpJspBase.service(**HttpJspBase.java:70)
at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:728)
at
org.apache.jasper.servlet.**JspServletWrapper.service(**
JspServletWrapper.java:432)
at org.apache.jasper.servlet.**JspServlet.serviceJspFile(**
JspServlet.java:390)
at org.apache.jasper.servlet.**JspServlet.service(JspServlet.**java:334)
at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:728)
The NPE is a result of the fact the the JSPWiki.jar in the war file has
another name when built with maven (jspwiki-2.9.1-SNAPSHOT.jar).
The TemplateManager has a hardcode path to it in line 92 :
public static final String I18NRESOURCE_PATH =
"/WEB-INF/lib/JSPWiki.jar";
There are quite a few more diffs, dont know if they break jspwiki:
(diff -u output on the sorted files of the maven and ant builds) :
--- ff-ant.list 2013-05-01 20:13:27.508155331 +0200
+++ ff-mvn.list 2013-05-01 20:13:39.060155231 +0200
@@ -14,6 +14,7 @@
@@ -36,8 +40,14 @@
./Message.jsp
./META-INF
./META-INF/MANIFEST.MF
+./META-INF/maven
+./META-INF/maven/org.apache.**incubator
+./META-INF/maven/org.apache.**incubator/jspwiki
+./META-INF/maven/org.apache.**incubator/jspwiki/pom.**properties
+./META-INF/maven/org.apache.**incubator/jspwiki/pom.xml
./NewBlogEntry.jsp
./NewGroup.jsp
./PageInfo.jsp
./PageModified.jsp
./Preview.jsp
@@ -187,6 +197,7 @@
./Upload.jsp
./UserPreferences.jsp
./WEB-INF
+./WEB-INF/classes
./WEB-INF/geronimo-web.xml
./WEB-INF/groupdatabase.xml
./WEB-INF/jspwiki.policy
@@ -201,20 +212,21 @@
./WEB-INF/lib/commons-**httpclient-3.1.jar
./WEB-INF/lib/commons-io-1.4.**jar
./WEB-INF/lib/commons-lang-2.**6.jar
+./WEB-INF/lib/commons-**logging-1.0.4.jar
./WEB-INF/lib/commons-logging-**api-1.0.4.jar
./WEB-INF/lib/ecs-1.4.2.jar
./WEB-INF/lib/freshcookies-**security-0.60.jar
+./WEB-INF/lib/jakarta-regexp-**1.4.jar
./WEB-INF/lib/jaxen-1.1-beta-**6.jar
./WEB-INF/lib/jdom-1.0.jar
-./WEB-INF/lib/jrcs-diff-0.4.**2.jar
./WEB-INF/lib/json-rpc-1.0.jar
-./WEB-INF/lib/jsonrpc-1.0.jar
-./WEB-INF/lib/JSPWiki.jar
+./WEB-INF/lib/jspwiki-2.9.1-**SNAPSHOT.jar
./WEB-INF/lib/jstl-1.1.2.jar
./WEB-INF/lib/log4j-1.2.14.jar
./WEB-INF/lib/lucene-core-3.6.**0.jar
./WEB-INF/lib/lucene-**highlighter-3.6.0.jar
./WEB-INF/lib/lucene-memory-3.**6.0.jar
+./WEB-INF/lib/lucene-queries-**3.6.0.jar
./WEB-INF/lib/mail-1.4.jar
./WEB-INF/lib/nekohtml-0.9.4.**jar
./WEB-INF/lib/org.suigeneris.**jrcs.diff-0.4.2.jar
@@ -222,7 +234,10 @@
./WEB-INF/lib/oscache-2.3.jar
./WEB-INF/lib/sandler-0.5.jar
./WEB-INF/lib/standard-1.1.2.**jar
+./WEB-INF/lib/xercesImpl-2.4.**0.jar
+./WEB-INF/lib/xml-apis-1.3.**04.jar
./WEB-INF/lib/xmlrpc-2.0.1.jar
+./WEB-INF/lib/xpp3-1.1.3.4-**RC3.jar
./WEB-INF/oscache.tld
./WEB-INF/userdatabase.xml
./WEB-INF/web.xml
On 1 May 2013 01:51, Glen Mazza <glen.ma...@gmail.com> wrote:
On 04/30/2013 06:51 PM, Juan Pablo Santos Rodríguez wrote:
Hi!
comments inline
On Tue, Apr 30, 2013 at 11:42 PM, Glen Mazza <glen.ma...@gmail.com>
wrote:
Hi Team, a few notes:
1.) In your local {jspwiki_home}/lib directory, please delete these two
files: jsonrpc-1.0.jar and jrcs-diff-0.4.2.jar. When you build the
project again, Ant will download them again with names precisely
matching
what is in the Maven Central repository. This way, when we do a diff
-r
between the Maven and Ant WARs to check equivalence it won't keep
reporting
that Ant is missing two JARs and Maven is missing another two, when in
fact
they're the same but just with different names.
ok, also, 'til we swicth to maven, the .classpath file needs to be
updated
too.
Updated.
2.) When we go to a two-tier pom.xml (Juan Pablo's work), we may wish
to
have a "distribution" submodule similar to CXF here:
http://svn.apache.org/viewvc/******cxf/trunk/distribution/<http://svn.apache.org/viewvc/****cxf/trunk/distribution/>
<htt**p://svn.apache.org/viewvc/****cxf/trunk/distribution/<http://svn.apache.org/viewvc/**cxf/trunk/distribution/>
<http:**//svn.apache.org/**viewvc/cxf/**trunk/**distribution/<http://svn.apache.org/viewvc/cxf/**trunk/distribution/>
<http://svn.**apache.org/viewvc/cxf/trunk/**distribution/<http://svn.apache.org/viewvc/cxf/trunk/distribution/>
,
it would allow us to nicely store the LICENSE, Notice, and other static
text information away from the development folders:
http://svn.apache.org/viewvc/******cxf/trunk/distribution/src/******<http://svn.apache.org/viewvc/****cxf/trunk/distribution/src/****>
main/release/<http://svn.**apache.org/viewvc/**cxf/trunk/**
distribution/src/**main/**release/<http://svn.apache.org/viewvc/**cxf/trunk/distribution/src/**main/release/>
<http://svn.**apache.org/**viewvc/cxf/trunk/**<http://apache.org/viewvc/cxf/trunk/**>
distribution/src/main/release/**<http://svn.apache.org/viewvc/**
cxf/trunk/distribution/src/**main/release/<http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/>
**>.
didn't thought of it, but I think it's a great idea, would you mind
opening
a JIRA for this, so we can track it?
Done (JSPWiki-1776).
3.) Does anyone know if we need src/images/jspwiki_alert_******
icons.xcf?
(It's a GIMP image file), AFAICT by grepping the source code it's
completely unused by the project so I'd like to delete it.
+1 on removing it
Gone now. (Gambling no one else will see a need for it.)
4.) Do we need the "corepageszip" target in the build.xml? I don't
know
what it's used for:
http://svn.apache.org/viewvc/******<http://svn.apache.org/viewvc/****>
<http://svn.apache.org/**viewvc/** <http://svn.apache.org/viewvc/**>>
incubator/jspwiki/trunk/build.******xml?revision=1477835&view=******
markup#l642<http://svn.apache.****org/viewvc/incubator/**jspwiki/**
trunk/build.xml?revision=****1477835&view=markup#l642<http:**
//svn.apache.org/viewvc/**incubator/jspwiki/trunk/build.**
xml?revision=1477835&view=**markup#l642<http://svn.apache.org/viewvc/incubator/jspwiki/trunk/build.xml?revision=1477835&view=markup#l642>
.
I'd like to remove it if we aren't using it anymore--fewer
distractions, the better.
it's used as part of the dist target, to bundle the wikipages in the
zipped
bin distribution, one file per language. On a Maven equivalent they
would
be normal jar modules (jspwiki-[en|fi|de|etc.]-****wikipages), one per
language, without java classes and the wikipages living at
src/main/resources. Probably they should be submodules of i.e.,
jspwiki-wikipages, something alike the module for IT tests living at the
maven branch
Perhaps the Maven assembly plugin can play a helpful role here, it
basically creates multiple JARs, all of which are a subset of whatever
the
module itself would generate as a whole, I've used it before:
https://github.com/gmazza/****blog-samples/blob/master/web_****<https://github.com/gmazza/**blog-samples/blob/master/web_**>
service_tutorial/service/pom.****xml#L32<https://github.com/**
gmazza/blog-samples/blob/**master/web_service_tutorial/**
service/pom.xml#L32<https://github.com/gmazza/blog-samples/blob/master/web_service_tutorial/service/pom.xml#L32>
and
https://github.com/gmazza/****blog-samples/blob/master/web_****<https://github.com/gmazza/**blog-samples/blob/master/web_**>
service_tutorial/service/src/****assembly/jaxws-jar.xml<https:**
//github.com/gmazza/blog-**samples/blob/master/web_**
service_tutorial/service/src/**assembly/jaxws-jar.xml<https://github.com/gmazza/blog-samples/blob/master/web_service_tutorial/service/src/assembly/jaxws-jar.xml>
Regards,
Glen