NAME
Debian::Javahelper::Eclipse - Eclipse Helper Library.
SYNOPSIS
use Debian::Javahelper::Eclipse;
my @orbitdeps = ();
push(@orbitdeps, {
EOB_SYM_NAME => 'org.apache.commons.net',
EOB_SYS_JAR => '/usr/share/java/commons-net2.jar'});
#...
# Install the feature to "$dropins/$name"
install_zipped_feature($zip, "$dropins/$name");
# and symlink the following orbitdeps.
install_zipped_feature($zip, "$dropins/$name", @orbitdeps);
DESCRIPTION
This module is used by the eclipse related javahelpers to share common
code.
Please note this API is not stable and backwards compatibility is not
guaranteed at the current time. Please contact the maintainers if you
are interested in a stable API.
Definitions
A bundle refers to a jar file. An orbit dependency (a.k.a orbitdep) is
a bundle, which is used by eclipse or one of its features without being
a part of eclipse or said feature.
This module keeps track of bundles via hashes; see the EOB_* constants
for relevant keys (and their expected values).
Constants
EOB_SYM_NAME
Key for hashes to fetch the symbolic name of a bundle.
EOB_BUNDLE_VERSION
Key for hashes to fetch the version of a bundle.
EOB_SYS_JAR
Key for hashes to fetch the path to the system installed jar file.
Only valid for an orbit dependency and cannot be used with
manifests.
Methods
install_zipped_feature($fzip, $loc[, $orbitdeps[, $package, $needs]])
Unpacks the zipped feature $fzip into $loc, which should be a
subfolder of a dropins folder (e.g.
/usr/share/eclipse/dropins/emf). This can also be used to install
the feature into a "build environment". In this case it should be
installed into the same folder as the SDK is (this folder is
usually called "SDK").
If $orbitdeps is present, it should be an ARRAY ref containing
orbit dependencies, which will be symlinked after unpacking. This
sub only needs the EOB_SYM_NAME and EOB_SYS_JAR to be set and
valid. Orbit dependencies not present in the installed folder will
be ignored, so it is safe to have unrelated orbit dependencies in
the ARRAY ref.
If $package and $needs are present, the former should be the name
of a debian package and the latter a hashref. The sub will populate
the $needs hashref with which orbit dependencies are used by the
package. The $needs hashref can be re-used in multiple calls to
this sub.
Keys in $needs will be the path to the orbit jar's real location
(EOB_SYS_JAR) and the value a new hashref. This hashref has as keys
the names of packages and as values 1. The $needs is used by
jh_installeclipse to populate the ${orbit:Depends} variables for
packages.
AUTHOR
Niels Thykier <niels@thykier.net>
COPYRIGHT AND LICENSE
Copyright 2010 by Niels Thykier
This module is free software; you may redistribute it and/or modify it
under the terms of GNU GPL 2.