harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stepan Mishura" <stepan.mish...@gmail.com>
Subject Re: [general] Managing dependencies: Antlib for Maven 2.0, Ivy or Ant only (i.e. Harmony specific way)?
Date Thu, 12 Apr 2007 08:54:19 GMT
Current resolution:
A dependency framework that is based on ANT only was added to
build-and-test infra at r527838. The framework is result of merging
class library approach and newly proposed approach from [1] with some
The current implementation is aimed:
-provide unified approach for downloading and storing external resources
-be simple and clear
-use only ANT tasks/types (i.e. get rid of using antcontrib)

Definitely it will be improved. So any suggestions, ideas, help in
testing, criticism are highly appreciated.

Here are some brief details about the current implementation:
each external resource is described in 'parameters.xml' file by the
set of properties:
parameters.external.<resorce_name>.<resource_property> (that was
suggested in [1]). The framework iterates over property set
(parameters.external.*.file). I wasn't able to find "standard way" to
make ANT to iterate over propertyset so I've implemented the first
approach that work for me but I assume there might be more elegant
solution. So it checks if the resource was downloaded or not. If it is
absent it is downloaded to depend/<resource_dir> directory. If there
is md5 check specified the framework verifies it.

[1] http://issues.apache.org/jira/browse/HARMONY-3501


On 4/3/07, Stepan Mishura wrote:
> Hi all,
> I'd like to hear opinions about choosing a way for managing library
> dependencies.
> Currently I'm reviewing proposal for improving build-and-test infra
> [1][2]. One of declared features according to the proposal is:
>  "Implemented Approach to share External Library Dependencies between different
>   Test Suites allows to perform external dependencies fetching in one place by
>   one means and to save time and internet traffic."
> And the implementation [2] of the proposal contains a set of ANT
> macros/targets that does library dependencies management for testing
> suites. Briefly, a test suite may have a number of dependencies on
> external libraries. It is proposed for suite to use parameters.xml
> file to declare them. And the infra provides a common way for
> downloading, unpacking and storing them in a 'local libraries
> repository'. For example a suite can declare dependency on
> 'ant-contrib' in the following way:
> <parameters>
>    <external>
>        <ant-contrib
>            jar="ant-contrib-1.0b3.jar"
>            url="http://kent.dl.sourceforge.net/sourceforge/ant-contrib/ant-contrib-1.0b3-bin.zip"
>            md5="c5a75fc28cbc52f09bd43b5506978601"
>        />
>    </external>
> </parameters>
> Alexander, could you add more details if my description is incomplete
> (or not quite incorrect)?
> Taking into account that build-and-test is going to grow I agree with
> the proposal [1] (that we need common solution for managing library
> dependencies). And I think that the proposal may be a good moment for
> reconsidering library dependencies management. Currently Class
> library, DRL VM and build-and-test infra use ANT tasks to manage
> external dependencies in similar way: check whether a library exists,
> if not – download it. Within Harmony we have subproject that also is
> aimed to resolve the issue with libraries [3]. Also Maven was
> mentioned in several discussions but I don't remember any proposal for
> migrating to it.
> I have browsed through documentation for Antlib for Maven 2.0[4] and
> Ivy[5] and it seems for me that they may help us to find a common
> approach for Harmony that can be tested with the build-and-test infra.
> And class library with DRL VM will migrate later.
> So the question is: are we OK with the current state (no common
> approach and tool) and develop and support a set of ANT tasks that
> covers needs of the build-and-test infra. Or does it make sense to
> look for 'standard' solution (Antlib for Maven 2.0, Ivy or something
> else)? I've red through several recommendations of the Web but … I
> have no experience with using Maven or Ivy. So it is hard for me to
> make deliberate choose.
> Thoughts? Recommendations?
> [1] http://mail-archives.apache.org/mod_mbox/harmony-dev/200703.mbox/%3ce09a11790703262343m576dee90j5a59d52e14290274@mail.gmail.com%3e
> [2] http://issues.apache.org/jira/browse/HARMONY-3501
> [3] http://svn.apache.org/viewvc/harmony/enhanced/common_resources/
> [4] http://maven.apache.org/ant-tasks.html
> [5] http://incubator.apache.org/ivy/index.html
> Thanks,
> Stepan Mishura
> Intel Enterprise Solutions Software Division

View raw message