Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* ====================================================================
* Project: openCRX/Gradle, http://www.opencrx.org/
* Description: OpencrxPlugin
* Owner: CRIXP AG, Switzerland, http://www.crixp.com
* ====================================================================
*
* This software is published under the BSD license
* as listed below.
*
* Copyright (c) 2020, CRIXP Corp., Switzerland
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* * Neither the name of CRIXP Corp. nor the names of the contributors
* to openCRX may be used to endorse or promote products derived
* from this software without specific prior written permission
*
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* ------------------
*
* This product includes software developed by the Apache Software
* Foundation (http://www.apache.org/).
*
* This product includes software developed by contributors to
* openMDX (http://www.openmdx.org/)
*/
package org.opencrx.gradle
import org.gradle.api.Project
import org.gradle.api.Plugin
import java.io.File
import org.gradle.kotlin.dsl.*
open class OpencrxPluginExtension(project: Project) {
var earlib = project.getConfigurations().getByName("earlib")
}
open class OpencrxPlugin: Plugin {
override fun apply(project: Project): Unit = project.run {
val extension = extensions.create("opencrx", project)
// opencrx-resources.jar
val resourcesJarTask = tasks.register("opencrx-resources.jar")
resourcesJarTask {
dependsOn("classes")
}
// opencrx-core.jar
val coreJarTask = tasks.register("opencrx-core.jar")
coreJarTask {
dependsOn("classes")
}
// opencrx-core-data.jar
val coreDataJarTask = tasks.register("opencrx-core-data.jar")
coreDataJarTask {
dependsOn("classes")
}
// opencrx-core-ear.jar
val coreEarJarTask = tasks.register("opencrx-core-ear.jar")
coreEarJarTask {
dependsOn("classes")
}
// opencrx-client.jar
val clientJarTask = tasks.register("opencrx-client.jar")
clientJarTask {
dependsOn("classes")
}
// opencrx-core.war
val coreWarTask = tasks.register("opencrx-core.war")
coreWarTask {
dependsOn("deliverables")
}
// opencrx-ical.war
val iCalWarTask = tasks.register("opencrx-ical.war")
iCalWarTask {
dependsOn("deliverables")
}
// opencrx-caldav.war
val calDavWarTask = tasks.register("opencrx-caldav.war")
calDavWarTask {
dependsOn("deliverables")
}
// opencrx-carddav.war
val cardDavWarTask = tasks.register("opencrx-carddav.war")
cardDavWarTask {
dependsOn("deliverables")
}
// opencrx-webdav.war
val webDavWarTask = tasks.register("opencrx-webdav.war")
webDavWarTask {
dependsOn("deliverables")
}
// opencrx-imap.war
val imapWarTask = tasks.register("opencrx-imap.war")
imapWarTask {
dependsOn("deliverables")
}
// opencrx-vcard.war
val vCardWarTask = tasks.register("opencrx-vcard.war")
vCardWarTask {
dependsOn("deliverables")
}
// opencrx-spaces.war
val spacesWarTask = tasks.register("opencrx-spaces.war")
spacesWarTask {
dependsOn("deliverables")
}
// opencrx-rest.war
val restWarTask = tasks.register("opencrx-rest.war")
restWarTask {
dependsOn("deliverables")
}
// opencrx-ldap.war
val ldapWarTask = tasks.register("opencrx-ldap.war")
ldapWarTask {
dependsOn("deliverables")
}
// opencrx-bpi.war
val bpiWarTask = tasks.register("opencrx-bpi.war")
bpiWarTask {
dependsOn("deliverables")
}
// opencrx-calendar.war
val calendarWarTask = tasks.register("opencrx-calendar.war")
calendarWarTask {
dependsOn("deliverables")
}
// opencrx-documents.war
val documentsWarTask = tasks.register("opencrx-documents.war")
documentsWarTask {
dependsOn("deliverables")
}
// opencrx-contacts.war
val contactsWarTask = tasks.register("opencrx-contacts.war")
contactsWarTask {
dependsOn("deliverables")
}
// opencrx.ear
val earTask = tasks.register("opencrx.ear")
earTask {
dependsOn(
"deliverables",
"opencrx-core.war",
"opencrx-ical.war",
"opencrx-caldav.war",
"opencrx-carddav.war",
"opencrx-webdav.war",
"opencrx-imap.war",
"opencrx-vcard.war",
"opencrx-spaces.war",
"opencrx-rest.war",
"opencrx-ldap.war",
"opencrx-bpi.war",
"opencrx-calendar.war",
"opencrx-documents.war",
"opencrx-contacts.war"
)
libs = extension.earlib
}
// render-diagrams
val renderDiagramsTask = tasks.register("render-diagrams")
renderDiagramsTask {
inputs.dir("src/model/graphviz/diagrams")
classpath = configurations["tools"]
}
// create-schema
val createSchemaTask = tasks.register("create-schema")
createSchemaTask {
dependsOn("deliverables")
}
// create-sql
val createSqlTask = tasks.register("create-sql")
createSqlTask {
dependsOn("deliverables")
}
// generate-model
val generateModelTask = tasks.register("generate-model")
generateModelTask {
inputs.dir("${projectDir}/src/model/emf")
inputs.dir("${projectDir}/src/main/resource")
outputs.file("${buildDir}/generated/sources/model/opencrx-" + project.getName() + "-models.jar")
outputs.file("${buildDir}/generated/sources/model/opencrx-" + project.getName() + ".openmdx-xmi.zip")
classpath = configurations["compileClasspath"]
doFirst {
project.copy {
from(project.zipTree(project.getConfigurations().getByName("openmdxBaseModels").singleFile))
into(File(project.getBuildDir(), "generated/sources/model/openmdx/base"))
}
project.copy {
from(project.zipTree(project.getConfigurations().getByName("openmdxSecurityModels").singleFile))
into(File(project.getBuildDir(), "generated/sources/model/openmdx/security"))
}
project.copy {
from(project.zipTree(project.getConfigurations().getByName("openmdxPortalModels").singleFile))
into(File(project.getBuildDir(), "generated/sources/model/openmdx/portal"))
}
if(!project.getConfigurations().getByName("opencrxCoreModels").isEmpty()) {
project.copy {
from(project.zipTree(project.getConfigurations().getByName("opencrxCoreModels").singleFile))
into(File(project.getBuildDir(), "generated/sources/model/opencrx/core"))
}
}
}
doLast {
copy {
from(
zipTree("${buildDir}/generated/sources/model/opencrx-" + project.getName() + "-models.zip")
)
into("$buildDir/generated/sources/java/main")
include(
"**/*.java"
)
}
}
}
}
}