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 >>>>> >>>>> >>>>> >>>>> >