Initial commit

This commit is contained in:
Stanislav Ochotnicky 2011-05-06 12:38:49 +02:00
parent 50de21b9ea
commit 55dfddf3af
6 changed files with 488 additions and 0 deletions

2
.gitignore vendored
View File

@ -0,0 +1,2 @@
/maven-repo.tar.bz2
/tycho-0.10.0.tar.xz

View File

@ -0,0 +1,192 @@
From 1fc5ec4dcccd0951860f9db6f485fd3c00a4a684 Mon Sep 17 00:00:00 2001
From: Stanislav Ochotnicky <sochotnicky@redhat.com>
Date: Tue, 29 Mar 2011 17:58:43 +0200
Subject: [PATCH] Remove tycho-testing-harness
It needs maven2 parts to build, but we need depmap for other parts of tycho.
Thus we disable it for now and this is not a big deal because we are not
running tests anyway (yet).
---
maven-osgi-compiler-plugin/pom.xml | 10 ++++------
maven-osgi-packaging-plugin/pom.xml | 10 ++++------
maven-tycho-plugin/pom.xml | 6 ------
pom.xml | 1 -
tycho-osgi-components/pom.xml | 10 ++++------
tycho-p2/tycho-p2-director-plugin/pom.xml | 6 ------
tycho-p2/tycho-p2-publisher-plugin/pom.xml | 6 ------
tycho-release/tycho-versions-plugin/pom.xml | 8 +-------
8 files changed, 13 insertions(+), 44 deletions(-)
diff --git a/maven-osgi-compiler-plugin/pom.xml b/maven-osgi-compiler-plugin/pom.xml
index 6e55905..9d0979a 100644
--- a/maven-osgi-compiler-plugin/pom.xml
+++ b/maven-osgi-compiler-plugin/pom.xml
@@ -64,18 +64,16 @@
<artifactId>tycho-compiler-jdt</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.maven.plugin-testing</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/maven-osgi-packaging-plugin/pom.xml b/maven-osgi-packaging-plugin/pom.xml
index d7faeac..7fc5e5a 100644
--- a/maven-osgi-packaging-plugin/pom.xml
+++ b/maven-osgi-packaging-plugin/pom.xml
@@ -24,12 +24,6 @@
<artifactId>tycho-equinox</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>commons-lang</groupId>
@@ -41,6 +35,10 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
</dependency>
<dependency>
diff --git a/maven-tycho-plugin/pom.xml b/maven-tycho-plugin/pom.xml
index 5f6c55e..af1ea97 100644
--- a/maven-tycho-plugin/pom.xml
+++ b/maven-tycho-plugin/pom.xml
@@ -65,12 +65,6 @@
<artifactId>maven-plugin-testing-harness</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/pom.xml b/pom.xml
index 7197d73..14cce0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -509,7 +509,6 @@
<module>tycho-equinox</module>
<module>tycho-bootstrap-maven-plugin</module>
<module>tycho-osgi-components</module>
- <module>tycho-testing-harness</module>
</modules>
</profile>
diff --git a/tycho-osgi-components/pom.xml b/tycho-osgi-components/pom.xml
index 8967ed4..1bb9d77 100644
--- a/tycho-osgi-components/pom.xml
+++ b/tycho-osgi-components/pom.xml
@@ -50,6 +50,10 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
</dependency>
<dependency>
@@ -76,12 +80,6 @@
</dependency>
<dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
diff --git a/tycho-p2/tycho-p2-director-plugin/pom.xml b/tycho-p2/tycho-p2-director-plugin/pom.xml
index 5340831..85357dc 100644
--- a/tycho-p2/tycho-p2-director-plugin/pom.xml
+++ b/tycho-p2/tycho-p2-director-plugin/pom.xml
@@ -41,12 +41,6 @@
</dependency>
<dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
diff --git a/tycho-p2/tycho-p2-publisher-plugin/pom.xml b/tycho-p2/tycho-p2-publisher-plugin/pom.xml
index f736ff1..ee2fb63 100644
--- a/tycho-p2/tycho-p2-publisher-plugin/pom.xml
+++ b/tycho-p2/tycho-p2-publisher-plugin/pom.xml
@@ -37,12 +37,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-booter</artifactId>
</dependency>
diff --git a/tycho-release/tycho-versions-plugin/pom.xml b/tycho-release/tycho-versions-plugin/pom.xml
index 24a0275..e9274a8 100644
--- a/tycho-release/tycho-versions-plugin/pom.xml
+++ b/tycho-release/tycho-versions-plugin/pom.xml
@@ -28,12 +28,6 @@
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
@@ -46,4 +40,4 @@
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
--
1.7.4

