incubator-jspwiki-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Juan Pablo Santos Rodríguez <juanpablo.san...@gmail.com>
Subject Re: notes on Mavenization...
Date Thu, 02 May 2013 14:38:58 GMT
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.mazza@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.mazza@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.mazza@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.mazza@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
>>>>>
>>>>>
>>>>>
>>>>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message