Class FsMountMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.sling.maven.bundlesupport.FsMountMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
@Mojo(name="fsmount", requiresProject=true) public class FsMountMojo extends org.apache.maven.plugin.AbstractMojoCreate OSGi configurations for the Apache Sling File System Resource Provider. In case a bundle file is supplied viaAbstractFsMountMojo.bundleFileNamethe configuration for its initial content is created. Otherwise it tries to detect a FileVault content package layout starting atAbstractFsMountMojo.fileVaultJcrRootFileor the project's resource directories and potentially creates a configuration for each path in the package'sfilter.xml.- Since:
- 2.2.0
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanfailOnErrorDetermines whether or not to fail the build if the HTTP POST or PUT returns an non-OK response code.protected org.apache.maven.project.MavenProjectprojectThe Maven project.protected org.eclipse.aether.RepositorySystemSessionrepoSessionprotected List<org.eclipse.aether.repository.RemoteRepository>repositoriesprotected org.eclipse.aether.RepositorySystemrepoSystemprotected URIslingConsoleUrlThe WebConsole URL of the running Sling instance.protected URIslingUrlThe URL of the running Sling instance.protected StringslingUrlSuffixAn optional url suffix which will be appended to thesling.urlfor use as the real target url.
-
Constructor Summary
Constructors Constructor Description FsMountMojo()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDeployFsResourceBundlePrerequisite(BundlePrerequisite item)static URIaddTrailingSlash(URI targetURL)protected voidconfigureFileVaultXml(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl, File jcrRootFile, File filterXmlFile)protected voidconfigureSlingInitialContent(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl, File bundleFile)protected voidensureBundlesInstalled(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl)voidexecute()protected StringgetBundleSymbolicName(File jarFile)Returns the symbolic name of the given bundle.protected URIgetConsoleTargetURL()protected org.apache.hc.client5.http.impl.classic.CloseableHttpClientgetHttpClient()protected org.apache.hc.client5.http.config.RequestConfig.BuildergetRequestConfigBuilder()protected URIgetTargetURL()protected FileresolveArtifact(org.eclipse.aether.artifact.Artifact artifact)
-
-
-
Field Detail
-
project
@Parameter(defaultValue="${project}", readonly=true) protected org.apache.maven.project.MavenProject projectThe Maven project.
-
slingUrl
@Parameter(property="sling.url", defaultValue="http://localhost:8080/system/console", required=true) protected URI slingUrlThe URL of the running Sling instance.The default is only useful for WebConsole deployment.
For WebDAV deployment it is recommended to include the Sling Simple WebDAV servlet root, for instance http://localhost:8080/dav/default/libs/sling/install. Omitting the
dav/defaultsegment can lead to conflicts with other servlets.
-
slingConsoleUrl
@Parameter(property="sling.console.url") protected URI slingConsoleUrl
The WebConsole URL of the running Sling instance. This is required for file system provider operations. If not configured the value of slingUrl is used.
-
slingUrlSuffix
@Parameter(property="sling.urlSuffix") protected String slingUrlSuffix
An optional url suffix which will be appended to thesling.urlfor use as the real target url. This allows to configure different target URLs in each POM, while using the same commonsling.urlin a parent POM (eg.sling.url=http://localhost:8080andsling.urlSuffix=/project/specific/path). This is typically used in conjunction with WebDAV or SlingPostServlet deployment methods.
-
failOnError
@Parameter(property="sling.failOnError", defaultValue="true") protected boolean failOnErrorDetermines whether or not to fail the build if the HTTP POST or PUT returns an non-OK response code.
-
repoSystem
@Component protected org.eclipse.aether.RepositorySystem repoSystem
-
repoSession
@Parameter(defaultValue="${repositorySystemSession}", readonly=true, required=true) protected org.eclipse.aether.RepositorySystemSession repoSession
-
repositories
@Parameter(defaultValue="${project.remoteProjectRepositories}", readonly=true, required=true) protected List<org.eclipse.aether.repository.RemoteRepository> repositories
-
-
Method Detail
-
addDeployFsResourceBundlePrerequisite
public void addDeployFsResourceBundlePrerequisite(BundlePrerequisite item)
-
configureSlingInitialContent
protected void configureSlingInitialContent(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl, File bundleFile) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
configureFileVaultXml
protected void configureFileVaultXml(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl, File jcrRootFile, File filterXmlFile) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
ensureBundlesInstalled
protected void ensureBundlesInstalled(org.apache.hc.client5.http.impl.classic.CloseableHttpClient httpClient, URI consoleTargetUrl) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
getBundleSymbolicName
protected String getBundleSymbolicName(File jarFile)
Returns the symbolic name of the given bundle. If thejarFiledoes not contain a manifest with aBundle-SymbolicNameheadernullis returned. Otherwise the value of theBundle-SymbolicNameheader is returned.This method may also be used to check whether the file is a bundle at all as it is assumed, that only if the file contains an OSGi bundle will the
Bundle-SymbolicNamemanifest header be set.- Parameters:
jarFile- The file providing the bundle whose symbolic name is requested.- Returns:
- The bundle's symbolic name from the
Bundle-SymbolicNamemanifest header ornullif no manifest exists in the file or the header is not contained in the manifest. However, ifnullis returned, the file may be assumed to not contain an OSGi bundle.
-
getTargetURL
protected URI getTargetURL()
- Returns:
- Returns the combination of
sling.urlandsling.urlSuffix. Always ends with "/".
-
getConsoleTargetURL
protected URI getConsoleTargetURL()
- Returns:
- Returns the combination of
sling.console.urlandsling.urlSuffix. Always ends with "/".
-
getHttpClient
protected org.apache.hc.client5.http.impl.classic.CloseableHttpClient getHttpClient()
- Returns:
- Get the http client
-
getRequestConfigBuilder
protected org.apache.hc.client5.http.config.RequestConfig.Builder getRequestConfigBuilder()
-
resolveArtifact
protected File resolveArtifact(org.eclipse.aether.artifact.Artifact artifact) throws org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
-