Package org.eclipse.tycho.core.osgitools
Class OsgiBundleProject
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.eclipse.tycho.core.osgitools.AbstractTychoProject
-
- org.eclipse.tycho.core.osgitools.OsgiBundleProject
-
- All Implemented Interfaces:
org.codehaus.plexus.logging.LogEnabled
,BundleProject
,TychoProject
- Direct Known Subclasses:
OsgiTestBundleProject
@Component(role=TychoProject.class, hint="eclipse-plugin") public class OsgiBundleProject extends AbstractTychoProject implements BundleProject
-
-
Field Summary
Fields Modifier and Type Field Description private BuildPropertiesParser
buildPropertiesParser
private BundleReader
bundleReader
private static java.lang.String
CTX_ARTIFACT_KEY
private DependencyComputer
dependencyComputer
private EquinoxResolver
resolver
-
Constructor Summary
Constructors Constructor Description OsgiBundleProject()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addExtraClasspathEntries(java.util.List<ClasspathEntry> classpath, ReactorProject project, DependencyArtifacts artifacts)
private void
addPDESourceRoots(org.apache.maven.project.MavenProject project)
protected ArtifactDescriptor
getArtifact(DependencyArtifacts artifacts, java.io.File location, java.lang.String id)
ArtifactKey
getArtifactKey(ReactorProject project)
java.util.List<ClasspathEntry.AccessRule>
getBootClasspathExtraAccessRules(org.apache.maven.project.MavenProject project)
private java.util.List<java.io.File>
getBundleClasspath(ArtifactDescriptor bundle)
private java.util.List<java.io.File>
getBundleEntry(ArtifactDescriptor bundle, java.lang.String nestedPath)
java.util.List<ClasspathEntry>
getClasspath(org.apache.maven.project.MavenProject project)
ArtifactDependencyWalker
getDependencyWalker(org.apache.maven.project.MavenProject project)
Walks all project dependencies, regardless of runtime environment filters.ArtifactDependencyWalker
getDependencyWalker(org.apache.maven.project.MavenProject project, TargetEnvironment environment)
Walks project dependencies resolved for the specified runtime environment.EclipsePluginProjectImpl
getEclipsePluginProject(ReactorProject otherProject)
TargetEnvironment
getImplicitTargetEnvironment(org.apache.maven.project.MavenProject project)
Implicit target environment configuration present in project metadata, like, for example, Eclipse-PlatformFilter OSGi bundle manifest attribute.private OsgiManifest
getManifest(org.apache.maven.project.MavenProject project)
java.lang.String
getManifestValue(java.lang.String key, org.apache.maven.project.MavenProject project)
Returns the value of the specified attribute key in the project's MANIFEST, or null if the attribute was not found.private java.io.File
getNestedJarOrDir(ArtifactDescriptor bundle, java.lang.String cp)
private java.util.List<java.io.File>
getOtherProjectClasspath(ArtifactDescriptor bundle, ReactorProject otherProject, java.lang.String nestedPath)
Returns bundle classpath entries.private org.eclipse.osgi.service.resolver.State
getResolverState(org.apache.maven.project.MavenProject project, DependencyArtifacts artifacts)
private java.util.List<java.io.File>
getThisProjectClasspath(ArtifactDescriptor bundle, ReactorProject project)
Returns project compile classpath entries.private java.lang.String[]
parseBundleClasspath(ArtifactDescriptor bundle)
ArtifactKey
readArtifactKey(java.io.File location)
void
readExecutionEnvironmentConfiguration(org.apache.maven.project.MavenProject project, ExecutionEnvironmentConfiguration sink)
private void
removeDuplicateTestCompileRoot(java.io.File sourceFolder, java.util.List<java.lang.String> testCompileSourceRoots)
void
resolveClassPath(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
void
setupProject(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
private static java.lang.String
sn(java.lang.String str)
-
Methods inherited from class org.eclipse.tycho.core.osgitools.AbstractTychoProject
checkForMissingDependencies, getDependencyArtifacts, getDependencyArtifacts, getEnvironments, overrideToAtLeastJavaSE16, setDependencyArtifacts
-
Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.tycho.core.TychoProject
getDependencyArtifacts, getDependencyArtifacts
-
-
-
-
Field Detail
-
CTX_ARTIFACT_KEY
private static final java.lang.String CTX_ARTIFACT_KEY
-
bundleReader
@Requirement private BundleReader bundleReader
-
buildPropertiesParser
@Requirement private BuildPropertiesParser buildPropertiesParser
-
resolver
@Requirement private EquinoxResolver resolver
-
dependencyComputer
@Requirement private DependencyComputer dependencyComputer
-
-
Method Detail
-
getDependencyWalker
public ArtifactDependencyWalker getDependencyWalker(org.apache.maven.project.MavenProject project, TargetEnvironment environment)
Description copied from interface:TychoProject
Walks project dependencies resolved for the specified runtime environment.- Specified by:
getDependencyWalker
in interfaceTychoProject
-
getDependencyWalker
public ArtifactDependencyWalker getDependencyWalker(org.apache.maven.project.MavenProject project)
Description copied from interface:TychoProject
Walks all project dependencies, regardless of runtime environment filters.- Specified by:
getDependencyWalker
in interfaceTychoProject
-
getArtifactKey
public ArtifactKey getArtifactKey(ReactorProject project)
- Specified by:
getArtifactKey
in interfaceTychoProject
-
setupProject
public void setupProject(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
- Overrides:
setupProject
in classAbstractTychoProject
-
readArtifactKey
public ArtifactKey readArtifactKey(java.io.File location)
-
getManifestValue
public java.lang.String getManifestValue(java.lang.String key, org.apache.maven.project.MavenProject project)
Description copied from interface:BundleProject
Returns the value of the specified attribute key in the project's MANIFEST, or null if the attribute was not found.- Specified by:
getManifestValue
in interfaceBundleProject
- Parameters:
key
- manifest attribute keyproject
- associated maven project- Returns:
- the String value of the specified attribute key, or null if not found.
-
getManifest
private OsgiManifest getManifest(org.apache.maven.project.MavenProject project)
-
resolveClassPath
public void resolveClassPath(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
- Overrides:
resolveClassPath
in classAbstractTychoProject
-
getArtifact
protected ArtifactDescriptor getArtifact(DependencyArtifacts artifacts, java.io.File location, java.lang.String id)
-
addPDESourceRoots
private void addPDESourceRoots(org.apache.maven.project.MavenProject project)
-
removeDuplicateTestCompileRoot
private void removeDuplicateTestCompileRoot(java.io.File sourceFolder, java.util.List<java.lang.String> testCompileSourceRoots)
-
getResolverState
private org.eclipse.osgi.service.resolver.State getResolverState(org.apache.maven.project.MavenProject project, DependencyArtifacts artifacts)
-
getEclipsePluginProject
public EclipsePluginProjectImpl getEclipsePluginProject(ReactorProject otherProject)
-
getClasspath
public java.util.List<ClasspathEntry> getClasspath(org.apache.maven.project.MavenProject project)
- Specified by:
getClasspath
in interfaceBundleProject
-
getBootClasspathExtraAccessRules
public java.util.List<ClasspathEntry.AccessRule> getBootClasspathExtraAccessRules(org.apache.maven.project.MavenProject project)
- Specified by:
getBootClasspathExtraAccessRules
in interfaceBundleProject
-
getThisProjectClasspath
private java.util.List<java.io.File> getThisProjectClasspath(ArtifactDescriptor bundle, ReactorProject project)
Returns project compile classpath entries.
-
getOtherProjectClasspath
private java.util.List<java.io.File> getOtherProjectClasspath(ArtifactDescriptor bundle, ReactorProject otherProject, java.lang.String nestedPath)
Returns bundle classpath entries. IfnestedPath
is notnull
, returns single class folder that corresponds specified nestedPath. IfnestedPath
isnull
, returns entries specified in Bundle-ClassPath.
-
addExtraClasspathEntries
private void addExtraClasspathEntries(java.util.List<ClasspathEntry> classpath, ReactorProject project, DependencyArtifacts artifacts)
-
getBundleClasspath
private java.util.List<java.io.File> getBundleClasspath(ArtifactDescriptor bundle)
-
getBundleEntry
private java.util.List<java.io.File> getBundleEntry(ArtifactDescriptor bundle, java.lang.String nestedPath)
-
parseBundleClasspath
private java.lang.String[] parseBundleClasspath(ArtifactDescriptor bundle)
-
getNestedJarOrDir
private java.io.File getNestedJarOrDir(ArtifactDescriptor bundle, java.lang.String cp)
-
getImplicitTargetEnvironment
public TargetEnvironment getImplicitTargetEnvironment(org.apache.maven.project.MavenProject project)
Description copied from interface:TychoProject
Implicit target environment configuration present in project metadata, like, for example, Eclipse-PlatformFilter OSGi bundle manifest attribute.- Specified by:
getImplicitTargetEnvironment
in interfaceTychoProject
- Overrides:
getImplicitTargetEnvironment
in classAbstractTychoProject
-
sn
private static java.lang.String sn(java.lang.String str)
-
readExecutionEnvironmentConfiguration
public void readExecutionEnvironmentConfiguration(org.apache.maven.project.MavenProject project, ExecutionEnvironmentConfiguration sink)
- Overrides:
readExecutionEnvironmentConfiguration
in classAbstractTychoProject
-
-