2) Sample 'assemblies'. At the moment most of the samples have a
'platform assembly' project which copies all the jars required to run
the sample into a target directory and provides some minimal
configuration. I think it might be a good idea to package the
platforms as tar and/or zip files and make them available along with
the sample jars. I think the right way to do this is probably (I'd
like advice on this, I'm definitely not a Maven expert) to change the
platform assembly projects to use the maven assembly plugin to create
zip/tar files. I'll raise a JIRA as a sub task of 173 if you think
this is the right thing to do.
Creating the zip/tar is certainly one possible solution. If we decide
to go that route then the first mechanism that comes to my mind is the
maven-assembly-plugin (but I'm no maven expert either). I'm not
opposed to building the zip/tar of the platform assemblies - but I
wonder if it is really necessary.
I am beginning to think it probably isn't possible :-).
I spent some time trying to work out how to generate a platform zip for
the blog sample. Generating the zip using the assembly plugin is
straightforward enough but I ran into problems when the apache-release
process checks the licenses. I think it's checking for META-INF/LICENCE
inside every jar in the zip. Of course it doesn't find them for equinox
platform jars - so it chokes.
A better plan would be to make a standalone-assembly project that will
create a zip that just has a pom.xml (the same as the one in the the
blog-assembly project) and the platform configuration files
(configuration/config.ini). The zip could be extracted into say /tmp,
then 'mvn install' should create the whole platform as long as the user
have maven and java installed. I have this working perfectly. To create
the zip I run:
mvn install -Papache-release
from within the standalone-assembly project, the zip file is created
and installed in .m2/repository. Great.
However - this won't work as part of build of the full tree, the problem is:
[INFO] [assembly:single {execution: source-release-assembly}]
[INFO] Skipping the assembly in this project because it's not the
Execution Root
so, the zip file will never be built.
Is there another way to do this? Or am I missing something obvious? If
not I think we just have to say that people who want to run the samples
have to check out and build Aries - this seems less than ideal to me. My
standalone-assembly project is not checked in, I can do so if anyone
else wants to look at this.
Zoe
I appreciate this might be disruptive, but IMO it's best to have (what
I think is necessary) disruption done sooner rather than later.
Please do comment on this proposal - I've tried to mark the changes
with 'TODO' to help.
Thanks,
Jeremy