aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
diff options
context:
space:
mode:
Diffstat (limited to 'bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala')
-rw-r--r--bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala116
1 files changed, 0 insertions, 116 deletions
diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
deleted file mode 100644
index 4104e349208..00000000000
--- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.container.plugin.mojo
-
-import java.io.File
-import java.nio.channels.Channels
-import java.util.jar.JarFile
-import java.util.zip.ZipEntry
-
-import com.yahoo.container.plugin.util.{Files, JarFiles}
-import org.apache.maven.archiver.{MavenArchiveConfiguration, MavenArchiver}
-import org.apache.maven.execution.MavenSession
-import org.apache.maven.plugin.AbstractMojo
-import org.apache.maven.plugins.annotations.{Mojo, Parameter, ResolutionScope}
-import org.apache.maven.project.MavenProject
-import org.codehaus.plexus.archiver.jar.JarArchiver
-
-import scala.collection.JavaConverters._
-
-/**
- * @author tonytv
- */
-@Mojo(name = "assemble-container-plugin", requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true)
-class AssembleContainerPluginMojo extends AbstractMojo {
- object withDependencies
- object withoutDependencies
-
- @Parameter(defaultValue = "${project}")
- var project: MavenProject = null
-
- @Parameter(defaultValue = "${session}", readonly = true, required = true)
- var session: MavenSession = null
-
- @Parameter
- var archiveConfiguration: MavenArchiveConfiguration = new MavenArchiveConfiguration
-
- @Parameter(alias = "UseCommonAssemblyIds", defaultValue = "false")
- var useCommonAssemblyIds: Boolean = false
-
-
- def execute() {
- val jarSuffixes =
- if (useCommonAssemblyIds) Map(withoutDependencies -> ".jar", withDependencies -> "-jar-with-dependencies.jar")
- else Map(withoutDependencies -> "-without-dependencies.jar", withDependencies -> "-deploy.jar")
-
- val jarFiles = jarSuffixes mapValues jarFileInBuildDirectory(build.getFinalName)
-
- //force recreating the archive
- archiveConfiguration.setForced(true)
- archiveConfiguration.setManifestFile(new File(new File(project.getBuild.getOutputDirectory), JarFile.MANIFEST_NAME))
-
- val jarWithoutDependencies = new JarArchiver()
- addClassesDirectory(jarWithoutDependencies)
- createArchive(jarFiles(withoutDependencies), jarWithoutDependencies)
- project.getArtifact.setFile(jarFiles(withoutDependencies))
-
- val jarWithDependencies = new JarArchiver()
- addClassesDirectory(jarWithDependencies)
- addDependencies(jarWithDependencies)
- createArchive(jarFiles(withDependencies), jarWithDependencies)
- }
-
- private def jarFileInBuildDirectory(name: String)(jarSuffix: String) = {
- new File(build.getDirectory, name + jarSuffix)
- }
-
- private def addClassesDirectory(jarArchiver: JarArchiver) {
- val classesDirectory = new File(build.getOutputDirectory)
- if (classesDirectory.isDirectory) {
- jarArchiver.addDirectory(classesDirectory)
- }
- }
-
- private def createArchive(jarFile: File, jarArchiver: JarArchiver) {
- val mavenArchiver = new MavenArchiver
- mavenArchiver.setArchiver(jarArchiver)
- mavenArchiver.setOutputFile(jarFile)
- mavenArchiver.createArchive(session, project, archiveConfiguration)
- }
-
- private def addDependencies(jarArchiver: JarArchiver) {
- Artifacts.getArtifactsToInclude(project).foreach { artifact =>
- if (artifact.getType == "jar") {
- jarArchiver.addFile(artifact.getFile, "dependencies/" + artifact.getFile.getName)
- copyConfigDefinitions(artifact.getFile, jarArchiver)
- }
- else
- getLog.warn("Unkown artifact type " + artifact.getType)
- }
- }
-
- private def copyConfigDefinitions(file: File, jarArchiver: JarArchiver) {
- JarFiles.withJarFile(file) { jarFile =>
- for {
- entry <- jarFile.entries().asScala
- name = entry.getName
- if name.startsWith("configdefinitions/") && name.endsWith(".def")
-
- } copyConfigDefinition(jarFile, entry, jarArchiver)
- }
- }
-
- private def copyConfigDefinition(jarFile: JarFile, entry: ZipEntry, jarArchiver: JarArchiver) {
- JarFiles.withInputStream(jarFile, entry) { input =>
- val defPath = entry.getName.replace("/", File.separator)
- val destinationFile = new File(project.getBuild.getOutputDirectory, defPath)
- destinationFile.getParentFile.mkdirs()
-
- Files.withFileOutputStream(destinationFile) { output =>
- output.getChannel.transferFrom(Channels.newChannel(input), 0, Long.MaxValue)
- }
- jarArchiver.addFile(destinationFile, entry.getName)
- }
- }
-
- private def build = project.getBuild
-}