Skip to content

Commit

Permalink
Add a packaging for maven site
Browse files Browse the repository at this point in the history
  • Loading branch information
laeubi committed Oct 7, 2022
1 parent 5838a49 commit ff23f51
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ public final class ArtifactType {
public static final String TYPE_INSTALLABLE_UNIT = "p2-installable-unit";
public static final String TYPE_P2_ARTIFACTS = "p2-artifacts";
public static final String TYPE_P2_METADATA = "p2-metadata";
public static final String TYPE_P2_SITE = "p2-site";

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package org.eclipse.tycho.core.osgitools;

import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Component;
import org.eclipse.tycho.ArtifactKey;
import org.eclipse.tycho.ArtifactType;
import org.eclipse.tycho.DefaultArtifactKey;
import org.eclipse.tycho.ReactorProject;
import org.eclipse.tycho.TargetEnvironment;
import org.eclipse.tycho.core.ArtifactDependencyVisitor;
import org.eclipse.tycho.core.ArtifactDependencyWalker;
import org.eclipse.tycho.core.TychoProject;

@Component(role = TychoProject.class, hint = org.eclipse.tycho.ArtifactType.TYPE_P2_SITE)
public class P2SiteProject extends AbstractArtifactBasedProject {
@Override
protected ArtifactDependencyWalker newDependencyWalker(ReactorProject project, TargetEnvironment environment) {
return new AbstractArtifactDependencyWalker(getDependencyArtifacts(project, environment),
getEnvironments(project, environment)) {
@Override
public void walk(ArtifactDependencyVisitor visitor) {
//Nothing to do
}
};
}

@Override
public ArtifactKey getArtifactKey(ReactorProject project) {
return new DefaultArtifactKey(org.eclipse.tycho.ArtifactType.TYPE_P2_SITE, project.getArtifactId(),
getOsgiVersion(project));
}

@Override
public void setupProject(MavenSession session, MavenProject project) {
System.out.println("Setup the project!");
for (MavenProject other : session.getProjects()) {
if (isRequirement(other)) {
Dependency dependency = new Dependency();
dependency.setGroupId(other.getGroupId());
dependency.setArtifactId(other.getArtifactId());
dependency.setVersion(other.getVersion());
project.getModel().addDependency(dependency);
}
}
}

private boolean isRequirement(MavenProject other) {
String packaging = other.getPackaging();
return "jar".equalsIgnoreCase(packaging) || "bundle".equalsIgnoreCase(packaging)
|| ArtifactType.TYPE_ECLIPSE_PLUGIN.equals(packaging)
|| ArtifactType.TYPE_ECLIPSE_FEATURE.equals(packaging)
|| ArtifactType.TYPE_BUNDLE_FRAGMENT.equals(packaging)
|| ArtifactType.TYPE_ECLIPSE_TEST_PLUGIN.equals(packaging);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,41 @@
</configuration>
</component>

<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>p2-site</role-hint>
<implementation>
org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<phases>
<validate></validate>
<initialize>
org.apache.maven.plugins:maven-clean-plugin:${clean-plugin.version}:clean
</initialize>
<process-resources>
</process-resources>
<prepare-package>
org.eclipse.tycho:tycho-p2-publisher-plugin:${project.version}:publish-osgi-ee
</prepare-package>
<package>
org.eclipse.tycho:tycho-p2-repository-plugin:${project.version}:assemble-maven-repository
</package>
<install>
org.apache.maven.plugins:maven-install-plugin:${install-plugin.version}:install
</install>
<deploy>
org.apache.maven.plugins:maven-deploy-plugin:${deploy-plugin.version}:deploy
</deploy>
</phases>
</lifecycle>
</lifecycles>
</configuration>
</component>

<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>eclipse-target-definition</role-hint>
Expand Down

0 comments on commit ff23f51

Please sign in to comment.