Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Creating InstallableUnits on the fly
  • From: Krzysztof Daniel <kdaniel@xxxxxxxxxx>
  • Date: Wed, 03 Jul 2013 12:19:10 +0200
  • Delivered-to: p2-dev@xxxxxxxxxxx
  • Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAA3NCSVQICAjb4U/gAAAHIklEQVRYw61YTWwbxxX+SC5FmVr9mCuzNF1KlFFT5GphG1VaJYHSGE4QA+LNhwrJQb32XLg5BT4YaBAkhdGjz0JTQD4YuYiHIjHk2khqIKnlYLUUKcCmvYFD0FqHspcEKS61PbzlcMU/kyIHxGJ3uDvzzffe+96bcVRKBnppVaPq4lx07eadhit7p93nzl7RNA9XNapGSTNKWsO/9nfsPR1WAoDrBgEbwj6WUdIeZ4prqze21ldZ51x8ZXnlz6d/E2z5STfN0cFk7RiuGtWHX9784vrHHcb9618+P7v8ATcstBytA9C2gJiXNLjLzrbawEq7RmydiYbsTDdQ3htDzW1nW726/HZPJri29u2ZaKjd8vpyaqOkra3eQI/t6vLbO9sqcUP0sJu+AFWN6mfXrnew1McfLdmNxa4A1lZvGCWty4m410oO3T/88mZLNHPxlfj4LsO0vjdJrzE0ALbWV3+clX77pw87ENMVIIamalQTKdkOYmt9tQZld31vkmGKj+/GP1oCrEfEVwhfIiWfa9LGozu13ZftlHTTGGf//Oo/rpmZltLasw+9un/P7hzre5PdA2LoH5W5fn2og7sAiIUiSTXd/FosFGnyd3z+r8Sr+/cQ/XAwgBIpeS6+ckXyQfgDAGgyAMyLsXkRPygAkmo6dv4ywgetv1fTRG2/Tm2X/Pj4roUGwLzIewPW/TsBAL/DxeYP9WLWxll6PSWfwx9fO11v2R7hg7Y0NLU66MPO1C+gQ+GQceIITZAAmIELA3Pq+uJs9JgeoVFCyhp1Osqa3WTQ5FgoolQwGIaaF9dgi3YQ2702UB/qpsIqay1NBgDq08EAEgO+7kGYHoF+dZLCBwAc2Y3Kd7dMI9+XD1WNauXmP5RKUAxFaNyWhrAbqzw2Qjeel4eAkmB6XhbKY3Bw! E0cEZBp5C JKoyUolKNbUhWGiuT0vC/Z7eiw8SBo1/QSgVILimxMsSE0jD044CiBaCv/ORdzeRsapZF84shvWis9f5kU/cUNohp8/1YtZ5b/5REqOj+9aOeQHhTCRpu8XIhjrw2QuzlUBdCVXyxjB2PnLSvYFgOTmLWxasIafawB0JZfc/MoBLM1eiAV8CB/w3gBBFAM+aM+SavrsW30XaLzo1+/eFgPS3+/IVyQAPkd2Y31vEpiMj+9Ck/ViPZPEQhGlEkyk5EQK8c0aSQgifICwGBtI2JeNCYqU+PhuUk0nN2+ZgQtLs5b4JtU02YIopPwfH9+9Ivko6UKQRhcWLZUXpKERV78Fmiv3tPAgCUDJvhADPmiypSuanFTTRInVz9q8yHsDZGjys8IvW4SJe/cNyzTDwhFTx77vFMJbAET4eNGvF0Xe6wegKxIzAS/6gYv63dsMjekReLFRpXjRXxpIcuW9Ad4baKFDggRAdD9r4IaBYApJAd+c/o6o1KUTU3b5OZQ47ZlhXmzQayaSFHH1xyNEmX3Pyw0LnuNz+i9bhMn0CDwAkWBJDQmVKROJpKOs0WJKJ6YGkFxpl1k1qvu+U+6haIsSzO7LGaeu5FokVxaqVkqx1HwQBVq7fM6qJU0mTC2n7IDjKOVHs4ToSg6CxIv+0okp0yOQIPGiv9235EPlsZEOzvR6QORMppHfL7TaM2iyruSGnz+1lKbm18Qi43K/UGX0dDZZp/MhwvE4Uww9USh//f5i9FCU2Uvs9sWJruTUafG0x6jsb7uHosRW1T/VW5QRFNqzKgDJf9kwPFy+RcFfq7UPyUENX3Lzlpl98Whh8bQnWkmnK4A7EnH1GvY/rv2bakV1uq4uj8pcjDtkLxIhmlgvZpFxWp3hA9ZJFf5M2GsCbkQAVNJp18xMz6ljdGFRtW3vayRNeLg87w3oyNHqY6GIfvdQBc2LfqLKIkyQxFp1ZZ4EarB6AzS6sMjOGET3s2Q2D! SzS4ipkoD DqFYUgNTsToeG9AT2cdQ9FTcA08sad793vvY/QRM9RFvrfTUd2w5HdoFTFdkJ1C2acVFFYtiOFrBVlDE1tuCkHN+H4+SWAyjdfdyj12zKkVIIIBAFA8KnT4igwE/Y+zhSZt5LJqPKqdfrr/9pyH0m8i3OV0tZpiXHne+7Spd4YIo8ZXVhklBCambDXVnJY0zdEO6Fhud08OUY6wr37hvu99weg1K/u33t1/x4dwT7OFFVTslKs6EfGaQ91ZixCQznfwU1Q/qGb4UuX3JHenZpOx+1nl4Ts7PIHAPQn2RGqdcJUwzsBp44c4ET4YOT4HNsV7ftOscN/ovxMNNQu5gG4rn5ytfVhyk+5Pd/JxsNGLXdq+tzxCfeT/PFjpa2hY/6hY/5fT43sPy9AkyFO8sFfufnpBjR0iJtIyTtabrpU+vmhfCIadHLennVoaVYaXVicCXvZRpPkG5aDS6EHCnkSlbD2mpDQkKV2tlU2YCIlL81Kn127/smnf2s56f8BT1i2ky/8xFYAAAAASUVORK5CYII=
  • List-archive: <https://dev.eclipse.org/mailman/private/p2-dev>
  • List-help: <mailto:p2-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://dev.eclipse.org/mailman/listinfo/p2-dev>, <mailto:p2-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://dev.eclipse.org/mailman/options/p2-dev>, <mailto:p2-dev-request@eclipse.org?subject=unsubscribe>
  • Organization: Red Hat

