ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles Scokart" <gscok...@gmail.com>
Subject Re: [Ivy] How to add a new option to ivy settings
Date Thu, 29 May 2008 07:51:58 GMT
Maybe because later an other user will have the oposite requirements :
I want the retreive to use the current timestamp, so that I know when
I made the retrieve, I know which files have been updated by my last
retrieve, I can use some kind of up-to-date task, and I can also
better integrate my retrieved libraries into my source control
repository.

I think both requirements are valid, so it should be configurable.

Gilles

2008/5/29 Xavier Hanin <xavier.hanin@gmail.com>:
> On Thu, May 29, 2008 at 9:35 AM, Maarten Coene <maarten_coene@yahoo.com>
> wrote:
>
>> Why not always use the server timestamp for the artifacts as we already do
>> for the Ivy files?
>
> Why not, indeed, I see no specific reason.
>
> Xavier
>
>
>>
>>
>> Maarten
>>
>> ----- Original Message ----
>> From: Xavier Hanin <xavier.hanin@gmail.com>
>> To: Ant Developers List <dev@ant.apache.org>
>> Sent: Thursday, May 29, 2008 8:51:36 AM
>> Subject: Re: [Ivy] How to add a new option to ivy settings
>>
>> As Gilles suggested, I'd better put that in settings, which is also much
>> easier to add (you only need a setter on the resolver to recognize an
>> attribute for the resolver in the settings file, pretty much like how Ant
>> tasks work). Still to do what you want in the ivy file you have to modify
>> XmlModuleDescriptorParser, the ModuleDescriptor interface and its default
>> implementation.
>>
>> HTH,
>>
>> Xavier
>>
>> On Thu, May 29, 2008 at 6:13 AM, Claudio Miranda <claudio@claudius.com.br>
>> wrote:
>>
>> >
>> >
>> >    I modified the code displayed below.
>> >    At BasicURLHandler, how is it possible to retrieve de value of
>> > "timestamp" attribute  (from ivy.xml)
>> >
>> > Index: src/java/org/apache/ivy/util/url/BasicURLHandler.java
>> > ===================================================================
>> > --- src/java/org/apache/ivy/util/url/BasicURLHandler.java       (revision
>> > 661197)
>> > +++ src/java/org/apache/ivy/util/url/BasicURLHandler.java       (working
>> > copy)
>> > @@ -131,6 +131,10 @@
>> >                         "Downloaded file size doesn't match expected
>> > Content Length for " + src
>> >                                 + ". Please retry.");
>> >             }
>> > +            boolean remoteTimestamp = false;
>> > +            if (remoteTimestamp) {
>> > +                dest.setLastModified(srcConn.getLastModified());
>> > +            }
>> >         } finally {
>> >             disconnect(srcConn);
>> >
>> >
>> > Index: src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd
>> > ===================================================================
>> > --- src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd  (revision 661197)
>> > +++ src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd  (working copy)
>> > @@ -229,10 +229,19 @@
>> >                                                </xs:complexType>
>> >                                                </xs:element>
>> >                                        </xs:sequence>
>> > -                                               <xs:attribute
>> > name="defaultconf" type="xs:string"/>
>> > -                                               <xs:attribute
>> > name="defaultconfmapping" type="xs:string"/>
>> > +                        <xs:attribute name="defaultconf"
>> > type="xs:string"/>
>> > +                        <xs:attribute name="defaultconfmapping"
>> > type="xs:string"/>
>> >                         <xs:attribute name="confmappingoverride"
>> > type="xs:boolean" />
>> > -                             </xs:complexType>
>> > +                        <xs:attribute name="timestamp" default="current"
>> > use="optional">
>> > +                             <xs:simpleType>
>> > +                                <xs:restriction base="xs:string">
>> > +                                    <xs:enumeration value="current"/>
>> > +                                    <xs:enumeration value="remote"/>
>> > +                                </xs:restriction>
>> > +                            </xs:simpleType>
>> > +                        </xs:attribute>
>> > +
>> >
>> >
>> >
>> > Index:
>> > src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>> > ===================================================================
>> > ---
>> > src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>> > (revision 661197)
>> > +++
>> > src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>> > (working copy)
>> > @@ -520,6 +520,10 @@
>> >             if (confMappingOverride != null) {
>> >
>> >
>> md.setMappingOverride(Boolean.valueOf(confMappingOverride).booleanValue());
>> >             }
>> > +            String timestamp =
>> > ivy.substitute(attributes.getValue("timestamp"));
>> > +            if (timestamp != null) {
>> > +                md.setTimestamp(timestamp);
>> > +            }
>> >             checkConfigurations();
>> >
>> >
>> > Claudio Miranda wrote:
>> > >
>> > >
>> > >     I am doing some testing with Ivy and have implemented a small
>> > > modification, to allow the downloaded resource to have the same date
>> > > timestamp as the file in remote repo. It is a requirement from the
>> > > customer.
>> > >
>> > >     At org.apache.ivy.util.url.BasicURLHandler.download(URL src, File
>> > > dest, CopyProgressListener l)
>> > >     I added
>> > >
>> > > dest.setLastModified(srcConn.getLastModified());
>> > >
>> > >     How is it possible to add an attribute "timestamp" to the
>> > > "dependencies" xml tag ? See below, a sample:
>> > >
>> > > <ivy-module version="2.0">
>> > >     <info organisation="br.com.smartnet" module="hello-ivy"/>
>> > >     <dependencies timestamp="remote">
>> > >       <dependency org="commons-lang" name="commons-lang" rev="2.0"/>
>> > >       <dependency org="commons-cli" name="commons-cli" rev="1.0"/>
>> > >       <dependency org="skaringa" name="skaringa" rev="r1p8"/>
>> > >     </dependencies>
>> > > </ivy-module>
>> > >
>> > >     It can have 2 values "remote" or "current", whereas "remote" set
>> the
>> > > last modified attribute, as the remote file is. The "current" means the
>> > > current Ivy behavior.
>> > >
>> > >     How can I read the timestamp value, at BasicURLHandler class ?
>> > >
>> > >     This is the thread, with more explanation about this requested
>> > > behavior
>> > >
>> >
>> http://www.nabble.com/How-to-download-files-from-ivyrepo-with-the-same-last-modified-date---td17515745.html
>> > >
>> > >     I plan to submit it as an enhancement to the Ivy issue tracking.
>> > >
>> > > Thanks
>> > >
>> > > Claudio Miranda
>> > >
>> >
>> >
>> > -----
>> > Claudio Miranda
>> > http://weblogs.java.net/blog/claudio
>> > http://www.claudius.com.br/blog
>> > --
>> > View this message in context:
>> >
>> http://www.nabble.com/-Ivy--How-to-add-a-new-option-to-ivy-settings-tp17526130p17527290.html
>> > Sent from the Ant - Dev mailing list archive at Nabble.com.
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>> > For additional commands, e-mail: dev-help@ant.apache.org
>> >
>> >
>>
>>
>> --
>> Xavier Hanin - Independent Java Consultant
>> http://xhab.blogspot.com/
>> http://ant.apache.org/ivy/
>> http://www.xoocode.org/
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
>> For additional commands, e-mail: dev-help@ant.apache.org
>>
>>
>
>
> --
> Xavier Hanin - Independent Java Consultant
> http://xhab.blogspot.com/
> http://ant.apache.org/ivy/
> http://www.xoocode.org/
>



-- 
Gilles Scokart

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message