On 21/02/2014 15:35, Konstantin Kolinko wrote: > 2014-02-20 13:53 GMT+04:00 Konstantin Kolinko <knst.koli...@gmail.com>: >> 2014-02-20 13:26 GMT+04:00 Mark Thomas <ma...@apache.org>: >>> On 20/02/2014 09:10, Konstantin Kolinko wrote: >>>> 2014-02-20 13:04 GMT+04:00 <ma...@apache.org>: >>>>> Author: markt >>>>> Date: Thu Feb 20 09:04:52 2014 >>>>> New Revision: 1570115 >>>>> >>>>> URL: http://svn.apache.org/r1570115 >>>>> Log: >>>>> Simplify patternsets where possible >>>>> Avoid pattern sets ending in "/*" as much as possible as they usually >>>>> result in JARs containing empty packages with the contents of the package >>>>> in a different JAR >>>>> >>>>> Modified: >>>>> tomcat/tc7.0.x/trunk/ (props changed) >>>>> tomcat/tc7.0.x/trunk/build.xml >>>>> tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml >>>>> >>>>> Propchange: tomcat/tc7.0.x/trunk/ >>>>> ------------------------------------------------------------------------------ >>>>> Merged /tomcat/trunk:r1570114 >>>>> >>>>> Modified: tomcat/tc7.0.x/trunk/build.xml >>>>> URL: >>>>> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/build.xml?rev=1570115&r1=1570114&r2=1570115&view=diff >>>>> ============================================================================== >>>>> --- tomcat/tc7.0.x/trunk/build.xml (original) >>>>> +++ tomcat/tc7.0.x/trunk/build.xml Thu Feb 20 09:04:52 2014 >>>>> @@ -277,20 +277,18 @@ >>>>> <!-- ========= Pattern sets used to control content of JAR files >>>>> ========= --> >>>>> <!-- Pattern sets for jar files in standard distributions --> >>>>> <patternset id="files.annotations-api"> >>>>> - <include name="javax/annotation/*" /> >>>>> - <include name="javax/annotation/security/*" /> >>>>> - <include name="javax/annotation/sql/*" /> >>>>> - <include name="javax/ejb/*" /> >>>>> - <include name="javax/persistence/*" /> >>>>> - <include name="javax/xml/ws/*" /> >>>>> + <include name="javax/annotation/**" /> >>>>> + <include name="javax/ejb/**" /> >>>>> + <include name="javax/persistence/**" /> >>>>> + <include name="javax/xml/ws/**" /> >>>>> </patternset> >>>>> >>>>> <patternset id="files.servlet-api"> >>>>> - <include name="javax/servlet/*" /> >>>>> - <include name="javax/servlet/annotation/*" /> >>>>> - <include name="javax/servlet/descriptor/*" /> >>>>> - <include name="javax/servlet/http/*" /> >>>>> - <include name="javax/servlet/resources/*" /> >>>>> + <include name="javax/servlet/*.class" /> >>>> >>>> I do not like these *.class patterns. >>>> >>>> I think occasionally having an empty package is less evil than missing >>>> a *.properties file. >>> >>> Empty packages might cause issues when we start signing JARs. I know you >>> can't have classes from the same package in different signed JARs. I'm >>> not sure about empty packages. >> >> IIRC from looking into WebappClassLoader a month ago, processing of >> certificates is triggered by having found a *.class. If there is no >> class file there, it is not triggered. >> >>> We can always add a *.properties pattern to those patternsets. >>> >> >> There might also be *.xml (mbeans-descriptors.xml, >> \storeconfig\server-registry.xml). >> >> The rest are in their special packages (antlib.xml, *.tasks, >> tagPlugins.xml, *.dtd, *.xsd). >> >> *.html, *.gif, *.jjt are there, but are needed in the source only. Be >> sure to pack them into *src zips. >> > > -1 (veto) to r1570115 and followups.
OK. I'll see if I can come up with a better solution. If not, I'll revert to the /* pattern that creates empty dirs. Mark > > You are using the same pattern to pack source jars. > > <jarIt jarfile="${servlet-api-src.jar}" > filesDir="java" > filesId="files.servlet-api" > manifest="${tomcat.manifests}/servlet-api.jar.manifest" > notice="${tomcat.manifests}/servlet-api.jar.notice" > license="${tomcat.manifests}/servlet-api.jar.license" /> > > Thus specifying specific file extensions such as *.class, *.properties > will leave some valuable files.from the sources jars. > > For example, javax\servlet\package.html > > Furthermore, currently *.java files are missing. > > For example: > 1. Run "ant package-src-jar" > 2. In output/src-jars/servlet-api-src.jar > There are no *.java files in javax\servlet\ subdirectory. > > As I mentioned, I think that empty packages won't prevent code > signing. If they are, I'd better deal with this when it happens. > (Could there be an option in jar task or resources collection in Ant > to skip empty directories when creating the jar file?) > > Best regards, > Konstantin Kolinko > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org