So this is the code that I've got right now:

// create dropletIU, add it to the repository and to the change request
InstallableUnit dropletIU = new InstallableUnit();
			dropletIU.setVersion(Version.create("1.0.0"));
dropletIU.setId(repository.getLocation().toString());
			dropletIU.setCapabilities(new IProvidedCapability[]
{MetadataFactory.createProvidedCapability("droplet", dropletIU.getId(),
dropletIU.getVersion())});
changeRequest.add(dropletIU);
repository.addInstallableUnits(Arrays.asList((IInstallableUnit)
dropletIU));


//and then, for each unit found in the repo (except droplet unit)

// each bundle should depend on a parent droplet
List<IRequirement> listOfRequirements = new
ArrayList<IRequirement>(iu.getMetaRequirements());
				listOfRequirements.add(MetadataFactory.createRequirement("droplet",
dropletIU.getId(), new VersionRange(dropletIU.getVersion(), true,
dropletIU.getVersion(), true), null, false, true, true));

((InstallableUnit)
iu).setMetaRequiredCapabilities(listOfRequirements.toArray(new
IRequirement[] {}));

and then, the parent droplet should depend on the bundle:
req.add(MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), new VersionRange(iu.getVersion(), true, iu.getVersion(), true), null, false, true, true));
changeRequest.add(iu);


The plan fails because of:Status ERROR: org.eclipse.equinox.p2.director
code=0 Software being installed: Ac 1.0.0.201307021158 (ac.feature.jar
1.0.0.201307021158) null
   Status ERROR: org.eclipse.equinox.p2.director code=0 Missing
requirement: file:/tmp/droplets/ac_up/ 1.0.0 requires
'file:/tmp/droplets/ac_up/ [1.0.0]' but it could not be found null
   Status ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy
dependency: null children=[Status ERROR: org.eclipse.equinox.p2.director
code=0 From: Ac 1.0.0.201307021158 (ac.feature.jar 1.0.0.201307021158)
null Status ERROR: org.eclipse.equinox.p2.director code=0 To: droplet
file:/tmp/droplets/ac_up/ [1.0.0] null]

What am I doing wrong? Are installable units without artifacts supported
at all?
-- 
Krzysztof Daniel <kdaniel@xxxxxxxxxx>
Red Hat



Back to the top