Stephen McConnell wrote:


Looks like we have a problem with Cygwin again. I updated all of the scripts to use -classpath instead of -jar. This was done in order to move away from composite jar files (such as merlin cli and repository main) which themselves were creating a potential source or error if not built correctly.


However, the resulting classpath is too long when expanded in Cygwin. Prior to expansion the classpath is generated by magic as :

MERLIN_CLASSPATH=
$MERLIN_HOME/system/avalon/repository/jars/avalon-repository-main-SNAPSHOT.jar:


$MERLIN_HOME/system/avalon/repository/jars/avalon-repository-spi-2.0.0.jar:
$MERLIN_HOME/system/avalon/repository/jars/avalon-repository-api-SNAPSHOT.jar:


$MERLIN_HOME/system/avalon/repository/jars/avalon-repository-util-2.0.0.jar:

$MERLIN_HOME/system/avalon/util/jars/avalon-util-exception-1.0.0.jar:
$MERLIN_HOME/system/avalon/util/jars/avalon-util-env-1.1.1.jar:
$MERLIN_HOME/system/avalon/util/jars/avalon-util-i18n-1.0.0.jar:
$MERLIN_HOME/system/avalon/util/jars/avalon-util-criteria-1.1.0.jar:
$MERLIN_HOME/system/avalon/util/jars/avalon-util-defaults-SNAPSHOT.jar:
$MERLIN_HOME/system/commons-cli/jars/commons-cli-1.0.jar:
$MERLIN_HOME/system/avalon/merlin/jars/avalon-merlin-cli-SNAPSHOT.jar

I'm thinking that now may be the moment to update the repository package to add support for the transfer of a command line String[] to the repository InitialContext - and from this push cli handling (and class dependency) into the loaded factory.

This would eliminate the merlin-cli package which in turn would eliminate the necessity to re-install merlin. Instead the re-installation is as minimum, the setting of a single property - the merlin implementation artifact uri.

Just for reference - the above idea reduces the dependency question down to the following set of artifacts:


  artifact:jar:avalon/repository/avalon-repository-spi#2.0.0
  artifact:jar:avalon/repository/avalon-repository-api#SNAPSHOT
  artifact:jar:avalon/repository/avalon-repository-util#2.0.0
  artifact:jar:avalon/util/avalon-util-exception#1.0.0
  artifact:jar:avalon/util/avalon-util-env#1.1.1
  artifact:jar:avalon/util/avalon-util-i18n#1.0.0
  artifact:jar:avalon/util/avalon-util-criteria#1.1.0
  artifact:jar:avalon/util/avalon-util-defaults#SNAPSHOT

The above could be expressed as a path in a property file and the repository cli package can be updated to create an initial classloader using the path - without reference to any other packages. Providing we put a lot of attention into repository-cli with the objective of making it sufficiently generic so we don't need to touch it for the foreseeable future - I think we would have a good bootstrap solution.

Steve.

Any thoughts on this before I start dabbling?

Stephen.



--

|---------------------------------------|
| Magic by Merlin                       |
| Production by Avalon                  |
|                                       |
| http://avalon.apache.org              |
|---------------------------------------|

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to