[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] touchpoint actions and feature artifacts

Hi Simon,

Simon Kaegi wrote:

Are you looking at the feature.jar or feature.group IU?


I was looking to get a hold of the feature.jar. That code was an attempt to get the feature.jar via featureIU.getArtifacts()[0].



Also, if you're using a feature.jar to deliver content be aware that there is a filter [ (org.eclipse.update.install.features=true) ] .


IMO you're better off delivering the content in a native iu although you'll have to author it yourself.


I am now using a bundle IU to deliver the content. I'm working through getting a hold of the bundle.jar (to get some files out of it) and have the following code (the following is intended to result in a File that is the bundle.jar associated with the iu):


           IArtifactKey artifactKey = iu.getArtifacts()[0];

           IFileArtifactRepository downloadCache;
           try {
               downloadCache = Util.getDownloadCacheRepo();
           } catch (ProvisionException e) {
               return e.getStatus();
           }
           File fileLocation = downloadCache.getArtifactFile(artifactKey);

(This is obviously modeled after code that exists in other actions).

In my context I'm seeing (install phase) the above gets the artifactKey (for the bundle jar) and the downloadCache...but the downloadCache.getArtifactFile(artifactKey) returns null instead of a real File. I can see that the downloadCache points to the p2/org.eclipse.equinox.p2.core/cache area, and I don't see the jar file in the cache on disk.

Any ideas about why this doesn't work or pointers would be appreciated.

Scott

-Simon


Inactive hide details for Scott Lewis ---05/20/2009 09:29:25 PM---Question:Scott Lewis ---05/20/2009 09:29:25 PM---Question:



From: Scott Lewis <slewis@xxxxxxxxxxxxxxxxx>

To: 	
P2 developer discussions <p2-dev@xxxxxxxxxxx>

Date: 	
05/20/2009 09:29 PM

Subject: 	
[p2-dev] touchpoint actions and feature artifacts

------------------------------------------------------------------------



Question:

I'm creating a new touchpoint, and inside an action within this
touchpoint I have code that looks like this:

       IInstallableUnit iu = (IInstallableUnit) parameters
               .get(ActionConstants.PARM_IU);

       if (iu.getArtifacts() == null || iu.getArtifacts().length == 0)
           return Status.OK_STATUS;

       IArtifactKey artifactKey = iu.getArtifacts()[0];

the intention here is to get the artifact (jar) and then mess with it
(actually to get some stuff out of it but that's not material to this
question).

The problem I'm experiencing is that when the iu is a *feature* the call
to iu.getArtifacts() returns null and so

       if (iu.getArtifacts() == null || iu.getArtifacts().length == 0)
           return Status.OK_STATUS;

  is executed and my action doesn't do what I want it to do.

Obviously this isn't what is desired. Is there some other pattern of
code to use to access the feature jar artifact from inside the action? Or is it necessary to always put these things in a bundle (rather than a
feature)? I have verified that the feature jar exported to the repo
contains the artifacts that I'm looking for, so if I could get to the
feature.jar artifact then I would be there I believe.


Thanksinadvance for any info.

Scott



_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev


------------------------------------------------------------------------

_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev