incubator-jspwiki-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Mazza <glen.ma...@gmail.com>
Subject Re: notes on Mavenization...
Date Wed, 01 May 2013 20:07:30 GMT
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.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/>
>>>>>> <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
>>>>
>>>>
>>>>


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