I should fill in that the background for this change is that there are a bunch of directories named "doc-files" in the classes source dir. They have been there a long time. These contain html and gif files (mainly) that shouldn't get copied into the output classes directory.

In a recent cleanup of the copy mechanism, I changed the copy rules to by default include html and gif files and explicitly exclude those that shouldn't be included, rather than explicitly listing what should be copied. Because of this, we now have the following exclude rules:

# These directories should not be copied at all
EXCLUDES += \
    com/sun/org/apache/xml/internal/security/resource/schema \
    java/awt/doc-files \
    java/lang/doc-files \
    javax/swing/doc-files \
    javax/swing/text/doc-files \
    javax/swing/plaf/synth/doc-files \
    javax/swing/undo/doc-files \
    sun/awt/X11/doc-files \
    sun/util/cldr/resources \
    #

When building with sjavac, these get translated to "-e java.awt.doc-files.*" which sjavac does not accept, because doc-files are not proper package names. Another possible fix would be to filter out non valid package names from the excludes sent to sjavac.

/Erik

On 2014-03-19 14:32, Andreas Lundblad wrote:
On Wed, Mar 19, 2014 at 01:58:21PM +0100, Fredrik Öhrström wrote:
The code by itself looks good. However I think that changing from . to / is
a really bad idea.

If someone committed a package directory that does not map correctly to the
package name, then that is a major problem. You will not find that source
through -sourcepath, which means that you just broke sjavac ability to
compile using multiple threads. This is just as bad as when Nashorn tried
to insert $ into java source file names! The horror, the horror.

I.e. do not replace . with /. Fix the problem in the jdk.
In this case, the directory did not contain any source files, just a bunch of 
resources for documentation, such as .gif-files. (How could it contain source 
files? A package may not contain a '-'.) So unless I misunderstood you, there 
should therefore be no problem in this case.

I would prefer to see -i and -x as filters on what directories (not packages) 
exists in the subsequent source root: This is more in line with other options 
(-if, -xf, -src, ...) which all talk about paths and more general since each 
package corresponds to a directory, but only some directories correspond to 
packages.

- Andreas

Reply via email to