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 org.codehaus.plexus.logging.Logger
logger
private EquinoxResolver
resolver
private org.apache.maven.toolchain.ToolchainManager
toolchainManager
-
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)
private void
applyBestOfCurrentOrConfiguredProfile(java.lang.String configuredProfileName, java.lang.String reason, org.apache.maven.execution.MavenSession mavenSession, ExecutionEnvironmentConfiguration sink)
protected ArtifactDescriptor
getArtifact(DependencyArtifacts artifacts, java.io.File location, java.lang.String id)
ArtifactKey
getArtifactKey(ReactorProject project)
java.util.List<ClasspathEntry.AccessRule>
getBootClasspathExtraAccessRules(ReactorProject 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(ReactorProject project)
ArtifactDependencyWalker
getDependencyWalker(ReactorProject project)
Walks all project dependencies, regardless of runtime environment filters.ArtifactDependencyWalker
getDependencyWalker(ReactorProject 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(ReactorProject 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(ReactorProject project, DependencyArtifacts artifacts, org.apache.maven.execution.MavenSession session)
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(ReactorProject project, org.apache.maven.execution.MavenSession mavenSession, 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
-
logger
@Requirement private org.codehaus.plexus.logging.Logger logger
-
toolchainManager
@Requirement private org.apache.maven.toolchain.ToolchainManager toolchainManager
-
-
Method Detail
-
getDependencyWalker
public ArtifactDependencyWalker getDependencyWalker(ReactorProject 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(ReactorProject 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(ReactorProject 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(ReactorProject project, DependencyArtifacts artifacts, org.apache.maven.execution.MavenSession session)
-
getEclipsePluginProject
public EclipsePluginProjectImpl getEclipsePluginProject(ReactorProject otherProject)
-
getClasspath
public java.util.List<ClasspathEntry> getClasspath(ReactorProject project)
- Specified by:
getClasspath
in interfaceBundleProject
-
getBootClasspathExtraAccessRules
public java.util.List<ClasspathEntry.AccessRule> getBootClasspathExtraAccessRules(ReactorProject 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(ReactorProject project, org.apache.maven.execution.MavenSession mavenSession, ExecutionEnvironmentConfiguration sink)
- Overrides:
readExecutionEnvironmentConfiguration
in classAbstractTychoProject
-
applyBestOfCurrentOrConfiguredProfile
private void applyBestOfCurrentOrConfiguredProfile(java.lang.String configuredProfileName, java.lang.String reason, org.apache.maven.execution.MavenSession mavenSession, ExecutionEnvironmentConfiguration sink)
-
-