Support direct-from-maven dependencies that need generated OSGi metadata
diff --git a/maven-bnd/Maven BND.launch b/maven-bnd/Maven BND.launch
new file mode 100644
index 0000000..cc5f8c9
--- /dev/null
+++ b/maven-bnd/Maven BND.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
+ <booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
+ <stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/org.eclipse.jetty.mirror" type="4"/> </resources>}"/>
+ <mapAttribute key="org.eclipse.debug.core.environmentVariables">
+ <mapEntry key="JAVA_HOME" value="${maven.build.java.home.17}"/>
+ <mapEntry key="PATH" value="${maven.bash.home}/../usr/bin${system_property:path.separator}${env_var:PATH}"/>
+ </mapAttribute>
+ <stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="${project_loc:/org.eclipse.oomph.incubator}/maven-bnd/build.log"/>
+ <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+ <listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
+ </listAttribute>
+ <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${maven.build.command}"/>
+ <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-DU -DX -DDtycho.debug.resolver=true -Dmaven.artifact.threads=16 -Duser.home=${system_property:user.home} -Dorg.eclipse.justj.p2.manager.args="-remote localhost:${project_loc:/org.eclipse.oomph.incubator}/maven-bnd/updates" -Dbuild.type=nightly -Ddash.projectId=tools.oomph clean verify"/>
+ <stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc:/org.eclipse.oomph.incubator}/maven-bnd"/>
+</launchConfiguration>
diff --git a/maven-bnd/SimRelMavenBnd.jenkinsfile b/maven-bnd/SimRelMavenBnd.jenkinsfile
new file mode 100644
index 0000000..0dc35aa
--- /dev/null
+++ b/maven-bnd/SimRelMavenBnd.jenkinsfile
@@ -0,0 +1,174 @@
+pipeline {
+ agent any
+
+ options {
+ buildDiscarder(logRotator(numToKeepStr: '10'))
+ disableConcurrentBuilds()
+ skipDefaultCheckout true
+ }
+
+ tools {
+ maven 'apache-maven-latest'
+ jdk 'openjdk-jdk17-latest'
+ }
+
+ environment {
+ PUBLISH_LOCATION = 'simrel-maven'
+ }
+
+ parameters {
+ choice(
+ name: 'BUILD_TYPE',
+ choices: ['nightly', 'milestone', 'release'],
+ description: '''
+ Choose the type of build.
+ Note that a release build will not promote the build, but rather will promote the most recent milestone build.
+ '''
+ )
+
+ booleanParam(
+ name: 'PROMOTE',
+ defaultValue: false,
+ description: 'Whether to promote the build to the download server.'
+ )
+ }
+
+ stages {
+ stage('Display Parameters') {
+ steps {
+ echo "BUILD_TYPE=${params.BUILD_TYPE}"
+ echo "PROMOTE=${params.PROMOTE}"
+ script {
+ env.PROMOTE = params.PROMOTE
+ env.BUILD_TYPE = params.BUILD_TYPE
+ }
+ }
+ }
+
+ stage('Git Checkout') {
+ steps {
+ script {
+ def gitVariables = checkout(
+ poll: false,
+ scm: [
+ $class: 'GitSCM',
+ branches: [[name: '*/master']],
+ doGenerateSubmoduleConfigurations: false,
+ submoduleCfg: [],
+ extensions: [
+ [$class: 'CloneOption', shallow: true],
+ [$class: 'SparseCheckoutPaths', sparseCheckoutPaths:[[$class:'SparseCheckoutPath', path:'maven-bnd/']]]
+ ],
+ userRemoteConfigs: [[url: 'https://git.eclipse.org/r/oomph/org.eclipse.oomph.incubator.git' ]]
+ ]
+ )
+
+ echo "$gitVariables"
+ env.GIT_COMMIT = gitVariables.GIT_COMMIT
+ }
+ }
+ }
+
+ stage('Initialize PGP') {
+ steps {
+ withCredentials([file(credentialsId: 'secret-subkeys.asc', variable: 'KEYRING')]) {
+ sh '''
+ gpg --batch --import "${KEYRING}"
+ for fpr in $(gpg --list-keys --with-colons | awk -F: \'/fpr:/ {print $10}\' | sort -u); do echo -e "5\ny\n" | gpg --batch --command-fd 0 --expert --edit-key ${fpr} trust; done
+ '''
+ }
+ }
+ }
+
+ stage('Build SimRel Maven BND') {
+ steps {
+ sshagent(['projects-storage.eclipse.org-bot-ssh']) {
+ dir('maven-bnd') {
+ withCredentials([
+ string(credentialsId: 'gpg-passphrase', variable: 'KEYRING_PASSPHRASE'),
+ string(credentialsId: 'gitlab-api-token', variable: 'GITLAB_API_TOKEN') ]) {
+ sh '''
+ if [[ $PROMOTE == false ]]; then
+ promotion_argument='-Dorg.eclipse.justj.p2.manager.args='
+ fi
+ mvn \
+ --no-transfer-progress \
+ $promotion_argument \
+ -Pgpg-sign \
+ -Dgpg.passphrase="${KEYRING_PASSPHRASE}" \
+ -Dorg.eclipse.justj.p2.manager.build.url=$JOB_URL \
+ -Dorg.eclipse.justj.p2.manager.relative=$PUBLISH_LOCATION \
+ -Dgit.commit=$GIT_COMMIT \
+ -Dbuild.id=$BUILD_NUMBER \
+ -Dbuild.type=$BUILD_TYPE \
+ -Ddash.projectId=tools.oomph \
+ -Ddash.fail=true \
+ -Ddash.iplab.token=$GITLAB_API_TOKEN \
+ clean \
+ verify
+ '''
+ }
+ }
+ }
+ }
+ }
+
+ stage('Start Repository Analysis') {
+ when {
+ expression {
+ params.PROMOTE
+ }
+ }
+ steps {
+ sshagent(['projects-storage.eclipse.org-bot-ssh']) {
+ script {
+ def repositories = sh(returnStdout: true, script: '''
+ ssh genie.oomph@projects-storage.eclipse.org '
+ cd /home/data/httpd/download.eclipse.org/oomph/
+ for i in $(find '${PUBLISH_LOCATION}' -name content.xml.xz); do [ ! -d $(dirname $i)/archive ] && echo $(dirname $i); done
+ exit 0
+ '
+ ''')
+
+ for (String repository : repositories.split("\\s")) {
+ echo "repository: '${repository}'"
+ build job: 'repository-analyzer-any',
+ parameters: [
+ booleanParam(name: 'PROMOTE', value: true),
+ booleanParam(name: 'TEST', value: false),
+ string(name: 'RELATIVE_LOCATION', value: "${repository}")
+ ],
+ wait: false
+ }
+ }
+ }
+ }
+ }
+
+ stage('Archive Results') {
+ steps {
+ archiveArtifacts 'maven-bnd/**'
+ }
+ }
+ }
+
+ post {
+ failure {
+ mail to: 'ed.merks@gmail.com',
+ subject: "[Oomph CI] Build Failure ${currentBuild.fullDisplayName}",
+ mimeType: 'text/html',
+ body: "Project: ${env.JOB_NAME}<br/>Build Number: ${env.BUILD_NUMBER}<br/>Build URL: ${env.BUILD_URL}<br/>Console: ${env.BUILD_URL}/console"
+ }
+
+ fixed {
+ mail to: 'ed.merks@gmail.com',
+ subject: "[Oomph CI] Back to normal ${currentBuild.fullDisplayName}",
+ mimeType: 'text/html',
+ body: "Project: ${env.JOB_NAME}<br/>Build Number: ${env.BUILD_NUMBER}<br/>Build URL: ${env.BUILD_URL}<br/>Console: ${env.BUILD_URL}/console"
+ }
+
+ cleanup {
+ deleteDir()
+ }
+ }
+}
\ No newline at end of file
diff --git a/maven-bnd/pom.xml b/maven-bnd/pom.xml
new file mode 100644
index 0000000..d4a2688
--- /dev/null
+++ b/maven-bnd/pom.xml
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <tycho-version>4.0.0-SNAPSHOT</tycho-version>
+ <gpg-keyname>2E8E9CF8</gpg-keyname>
+ <eclipse.repo>https://download.eclipse.org/releases/2022-12</eclipse.repo>
+ <justj.tools.repo>https://download.eclipse.org/justj/tools/updates/nightly/latest</justj.tools.repo>
+ <org.eclipse.storage.user>genie.oomph</org.eclipse.storage.user>
+ <org.eclipse.justj.p2.manager.args>-remote ${org.eclipse.storage.user}@projects-storage.eclipse.org:/home/data/httpd/download.eclipse.org/oomph</org.eclipse.justj.p2.manager.args>
+ <org.eclipse.justj.p2.manager.extra.args></org.eclipse.justj.p2.manager.extra.args>
+ <org.eclipse.justj.p2.manager.relative>simrel-maven-bnd</org.eclipse.justj.p2.manager.relative>
+ <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
+ <org.eclipse.justj.p2.manager.build.url>http://www.example.com/</org.eclipse.justj.p2.manager.build.url>
+ <build.type>nightly</build.type>
+ </properties>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>tycho-snapshots</id>
+ <url>https://repo.eclipse.org/content/repositories/tycho-snapshots</url>
+ </pluginRepository>
+
+ <pluginRepository>
+ <id>eclipse-maven-releases</id>
+ <url>https://repo.eclipse.org/content/repositories/releases</url>
+ </pluginRepository>
+
+ <pluginRepository>
+ <id>eclipse-cbi-releases</id>
+ <url>https://repo.eclipse.org/content/repositories/cbi-releases</url>
+ </pluginRepository>
+
+ <pluginRepository>
+ <id>dash-licenses-snapshots</id>
+ <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.dash</groupId>
+ <artifactId>license-tool-plugin</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>license-check</id>
+ <goals>
+ <goal>license-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <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>tycho-p2-publisher-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <target>
+ <artifact>
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.tp</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <classifier>Maven</classifier>
+ </artifact>
+ </target>
+ <executionEnvironment>JavaSE-17</executionEnvironment>
+ <environments>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>aarch64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>aarch64</arch>
+ </environment>
+ </environments>
+ </configuration>
+ </plugin>
+
+ <!--
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-p2-publisher-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.eclipse.tycho.extras</groupId>
+ <artifactId>tycho-eclipserun-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <executionEnvironment>JavaSE-11</executionEnvironment>
+ <dependencies>
+ <dependency>
+ <artifactId>org.eclipse.justj.p2</artifactId>
+ <type>eclipse-plugin</type>
+ </dependency>
+ <dependency>
+ <artifactId>org.apache.felix.scr</artifactId>
+ <type>eclipse-plugin</type>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <id>eclipse.repo</id>
+ <layout>p2</layout>
+ <url>${eclipse.repo}</url>
+ </repository>
+ <repository>
+ <id>justj.tools.repo</id>
+ <layout>p2</layout>
+ <url>${justj.tools.repo}</url>
+ </repository>
+ </repositories>
+ </configuration>
+ <executions>
+ <execution>
+ <id>promote</id>
+ <goals>
+ <goal>eclipse-run</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <argLine></argLine>
+ <appArgLine>
+ -consoleLog
+ -application org.eclipse.justj.p2.manager
+ -data @None
+ -nosplash
+ ${org.eclipse.justj.p2.manager.args}
+ -retain 5
+ -label "Jetty Updates"
+ -build-url ${org.eclipse.justj.p2.manager.build.url}
+ -root ${project.build.directory}/jetty-sync
+ -relative ${org.eclipse.justj.p2.manager.relative}
+ -version-iu org.eclipse.jetty.
+ -target-url https://download.eclipse.org/oomph
+ -promote ${project.build.directory}/repository
+ -timestamp ${build.timestamp}
+ -type ${build.type}
+ -breadcrumb "Jetty https://www.eclipse.org/Jetty"
+ -favicon https://raw.githubusercontent.com/eclipse-jetty/eclipse-jetty.github.io/master/favicon.ico
+ -title-image https://www.eclipse.org/jetty/common/images/jetty-logo.svg
+ -body-image https://raw.githubusercontent.com/eclipse-jetty/eclipse-jetty.github.io/master/favicon.ico
+ ${org.eclipse.justj.p2.manager.extra.args}
+ </appArgLine>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+
+ <modules>
+ <module>tp</module>
+ <module>site</module>
+ <module>promotion</module>
+ </modules>
+
+ <profiles>
+ <profile>
+ <id>promote</id>
+ <activation>
+ <property>
+ <name>promote</name>
+ <value>!false</value>
+ </property>
+ </activation>
+ <modules>
+ <module>promotion</module>
+ </modules>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
diff --git a/maven-bnd/promotion/pom.xml b/maven-bnd/promotion/pom.xml
new file mode 100644
index 0000000..50bd77f
--- /dev/null
+++ b/maven-bnd/promotion/pom.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2022 Eclipse contributors and others.
+
+This program and the accompanying materials
+are made available under the terms of the Eclipse Public License 2.0
+which accompanies this distribution, and is available at
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0
+-->
+<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>
+
+ <parent>
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven.promote</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho.extras</groupId>
+ <artifactId>tycho-eclipserun-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <executionEnvironment>JavaSE-11</executionEnvironment>
+ <dependencies>
+ <dependency>
+ <artifactId>org.eclipse.justj.p2</artifactId>
+ <type>eclipse-plugin</type>
+ </dependency>
+ <dependency>
+ <artifactId>org.apache.felix.scr</artifactId>
+ <type>eclipse-plugin</type>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <id>eclipse.repo</id>
+ <layout>p2</layout>
+ <url>${eclipse.repo}</url>
+ </repository>
+ <repository>
+ <id>justj.tools.repo</id>
+ <layout>p2</layout>
+ <url>${justj.tools.repo}</url>
+ </repository>
+ </repositories>
+ </configuration>
+ <executions>
+ <execution>
+ <id>promote</id>
+ <goals>
+ <goal>eclipse-run</goal>
+ </goals>
+ <phase>generate-sources</phase>
+ <configuration>
+ <argLine></argLine>
+ <appArgLine>
+ -consoleLog
+ -application org.eclipse.justj.p2.manager
+ -data @None
+ -nosplash
+ ${org.eclipse.justj.p2.manager.args}
+ -retain 5
+ -label "Maven Dependencies for SimRel"
+ -build-url ${org.eclipse.justj.p2.manager.build.url}
+ -root ${project.build.directory}/simrel-maven-bnd-sync
+ -relative ${org.eclipse.justj.p2.manager.relative}
+ -version-iu org.eclipse.oomph.maven.bnd.all.
+ -commit https://git.eclipse.org/c/oomph/org.eclipse.oomph.incubator.git/commit/?id=${git.commit}
+ -target-url https://download.eclipse.org/oomph
+ -promote ${project.basedir}/../site/target/repository
+ -timestamp ${build.timestamp}
+ -type ${build.type}
+ -breadcrumb "Oomph https://projects.eclipse.org/projects/tools.oomph"
+ -mapping simrel-maven->SimRel-Maven
+ -simrel-alias
+ ${org.eclipse.justj.p2.manager.extra.args}
+ </appArgLine>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/maven-bnd/site/category.xml b/maven-bnd/site/category.xml
new file mode 100644
index 0000000..1c67c26
--- /dev/null
+++ b/maven-bnd/site/category.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature id="org.eclipse.oomph.maven.bnd.all"/>
+ <feature id="org.eclipse.oomph.maven.bnd.all.source"/>
+</site>
diff --git a/maven-bnd/site/pom.xml b/maven-bnd/site/pom.xml
new file mode 100644
index 0000000..5cc85c6
--- /dev/null
+++ b/maven-bnd/site/pom.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.site</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-repository</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-p2-repository-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <repositoryName>Oomph SimRel Maven BND</repositoryName>
+ <includeAllDependencies>true</includeAllDependencies>
+ <skipArchive>true</skipArchive>
+ <xzCompress>false</xzCompress>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/maven-bnd/tp/Maven.target b/maven-bnd/tp/Maven.target
new file mode 100644
index 0000000..0303eff
--- /dev/null
+++ b/maven-bnd/tp/Maven.target
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?>
+<target name="MavenBNDSupplement" sequenceNumber="1">
+ <locations>
+ <location includeDependencyDepth="none" includeDependencyScopes="compile" includeSource="true" missingManifest="generate" type="Maven">
+ <feature id="org.eclipse.oomph.maven.bnd.all" label="Oomph Maven BND All" version="4.28.0.qualifier" provider-name="Eclipse Oomph Project">
+ <description>
+This feature's dependencies are pulled direction from Maven central.
+ </description>
+ <copyright>
+Copyright (c) 2023 Eclipse contributors and others.
+
+This program and the accompanying materials
+are made available under the terms of the Eclipse Public License 2.0
+which accompanies this distribution, and is available at
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0
+ </copyright>
+ <license url="https://www.eclipse.org/legal/epl-2.0/">Eclipse Foundation Software User Agreement
+
+November 22, 2017
+
+Usage Of Content
+
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION
+AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF
+THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE
+TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED
+BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY
+APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU
+MAY NOT USE THE CONTENT.
+
+Applicable Licenses
+
+Unless otherwise indicated, all Content made available by the Eclipse Foundation
+is provided to you under the terms and conditions of the Eclipse Public License
+Version 2.0 ("EPL"). A copy of the EPL is provided with this Content and is also
+available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL,
+"Program" will mean the Content.
+
+Content includes, but is not limited to, source code, object code, documentation
+and other files maintained in the Eclipse Foundation source code repository
+("Repository") in software modules ("Modules") and made available as
+downloadable archives ("Downloads").
+
+- Content may be structured and packaged into modules to facilitate
+ delivering, extending, and upgrading the Content. Typical modules may
+ include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and
+ features ("Features").
+- Each Plug-in or Fragment may be packaged as a sub-directory or JAR
+ (Java™ ARchive) in a directory named "plugins".
+- A Feature is a bundle of one or more Plug-ins and/or Fragments and
+ associated material. Each Feature may be packaged as a sub-directory in a
+ directory named "features". Within a Feature, files named "feature.xml" may
+ contain a list of the names and version numbers of the Plug-ins and/or
+ Fragments associated with that Feature.
+- Features may also include other Features ("Included Features"). Within a
+ Feature, files named "feature.xml" may contain a list of the names and
+ version numbers of Included Features.
+
+The terms and conditions governing Plug-ins and Fragments should be contained in
+files named "about.html" ("Abouts"). The terms and conditions governing Features
+and Included Features should be contained in files named "license.html"
+("Feature Licenses"). Abouts and Feature Licenses may be located in any
+directory of a Download or Module including, but not limited to the following
+locations:
+
+- The top-level (root) directory
+- Plug-in and Fragment directories
+- Inside Plug-ins and Fragments packaged as JARs
+- Sub-directories of the directory named "src" of certain Plug-ins
+- Feature directories
+
+Note: if a Feature made available by the Eclipse Foundation is installed using
+the Provisioning Technology (as defined below), you must agree to a license
+("Feature Update License") during the installation process. If the Feature
+contains Included Features, the Feature Update License should either provide you
+with the terms and conditions governing the Included Features or inform you
+where you can locate them. Feature Update Licenses may be found in the "license"
+property of files named "feature.properties" found within a Feature. Such
+Abouts, Feature Licenses, and Feature Update Licenses contain the terms and
+conditions (or references to such terms and conditions) that govern your use of
+the associated Content in that directory.
+
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL
+OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):
+
+- Eclipse Public License Version 1.0 (available at
+ http://www.eclipse.org/legal/epl-v10.html)
+- Eclipse Distribution License Version 1.0 (available at
+ http://www.eclipse.org/licenses/edl-v1.0.html)
+- Common Public License Version 1.0 (available at
+ http://www.eclipse.org/legal/cpl-v10.html)
+- Apache Software License 1.1 (available at
+ http://www.apache.org/licenses/LICENSE)
+- Apache Software License 2.0 (available at
+ http://www.apache.org/licenses/LICENSE-2.0)
+- Mozilla Public License Version 1.1 (available at
+ http://www.mozilla.org/MPL/MPL-1.1.html)
+
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO
+USE OF THE CONTENT. If no About, Feature License, or Feature Update License is
+provided, please contact the Eclipse Foundation to determine what terms and
+conditions govern that particular Content.
+
+Use of Provisioning Technology
+
+The Eclipse Foundation makes available provisioning software, examples of which
+include, but are not limited to, p2 and the Eclipse Update Manager
+("Provisioning Technology") for the purpose of allowing users to install
+software, documentation, information and/or other materials (collectively
+"Installable Software"). This capability is provided with the intent of allowing
+such users to install, extend and update Eclipse-based products. Information
+about packaging Installable Software is available at
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").
+
+You may use Provisioning Technology to allow other parties to install
+Installable Software. You shall be responsible for enabling the applicable
+license agreements relating to the Installable Software to be presented to, and
+accepted by, the users of the Provisioning Technology in accordance with the
+Specification. By using Provisioning Technology in such a manner and making it
+available in accordance with the Specification, you further acknowledge your
+agreement to, and the acquisition of all necessary rights to permit the
+following:
+
+1. A series of actions may occur ("Provisioning Process") in which a user may
+ execute the Provisioning Technology on a machine ("Target Machine") with the
+ intent of installing, extending or updating the functionality of an
+ Eclipse-based product.
+2. During the Provisioning Process, the Provisioning Technology may cause third
+ party Installable Software or a portion thereof to be accessed and copied to
+ the Target Machine.
+3. Pursuant to the Specification, you will provide to the user the terms and
+ conditions that govern the use of the Installable Software ("Installable
+ Software Agreement") and such Installable Software Agreement shall be
+ accessed from the Target Machine in accordance with the Specification. Such
+ Installable Software Agreement must inform the user of the terms and
+ conditions that govern the Installable Software and must solicit acceptance
+ by the end user in the manner prescribed in such Installable
+ Software Agreement. Upon such indication of agreement by the user, the
+ provisioning Technology will complete installation of the
+ Installable Software.
+
+Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
+
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the
+United States, other countries, or both.</license>
+ </feature>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-analysis-common</artifactId>
+ <version>9.5.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>9.5.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-queries</artifactId>
+ <version>9.5.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-queryparser</artifactId>
+ <version>9.5.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-sandbox</artifactId>
+ <version>9.5.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ <version>4.11.0</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ <instructions><![CDATA[
+Bundle-Name: Bundle ${mvnGroupId} : ${mvnArtifactId}
+version: ${version_cleanup;${mvnVersion}}
+Bundle-SymbolicName: ${mvnGroupId}.${mvnArtifactId}
+Bundle-Version: ${version}
+Import-Package: *
+Export-Package: *;version="${version}";-noimport:=true
+DynamicImport-Package: *
+-noextraheaders: true
+]]></instructions>
+ </location>
+ </locations>
+</target>
\ No newline at end of file
diff --git a/maven-bnd/tp/pom.xml b/maven-bnd/tp/pom.xml
new file mode 100644
index 0000000..4d1e56c
--- /dev/null
+++ b/maven-bnd/tp/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 Eike Stepper (Loehne, Germany) and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v2.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v20.html
+
+ Contributors:
+ Eike Stepper - initial API and implementation
+-->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <groupId>org.eclipse.oomph.maven-bnd</groupId>
+ <artifactId>org.eclipse.oomph.maven-bnd.tp</artifactId>
+ <packaging>eclipse-target-definition</packaging>
+</project>