Discussion:
[tycho-user] Error resolving touchpoint action
Jane Revak
2018-08-16 21:15:13 UTC
Permalink
We are  trying to create a P2 build for an Eclipse based product using tycho/maven technologies. One of the features we rely on contains and uses a touchpoint action. We are consuming this from another product as a supplier dependency. This product is built with a different build tool and so the extension point is under the plugin.xml.   When our build tries to find that touchpoint action it looks in the feature common.p2.manager  which is the feature that has both the plugin that has dependency on the touchpoint(with the p2.inf file) and includes the plugin that contains the touchpoint.   It is looking for the action in target/repository but this action is actually in common.p2.touchpoint.  What we can't figure out is how to point to this plugin directly or how to add this to the runtime via Tycho.  For instance is there somewhere in a POM we should list this dependency even though it's already in the plugin.xml?  Also, we've been told this touchpoint is only for installation time, so is there a way to tell Tycho to ignore it at build time?  We tried the "mvn verify" command but got the same result as when we used the "mvn install" command.  I have also tried adding it to my category.xml file to be sure it's added, but that didn't work either.  Any suggestions for resolving the error shown below?

the touchpoint p2.inf looks like this:
## Ensuring p2 touchpoint plugin installed before this plugin
metaRequirements.0.namespace=org.eclipse.equinox.p2.iu
metaRequirements.0.name=p2.touchpoint
metaRequirements.0.range=[0.0.0,5.0.0)

# During install phase,
#  1--> Set the p2 home dir during install phase of this plugin.
instructions.configure = \
p2.touchpoint.setp2home();

# Unset the p2 home dir during uninstall phase of this plugin.
instructions.uninstall = \
p2.touchpoint.unsetp2home();

This touchpoint action its called by a plugin.xml by an extension point:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.equinox.p2.engine.actions">
      <action
            class="p2.touchpoint.ProvisioningSetP2Home"
            name="setp2home"
            touchpointType="org.eclipse.equinox.p2.osgi"
            version="1.0.0">
      </action>
   </extension>
   <extension
         point="org.eclipse.equinox.p2.engine.actions">
      <action
            class="p2.touchpoint.ProvisioningUnSetP2Home"
            name="unsetp2home"
            touchpointType="org.eclipse.equinox.p2.osgi"
            version="1.0.0">
      </action>
   </extension>

</plugin>


The error says :
An error occurred while configuring the installed items
 session context was:(profile=DefaultProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Configure, operand=null --> [R]common.p2.manager 4.2.0.v20161115_2041, action=org.eclipse.equinox.internal.p2.engine.MissingAction).
 No action found for: common.p2.touchpoint.setp2home.

We are already using the p2 director plugin from tycho to build our P2<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<phase>package</phase>
<id>materialize-products</id>
<goals>
<goal>materialize-products</goal>
</goals>
<configuration>
<products>
<product>
<id>project</id>
<rootFolder>${rootFolder}</rootFolder>
</product>
</products>
</configuration>
</execution>
<execution>
<phase>pre-integration-test</phase>
<id>archive-products</id>
<goals>
<goal>archive-products</goal>
</goals>
<configuration>
<formats>
<linux>tar.gz</linux>
</formats>
</configuration>
</execution>
</executions>
</plugin>
Are we missing something in here?The thing is that we are not consuming/building our own touchpoint on our code, we are having issues with tycho to resolve this plugin.touchpoint that we are consuming as a supplier dependency.
Mickael Istria
2018-08-17 07:05:56 UTC
Permalink
Hi,

You'll need to specify a "standalone" runtime for tycho-p2-director to use
custom touchpoints. See
https://www.eclipse.org/tycho/sitedocs/tycho-p2/tycho-p2-director-plugin/materialize-products-mojo.html#directorRuntime

HTH
Jane Revak
2018-08-21 18:42:00 UTC
Permalink
Mickael,

 Thanks so much for the suggestion!  That was exactly the information my team needed and we are now past the error we had been stuck on for days!

Thanks again!


On Friday, August 17, 2018, 3:06:03 AM EDT, Mickael Istria <***@redhat.com> wrote:

Hi,
You'll need to specify a "standalone" runtime for tycho-p2-director to use custom touchpoints. See https://www.eclipse.org/tycho/sitedocs/tycho-p2/tycho-p2-director-plugin/materialize-products-mojo.html#directorRuntime
HTH

Loading...