-1

I have a cross-platform Tycho build running on Mac OS X that produces Windows, Mac and a p2 repo outputs.

Generally all is fine except that the Windows RCP does NOT get configured with the update repo URL details from my p2.inf addRepository instructions (and so p2 update fails) - it DOES for the Mac OS X app... which seems suspicious... why one and not the other?!

Is this a Tycho bug anyone might've come across? (I'm currently using Tycho 0.13.0, nervous about switching versions..) Or do I need explicit instructions for this to get applied to the Windows build?

It'll probably help to include some POMs here...

Here's the POM from the product project:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>com.myapp.main.product</artifactId>

<packaging>eclipse-repository</packaging>

<name>my product</name>

<parent>
    <groupId>com.myapp</groupId>
    <artifactId>parent</artifactId>
    <version>1.9.0-SNAPSHOT</version>
    <relativePath>../com.myapp.parent</relativePath>
</parent>

<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-director-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
                <execution>
                    <id>materialize-products</id>
                    <goals>
                        <goal>materialize-products</goal>
                    </goals>
                </execution>
                <execution>
                    <id>archive-products</id>
                    <goals>
                        <goal>archive-products</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

<!-- SEE: http://dev.eclipse.org/mhonarc/lists/tycho-user/msg00362.html
     SEE: https://issues.sonatype.org/browse/TYCHO-300 -->

        <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/products/com.myapp.main.product/icons</outputDirectory>
              <resources>
                <resource>
                  <directory>icons</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
  </plugins>
</build>

<version>1.9.0-SNAPSHOT</version>
</project>

And the parent POM:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.myapp</groupId>
<artifactId>parent</artifactId>
<version>1.9.0-SNAPSHOT</version>

<packaging>pom</packaging>

<modules>
    <module>../com.myapp.doc</module>

    <module>../com.myapp.lots.of.plugins</module>

    <module>../com.myapp.main</module>
    <module>../com.myapp.main.nl</module>
    <module>../com.myapp.branding</module>
    <module>../com.myapp.branding.nl</module>

    <module>../com.myapp.feature.platform</module>
    <module>../com.myapp.feature.core</module>
    <module>../com.myapp.main.product</module>
</modules>

<properties>
    <tycho-version>0.13.0</tycho-version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>${tycho-version}</version>
            <extensions>true</extensions>
        </plugin>

        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
                <resolver>p2</resolver>
                <environments>
                    <environment>
                         <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86</arch>
                    </environment>
                     <environment>
                        <os>macosx</os>
                        <ws>cocoa</ws>
                        <arch>x86</arch>
                    </environment>
                     <environment>
                        <os>macosx</os>
                        <ws>carbon</ws>
                        <arch>x86</arch>
                    </environment>
<!-- 64 bit platforms
                    <environment>
                        <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86_64</arch>
                    </environment>
-->
                     <environment>
                        <os>macosx</os>
                        <ws>cocoa</ws>
                        <arch>x86_64</arch>
                    </environment>
                </environments>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>

    <!-- MacOS specific vm arguments for UI testing -->
    <profile>
        <id>osx</id>
        <activation>
            <property>
                <name>java.vendor.url</name>
                <value>http://www.apple.com/</value>
            </property>
        </activation>
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.tycho</groupId>
                        <artifactId>tycho-surefire-plugin</artifactId>
                        <version>${tycho-version}</version>
                        <configuration>
                            <appArgLine>-XstartOnFirstThread</appArgLine>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </profile>

    <profile>
      <id>coverage</id>
        <activation>
            <property>
                <name>coverage</name>
            </property>
        </activation>
        <properties>
            <emma.session.out.file>${project.build.directory}/emma/${project.artifactId}.es</emma.session.out.file>
            <emma.filter>com.myapp.*</emma.filter>
            <eclemma.instrument.bundles>com.myapp.backup.tests,com.myapp.common.tests,com.myapp.model.tests</eclemma.instrument.bundles>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <id>attach-artifacts</id>
                            <phase>package</phase>
                            <goals>
                                 <goal>attach-artifact</goal>
                            </goals>
                            <configuration>
                                <artifacts>
                                    <artifact>
                                        <file>${emma.session.out.file}</file>
                                        <type>es</type>
                                    </artifact>
                                </artifacts>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.sonatype.tycho</groupId>
                    <artifactId>maven-osgi-test-plugin</artifactId>
                    <version>${tycho-version}</version>