19
EmptyMojo.java Normal file
View File

@ -0,0 +1,19 @@
package org.fedoraproject;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.AbstractMojo;
/**
* Empty goal to fix
* @goal empty
* @phase clean
*/
public class EmptyMojo
extends AbstractMojo
{
public void execute()
throws MojoExecutionException, MojoFailureException
{
}
}

64
depmap.xml Normal file
View File

@ -0,0 +1,64 @@
<dependencies>
<dependency>
<maven>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</maven>
<jpp>
<groupId>JPP/maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.3</version>
</maven>
<jpp>
<groupId>JPP/maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.3</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</maven>
<jpp>
<groupId>JPP/maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>org.sonatype.tycho</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.6.0</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>jdt-core</artifactId>
<version>3.6.0</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>org.sonatype.tycho</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.6.0</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>jdt-osgi</artifactId>
<version>3.6.0</version>
</jpp>
</dependency>
</dependencies>

View File

@ -0,0 +1,2 @@
feda402d0f9cc1cfd22dc11a7c85dd4c maven-repo.tar.bz2
f2ff10d3f25941d2746c030b57a0218b tycho-0.10.0.tar.xz

209
tycho.spec Normal file
View File

@ -0,0 +1,209 @@
%global bootstrap 1
%global e_osgi org.eclipse.osgi
%global e_osgi_v 3.6.0.v20100517
%global e_core org.eclipse.jdt.core
%global e_core_v 3.6.0.v_A58
Name: tycho
Version: 0.10.0
Release: 2%{?dist}
Summary: Plugins and extensions for building Eclipse plugins and OSGI bundles with Maven
Group: Development/Libraries
# license file is missing but all files having some licensing information are ASL 2.0
License: ASL 2.0
URL: http://tycho.sonatype.org/
# git clone git://github.com/sonatype/sonatype-tycho
# git archive --prefix="tycho-0.10.0/" --format=tar tycho-0.10.0 | xz > tycho-0.10.0.tar.xz
Source0: %{name}-%{version}.tar.xz
# this is a workaround for maven-plugin-plugin changes that happened after
# version 2.4.3 (impossible to have empty mojo created as aggregate). This
# should be fixed upstream properly
Source1: EmptyMojo.java
# we need to make sure we are using maven 3 deps
Source2: depmap.xml
%if %{bootstrap}
Source3: maven-repo.tar.bz2
%endif
Patch0: 0001-Remove-tycho-testing-harness.patch
BuildArch: noarch
BuildRequires: jpackage-utils
BuildRequires: java-devel
BuildRequires: maven
BuildRequires: maven-compiler-plugin
BuildRequires: maven-install-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-javadoc-plugin
BuildRequires: maven-release-plugin
BuildRequires: maven-resources-plugin
BuildRequires: maven-shared-verifier
BuildRequires: maven-shared-osgi
BuildRequires: maven-surefire-plugin
BuildRequires: plexus-containers-component-metadata
BuildRequires: eclipse-jdt
BuildRequires: decentxml
%if ! %{bootstrap}
BuildRequires: tycho
%endif
Requires: jpackage-utils
Requires: decentxml
Requires: maven
Requires: eclipse-jdt
Requires(post): jpackage-utils
Requires(postun): jpackage-utils
%description
Tycho is a set of Maven plugins and extensions for building Eclipse
plugins and OSGI bundles with Maven. Eclipse plugins and OSGI bundles
have their own metadata for expressing dependencies, source folder
locations, etc. that are normally found in a Maven POM. Tycho uses
native metadata for Eclipse plugins and OSGi bundles and uses the POM
to configure and drive the build. Tycho supports bundles, fragments,
features, update site projects and RCP applications. Tycho also knows
how to run JUnit test plugins using OSGi runtime and there is also
support for sharing build results using Maven artifact repositories.
Tycho plugins introduce new packaging types and the corresponding
lifecycle bindings that allow Maven to use OSGi and Eclipse metadata
during a Maven build. OSGi rules are used to resolve project
dependencies and package visibility restrictions are honored by the
OSGi-aware JDT-based compiler plugin. Tycho will use OSGi metadata and
OSGi rules to calculate project dependencies dynamically and injects
them into the Maven project model at build time. Tycho supports all
attributes supported by the Eclipse OSGi resolver (Require-Bundle,
Import-Package, Eclipse-GenericRequire, etc). Tycho will use proper
classpath access rules during compilation. Tycho supports all project
types supported by PDE and will use PDE/JDT project metadata where
possible. One important design goal in Tycho is to make sure there is
no duplication of metadata between POM and OSGi metadata.
%package javadoc
Summary: Javadocs for %{name}
Group: Documentation
Requires: jpackage-utils
%description javadoc
This package contains the API documentation for %{name}.
%prep
%setup -q
%patch0 -p1 -b .harness
# place empty mojo in place
mkdir -p tycho-maven-plugin/src/main/java/org/fedoraproject
pushd tycho-maven-plugin/src/main/java/org/fedoraproject
cp %{SOURCE1} .
popd
mkdir -p tycho-bootstrap-maven-plugin/src/main/java/org/fedoraproject
pushd tycho-bootstrap-maven-plugin/src/main/java/org/fedoraproject
cp %{SOURCE1} .
popd
# remove dependency on non-existent jars from deltapack
sed -i '/equinox.security.\(macosx\|win32\)/d' \
tycho-p2/tycho-p2-runtime/tycho-p2-runtime.product
%if %{bootstrap}
tar xf %{SOURCE3}
%endif
# prepare directories for eclipse symlinks
mkdir -p .m2/org/sonatype/tycho
mkdir -p .m2/org/sonatype/tycho/%{e_osgi}/%{e_osgi_v}/
mkdir -p .m2/org/sonatype/tycho/%{e_core}/%{e_core_v}/
# maven resolver doesn't know how to resolve from directories other than _javadir
pushd .m2/org/sonatype/tycho
ln -sf %{_libdir}/eclipse/plugins/org.eclipse.osgi_*.jar \
%{e_osgi}/%{e_osgi_v}/%{e_osgi}-%{e_osgi_v}.jar
ln -sf %{_libdir}/eclipse/dropins/jdt/plugins/org.eclipse.jdt.core_*.jar \
%{e_core}/%{e_core_v}/%{e_core}-%{e_core_v}.jar
popd
%build
export TYCHO_TARGET_PLATFORM=%{_libdir}/eclipse
# not needed when bootstrap is 0, but we build it anyway
mvn-rpmbuild -Dmaven.test.skip=true \
-Dmaven.local.depmap.file=%{SOURCE2} \
-Pbootstrap-1 \
-Dtycho.targetPlatform=$TYCHO_TARGET_PLATFORM install
mvn-rpmbuild -Dmaven.test.skip=true \
-Dmaven.local.depmap.file=%{SOURCE2} \
-Pbootstrap-2 \
-Dtycho.targetPlatform=$TYCHO_TARGET_PLATFORM install javadoc:aggregate
%install
mkdir -p $RPM_BUILD_ROOT%{_javadir}/%{name}
install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
for mod in maven-osgi-{compiler,packaging,source}-plugin maven-tycho-plugin \
target-platform-configuration tycho-bootstrap-maven-plugin \
tycho-compiler-jdt tycho-equinox tycho-maven-plugin \
tycho-osgi-components tycho-release/tycho-{enforcer-rules,versions-plugin} \
tycho-p2/org.sonatype.tycho.{noopsecurity,p2{,.impl,.maven.repository,.publisher}}\
tycho-p2/tycho-p2-{director-plugin,facade,plugin,publisher-plugin,runtime} \
tycho-surefire/{maven-osgi-test-plugin,org.sonatype.tycho.surefire.{junit,junit4,osgibooter}};do
echo $mod
aid=`basename $mod`
suff=".jar"
if [ "$aid" == "tycho-p2-runtime" ];then
suff=".zip"
fi
install -pm 644 $mod/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-$aid.pom
install -m 644 $mod/target/$aid-%{version}$suff %{buildroot}%{_javadir}/%{name}/$aid$suff
%add_to_maven_depmap org.sonatype.tycho $aid %{version} JPP/%{name} $aid
done
for pommod in tycho-p2 tycho-surefire;do
install -pm 644 $pommod/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-$pommod.pom
%add_to_maven_depmap org.sonatype.tycho $pommod %{version} JPP/%{name} $pommod
done
install -pm 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-main.pom
%add_to_maven_depmap org.sonatype.tycho %{name} %{version} JPP/%{name} main
# javadoc
install -dm 755 %{buildroot}%{_javadocdir}/%{name}
cp -pr target/site/api*/* %{buildroot}%{_javadocdir}/%{name}
%post
%update_maven_depmap
%postun
%update_maven_depmap
%files
%defattr(-,root,root,-)
%{_mavenpomdir}/*
%{_mavendepmapfragdir}/%{name}
%{_javadir}/%{name}/
%doc README.md
%files javadoc
%defattr(-,root,root,-)
%{_javadocdir}/%{name}
%changelog
* Tue May 3 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0.10.0-2
- Add README and make build more silent
* Tue Mar 29 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0.10.0-1
- First bootstrapped version