0

I'm currently trying to build REDHAWK Explorer extensions with the source on github; however, when I try to run the Maven scripts on things, I get a missing repository error:

Caused by: org.eclipse.equinox.p2.core.ProvisionException: No repository found at http://download.redhawksdr.org/nxm-rcp/releases/1.0.

I see it is a repository hosted on redhawksdr.org; is this something that should be up and isn't? I know nxm point to a http://nextmidas.techma.com/; is this an internal plugin that was developed by the Redhawk team, and, as such, is it in the repo as well?

Furthermore, which pom.xmls should I be building from?

Netrunner
  • 3
  • 2

2 Answers2

0

Unfortunately, we haven't been able to host public p2 repositories. Those are placeholders for a future p2 repository.

You might be able to get around this by building all the repo's and installing them into your local maven repository.

To do this clone each of the maven repositories:

mil.jpeojtrs.sca
gov.redhawk.core
gov.redhawk.ide
gov.redhawk.codegen
gove.redhawk.ide.product

In each repository, as you've seen, you will find a releng folder.

Build by using the following command in this order:

mvn clean install

mil.jpeojtrs.sca/releng
gov.redhawk.core/releng/core
gov.redhawk.core/releng/rcp
gov.redhawk.ide/releng
gov.redhawk.codegen/releng
gov.redhawk.ide.product/releng

Hopefully, in the future we will get public p2 repository and you will not longer have to do these extra steps. Sorry for the inconvenience.

Erik Englund
  • 355
  • 2
  • 11
  • I encountered a new problem relatively quickly in: a jacorb repository missing as well; this time, I searched for it among the repositories in git, and couldn't find any relevant jacorb project. Google, however, shows results for a jacorb release 3.1, which I then edited the pom to use as a dependency. This seemed to get rid of this problem; however, a new one arose immediate (still mil.jpeojtrs.sca/releng). – Netrunner Nov 06 '13 at 20:07
  • A dependency `Missing requirement: idl.bulkio 1.9.0.qualifier requires 'package org.omg.CosEventChannelAdmin 0.0.0' but it could not be found`. Another quick Google seems to contain mostly Javadocs; am I missing something on my java classpath? – Netrunner Nov 06 '13 at 20:22
  • I forgot about that. Those classes / packages come from jacorb. We repackaged jacorb within a bundle. To avoid directly depending on jacorb we only added the org.omg.CosEventChannelAdmin package dependency. – Erik Englund Nov 08 '13 at 04:03
  • You may be able to do this using a Tycho POM first build. http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts Personally, I've never done it before, but it seems promising. – Erik Englund Nov 08 '13 at 04:07
0

The following maven pom.xml should help you build your jacorb OSGi bundle. This bundle specifies version 3.3.0 since RH 1.10 depends on that version, but you could probably modify it for your needs:

<project xmlns="http://maven.apache.org/POM/4.0.0">
<groupId>**yourGroupId**</groupId>
<modelVersion>4.0.0</modelVersion>
<artifactId>jacorb-osgi</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>jacORB OSGI bundle</name>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>1.4.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Name>${project.name}</Bundle-Name>
                    <Bundle-Version>3.3.0</Bundle-Version>
                    <Export-Package>org.omg.CosEventChannelAdmin;version="3.3.0", org.omg.CosEventComm;version="3.3.0"</Export-Package>
                    <Private-Package>org.omg.*,org.jacorb.*</Private-Package>
                    <Import-Package>!antlr,!antlr.*,!org.picocontainer,!org.picocontainer.defaults,!org.slf4j,!sun.security.jgss.spi,!org.tanukisoftware.wrapper,*</Import-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb</artifactId>
            <version>3.3</version>
            <exclusions>
                <exclusion>
                    <groupId>antlr</groupId>
                    <artifactId>antlr</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>picocontainer</groupId>
                    <artifactId>picocontainer</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-jdk14</artifactId>
                </exclusion>
    </exclusions>
    </dependency>
    <dependency>
            <groupId>org.jacorb</groupId>
            <artifactId>jacorb-services</artifactId>
            <version>3.3</version>
            <exclusions>
                <exclusion>
                    <groupId>antlr</groupId>
                    <artifactId>antlr</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>picocontainer</groupId>
                    <artifactId>picocontainer</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-jdk14</artifactId>
                </exclusion>
    </exclusions>
    </dependency>
</dependencies>
</project>

Locally install this bundle with:

mvn clean install

In the eclipse-mil.jpeojtrs.sca/releng/pom.xml remove the reference to redhawk.sdr.org jacorb repo in the project.properties section. Remove the jacorb p2 repository from the project.repositories section.

In the target platform configuration, you'll need to use the Tycho POM first build that Eric references, that will end up looking like this (note the bolded line):

<plugin>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>target-platform-configuration</artifactId>
    <version>${tycho-version}</version>
    <configuration>
      **<pomDependencies>consider</pomDependencies>**
      <environments>
        <environment>
          <os>linux</os>
          <ws>gtk</ws>
          <arch>x86</arch>
        </environment>

In mil.jpeojtrs.sca/plugins/idl.cf/META-INF/MANIFEST.MF, remove the bundle requirement for jacorb. The fact that it imports the COsEventChannelAdmin package should suffice since the bundle is already installed locally.

Finally, go to mil.jpeojtrs.sca/releng and run

mvn clean package

Just remember that if you're using maven3.1 or later, you need to change the version of tycho in the POM file to 18.1

Finally, install the zip file as an archive in eclipse and you should be all caught up on your mil.jpeojtrs.sca install.

Unfortunately... this doesn't get you anywhere with regards to your original question, reasked here since I can't leave comments...

Community
  • 1
  • 1
neil
  • 18
  • 4