<!--
                     <configuration>
                        <systemProperties combine.children="append">
                            <eclemma.help>true</eclemma.help>
                            <emma.session.out.file>${emma.session.out.file}</emma.session.out.file>
                            <emma.filter>${emma.filter}</emma.filter>
                            <eclemma.instrument.bundles>${eclemma.instrument.bundles}</eclemma.instrument.bundles>
                        </systemProperties>
                        <frameworkExtensions>
                            <frameworkExtension>
                                <groupId>org.eclemma.runtime.equinox</groupId>
                                <artifactId>org.eclemma.runtime.equinox</artifactId>
                                <version>1.1.0.200908261008</version>
                            </frameworkExtension>
                        </frameworkExtensions>
                    </configuration>
 -->
                     <configuration>
                        <skip>${skipFunctional}</skip>
                        <useUIHarness>true</useUIHarness>
                        <useUIThread>false</useUIThread>
                        <product>org.eclipse.sdk.ide</product>
                        <application>org.eclipse.ui.ide.workbench</application>
                        <argLine>-Xmx512M</argLine>
                        <systemProperties combine.children="append">
                            <emma.session.out.file>${emma.session.out.file}</emma.session.out.file>
                            <emma.filter>${emma.filter}</emma.filter>
                            <eclemma.instrument.bundles>${emma.instrument.bundles}</eclemma.instrument.bundles>
                        </systemProperties>
                        <frameworkExtensions>
                            <frameworkExtension>
                                <groupId>org.eclemma.runtime.equinox</groupId>
                                <artifactId>org.eclemma.runtime.equinox</artifactId>
                                <version>1.1.0.200908261008</version>
                            </frameworkExtension>
                        </frameworkExtensions>
                        <application>org.eclipse.ui.ide.workbench</application>
                        <dependencies>
                            <dependency>
                                <type>p2-installable-unit</type>
                                <artifactId>org.eclipse.sdk.ide</artifactId>
                                <version>0.0.0</version>
                            </dependency>
                        </dependencies>
                    </configuration>

                 </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

<repositories>
    <repository>
        <id>helios-platform</id>
        <layout>p2</layout>
        <url>${project.baseUri}../../../../targetplatform/org.eclipse.platform-3.7.1</url>
    </repository>
    <repository>
        <id>myapp-targetplatform</id>
        <layout>p2</layout>
        <url>${project.baseUri}../../../../targetplatform/myapp-targetplatform</url>
    </repository>
</repositories>

</project>
Justin
  • 128
  • 1
  • 6
  • This question is not useful: Necessary information is missing (like how is the p2.inf integrated into the build), lots of unrelated information (like complete instead of stripped down POMs) and using a version that is 1 1/2 years old... – oberlies Apr 22 '13 at 06:43
  • Yes, overcooked it with too much info, just trying to be helpful and avoid 'Please provide more info' comments :) Had tried moving from 0.13.0 to 14/15 but it wouldn't work hence sticking with what worked due to time constraints, now smoothly migrated to 0.17.0 though – Justin Apr 25 '13 at 12:06
  • Still, you could have tried to isolate the problem by removing all configuration that is not necessary to reproduce the problem. Often, this even helps to find the root cause... – oberlies Apr 25 '13 at 12:42

1 Answers1

0

Upgraded Tycho to 0.17.0 but it turns out the issue indeed has nothing to do with Tycho - I realized I've tweaked the location properties on Windows in an attempt to prepare to support installation into c:\Program Files post-XP with UAC:

-Dosgi.instance.area=@user.home/Application Data/myapp
-Dosgi.configuration.area=@user.home/Application Data/myapp/.configuration

However moving the osgi.configuration.area out of the installation folder (which defaults to c:\myapp :P) is what causes my p2 problem.

Justin
  • 128
  • 1
  • 6