Regardless of solution, if we can have one that obviates our need to manually copy default.properties to default_en.properties in our build.xml/pom.xml (e.g., just hardcode the English option instead in our code), that would be a nice improvement.

Glen

On 05/02/2013 10:38 AM, Juan Pablo Santos Rodríguez wrote:
Hi,

I must say I was surprised seeing my name in there, b/c I can't remember
why or what did I did.. After some digging in the OldChangeLog, it seems to
be code from 2008, so it makes sense. The idea, as Harry pointed out is to
retrieve all the templates/default_*.properties files, in order to know
which languages are available.

Can't remember why we chose to look into JSPWiki jar, but something based
on http://stackoverflow.com/a/15331935 should be equally valid without
depending on the jar filename. I can take a look at it, but not until
weekend/next week, so if anybody wants to, feel free to step in.


br,
juan pablo


On Wed, May 1, 2013 at 10:07 PM, Glen Mazza <glen.ma...@gmail.com> wrote:

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<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/>
<h**ttp://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/>
<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://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/******>
<http://svn.apache.**org/viewvc/****cxf/trunk/**
distribution/src/****<http://svn.apache.org/viewvc/****cxf/trunk/distribution/src/****>
main/release/<http://svn.**apa**che.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/>
<http://svn.**apache.org/****viewvc/cxf/trunk/**<http://apache.org/**viewvc/cxf/trunk/**>
<http://**apache.org/viewvc/cxf/trunk/**<http://apache.org/viewvc/cxf/trunk/**>
**>
distribution/src/main/release/****<http://svn.apache.org/**viewvc/**<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/>
**>
**>.



    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/****>
<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.****<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_****>
<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/****<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_****>
<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_**<http://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





Reply via email to