geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarek Gawor" <jga...@gmail.com>
Subject Re: svn commit: r718644 - in /geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car: ArchiveCarMojo.java ClasspathElement.java
Date Tue, 18 Nov 2008 18:09:15 GMT
David,

Yes, the generated classpath manifest for the these plugins would
assume a certain directory structure. But a certain directory
structure was already assumed before my changes. Before the plugins
assumed that all the depended files lived under the "../lib"
directory. How is that different?
My changes were intended to be used by the plugins that serve as
command line clients (executed via java -jar) and not any other
plugins. I wanted to avoid copying more files into the "lib" directory
and instead using the jar files directly from the "repository"
directory. I think we had a similar issue with GShell before.

Jarek

On Tue, Nov 18, 2008 at 12:12 PM, David Jencks <david_jencks@yahoo.com> wrote:
> -1, at least without some discussion.
>
> One of the principles of geronimo is that we try to make components
> independent where possible.  For instance, we don't let the particular
> implementation of Repository leak into other parts of the server.  This
> change firmly fixes our current repository structure into any plugin that
> uses this new functionality and makes it impossible to run such plugins on
> any other repository implementation.
>
> thanks
> david jencks
>
> On Nov 18, 2008, at 8:33 AM, gawor@apache.org wrote:
>
>> Author: gawor
>> Date: Tue Nov 18 08:33:38 2008
>> New Revision: 718644
>>
>> URL: http://svn.apache.org/viewvc?rev=718644&view=rev
>> Log:
>> improve manifest classpath generation (GERONIMO-4417)
>>
>> Modified:
>>
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ArchiveCarMojo.java
>>
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ClasspathElement.java
>>
>> Modified:
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ArchiveCarMojo.java
>> URL:
>> http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ArchiveCarMojo.java?rev=718644&r1=718643&r2=718644&view=diff
>>
>> ==============================================================================
>> ---
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ArchiveCarMojo.java
>> (original)
>> +++
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ArchiveCarMojo.java
>> Tue Nov 18 08:33:38 2008
>> @@ -133,6 +133,19 @@
>>     * @parameter
>>     */
>>    private String classpathPrefix = null;
>> +
>> +    /**
>> +     * Generate classpath prefix based on the artifactId and groupId. The
>> generated classpath
>> +     * prefix will be in the following form:
>> +     *
>> <tt>../repository/&lt;groupId&gt;/&lt;artifactId&gt;/&lt;version&gt;</tt>.
>> +     * This is the default setting applied to all elements of the
>> <tt>classpath</tt> which
>> +     * do not provide a prefix or do not set the generateClasspathPrefix
>> parameter.  The
>> +     * classpath prefix will only be generated if the
>> <tt>classpathPrefix</tt> parameter is not
>> +     * set.
>> +     *
>> +     * @parameter
>> +     */
>> +    private boolean generateClasspathPrefix;
>>
>>    /**
>>     * Location of resources directory for additional content to include in
>> the car.
>> @@ -243,7 +256,22 @@
>>
>>                String prefix = classpath[i].getClasspathPrefix();
>>                if (prefix == null) {
>> -                    prefix = classpathPrefix;
>> +                    Boolean generatePrefix =
>> classpath[i].getGenerateClasspathPrefix();
>> +                    if (generatePrefix == null) {
>> +                        // generatePrefix is not set - try defaults
>> +                        if (classpathPrefix == null) {
>> +                            if (generateClasspathPrefix) {
>> +                                prefix = generatePrefix(artifact);
>> +                            }
>> +                        } else {
>> +                            prefix = classpathPrefix;
>> +                        }
>> +                    } else if (Boolean.TRUE.equals(generatePrefix)) {
>> +                        // generatePrefix is explicitly set to true -
>> generate prefix
>> +                        prefix = generatePrefix(artifact);
>> +                    } else {
>> +                        // generatePrefix is explicitly set to false -
>> leave null prefix
>> +                    }
>>                }
>>
>>                if (prefix != null) {
>> @@ -269,4 +297,8 @@
>>        return buff.toString();
>>    }
>>
>> -}
>> \ No newline at end of file
>> +    private static String generatePrefix(Artifact artifact) {
>> +        return "../repository/" + artifact.getGroupId().replace('.', '/')
>> + "/" + artifact.getArtifactId() + "/" + artifact.getVersion();
>> +    }
>> +
>> +}
>>
>> Modified:
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ClasspathElement.java
>> URL:
>> http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ClasspathElement.java?rev=718644&r1=718643&r2=718644&view=diff
>>
>> ==============================================================================
>> ---
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ClasspathElement.java
>> (original)
>> +++
>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ClasspathElement.java
>> Tue Nov 18 08:33:38 2008
>> @@ -78,6 +78,17 @@
>>     * @parameter
>>     */
>>    private String entry;
>> +
>> +    /**
>> +     * Generate classpath prefix based on the artifactId and groupId. The
>> generated classpath
>> +     * prefix will be in the following form:
>> +     *
>> <tt>../repository/&lt;groupId&gt;/&lt;artifactId&gt;/&lt;version&gt;</tt>.
>> +     * The classpath prefix will only be generated if the
>> <tt>classpathPrefix</tt> parameter
>> +     * is not set.
>> +     *
>> +     * @parameter
>> +     */
>> +    private Boolean generateClasspathPrefix;
>>
>>    /**
>>     * @return Returns the artifactId.
>> @@ -163,6 +174,24 @@
>>        this.classpathPrefix = classpathPrefix;
>>    }
>>
>> +    /**
>> +     * @return Returns null if the classpath prefix parameter was not
>> set.
>> +     *         Returns true if the classpath prefix should be
>> automatically generated.
>> +     *         Returns false if the classpath prefix should NOT be
>> automatically generated.
>> +     */
>> +    public Boolean getGenerateClasspathPrefix() {
>> +        return generateClasspathPrefix;
>> +    }
>> +
>> +    /**
>> +     * Sets whether classpath prefix should be automatically generated.
>> +     *
>> +     * @param generateClasspathPrefix
>> +     */
>> +    public void setGenerateClasspathPrefix(Boolean
>> generateClasspathPrefix) {
>> +        this.generateClasspathPrefix = generateClasspathPrefix;
>> +    }
>> +
>>    public String getEntry() {
>>        return entry;
>>    }
>>
>>
>
>

Mime
View raw message