From d85a6df241f380dc7924c39f7d0a169e98feef4b Mon Sep 17 00:00:00 2001 From: Andrea Di Giorgi Date: Tue, 2 Jun 2015 09:40:36 -0700 Subject: [PATCH] LPS-51081 Apply "gradle-plugins", remove old Gradle code --- .gitignore | 1 + app-servers.gradle | 109 -------- build-plugin.gradle | 91 +++++++ build-plugins.gradle | 603 ------------------------------------------- build-themes.gradle | 150 ----------- build.gradle | 87 +------ gradle.properties | 8 +- sdk.gradle | 13 +- settings.gradle | 97 +------ versions.gradle | 224 ---------------- 10 files changed, 124 insertions(+), 1259 deletions(-) delete mode 100644 app-servers.gradle create mode 100644 build-plugin.gradle delete mode 100644 build-plugins.gradle delete mode 100644 build-themes.gradle delete mode 100644 versions.gradle diff --git a/.gitignore b/.gitignore index 3b863bb97b3e..f5d7cd966f83 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ _sass_cache_*.css /.ivy /*/*/bin +/*/*/build /*/*/classes /*/*/javadoc /*/*/temp diff --git a/app-servers.gradle b/app-servers.gradle deleted file mode 100644 index 5ad2936b4010..000000000000 --- a/app-servers.gradle +++ /dev/null @@ -1,109 +0,0 @@ -Map> appServers = [ - geronimo: [ - deployDirName: "deploy", - libGlobalDirName: "var/shared/lib", - name: "geronimo", - portalDirName: "deploy/liferay-portal", - version: "2.2.1" - ], - glassfish: [ - deployDirName: "autodeploy", - libGlobalDirName: "domains/domain1/lib", - name: "glassfish", - portalDirName: "domains/domain1/applications/liferay-portal", - version: "3.1.2.2" - ], - jboss: [ - deployDirName: "standalone/deployments", - libGlobalDirName: "modules/com/liferay/portal/main", - name: "jboss", - portalDirName: "standalone/deployments/ROOT.war", - version: "7.1.1" - ], - jboss5: [ - deployDirName: "standalone/deploy", - libGlobalDirName: "server/default/lib", - name: "jboss", - portalDirName: "standalone/deployments/ROOT.war", - version: "5.1.0" - ], - jbossEap: [ - deployDirName: "standalone/deployments", - libGlobalDirName: "modules/com/liferay/portal/main", - name: "jboss-eap", - portalDirName: "standalone/deployments/ROOT.war", - version: "6.1.0" - ], - jbossWildfly: [ - deployDirName: "standalone/deployments", - libGlobalDirName: "modules/com/liferay/portal/main", - name: "jboss-wildfly", - portalDirName: "standalone/deployments/ROOT.war", - version: "8.1.0" - ], - jetty: [ - deployDirName: "webapps", - libGlobalDirName: "lib/ext/liferay", - name: "jetty", - portalDirName: "webapps/root", - version: "8.1.10" - ], - jonas: [ - deployDirName: "deploy", - libGlobalDirName: "lib/ext", - name: "jonas", - portalDirName: "deploy/liferay-portal", - version: "5.2.3" - ], - resin: [ - deployDirName: "webapps", - libGlobalDirName: "ext-lib", - name: "resin", - portalDirName: "webapps/ROOT", - version: "4.0.33" - ], - tcserver: [ - deployDirName: "liferay/webapps", - libGlobalDirName: "liferay/lib", - name: "tcserver", - portalDirName: "liferay/webapps/ROOT", - version: "2.6.4" - ], - tomcat: [ - libGlobalDirName: "lib/ext", - managerPassword: "tomcat", - managerUser: "tomcat", - name: "tomcat", - portalDirName: "webapps/ROOT", - version: "7.0.42" - ], - weblogic: [ - deployDirName: "domains/liferay/autodeploy", - libGlobalDirName: "domains/liferay/lib", - name: "weblogic", - portalDirName: "domains/liferay/autodeploy/ROOT", - version: "12.1.2" - ], - websphere: [ - deployDirName: "profiles/liferay/wsadmin-deploy", - libGlobalDirName: "lib/ext", - name: "websphere", - portalDirName: "profiles/liferay/installedApps/liferay-cell/liferay-portal.ear/liferay-portal.war", - version: "7.0" - ] -] - -ext.appServers = appServers - -ext { - appServerParentDir = file("${gradle.lfrSdkDir}/../bundles") - - appServerDir = file(appServerParentDir.toString() + "/" + appServers[appServerType].name + "-" + appServers[appServerType].version) - - appServerDeployDir = file(appServerDir.toString() + "/" + appServers[appServerType].deployDirName) - appServerLibGlobalDir = file(appServerDir.toString() + "/" + appServers[appServerType].libGlobalDirName) - appServerPortalDir = file(appServerDir.toString() + "/" + appServers[appServerType].portalDirName) - appServerVersion = appServers[appServerType].version - - appServerLibPortalDir = file(appServerPortalDir.toString() + "/WEB-INF/lib") -} \ No newline at end of file diff --git a/build-plugin.gradle b/build-plugin.gradle new file mode 100644 index 000000000000..dd9934791b3e --- /dev/null +++ b/build-plugin.gradle @@ -0,0 +1,91 @@ +apply plugin: "com.liferay.plugin" + +File appServerClassesPortalDir = new File(liferay.appServerPortalDir, "WEB-INF/classes") +File appServerLibPortalDir = new File(liferay.appServerPortalDir, "WEB-INF/lib") + +afterEvaluate { + project.ext.set("app.server.lib.portal.dir", project.relativePath(appServerLibPortalDir)) + project.ext.set("app.server.portal.dir", project.relativePath(liferay.appServerPortalDir)) + project.ext.set("plugin.full.version", project.version.toString()) +} + +if (hasProperty("bundle")) { + bundle { + instruction "-jsp", "*.jsp" + instruction "-jsp", "*.jspf" + instruction "-metatype", "*" + instruction "-plugin", "com.liferay.ant.bnd.plugin.JspAnalyzerPlugin" + instruction "-plugin", "com.liferay.ant.bnd.plugin.SassAnalyzerPlugin" + instruction "-sass", "*" + } +} + +configurations { + portal + + portalTest { + extendsFrom portal + } + + testCompile { + extendsFrom portalTest + } + + testIntegrationCompile { + extendsFrom portalTest + } +} + +dependencies { + portal files(appServerClassesPortalDir) + portal fileTree(dir: appServerLibPortalDir, include: "*.jar") + portal fileTree(dir: liferay.appServerLibGlobalDir, include: "*.jar") + portal group: "com.liferay", name: "net.sf.jargs", version: "1.0" + portal group: "com.thoughtworks.qdox", name: "qdox", version: "1.12.1" + portal group: "javax.activation", name: "activation", version: "1.1" + portal group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1" + portal group: "javax.servlet.jsp", name: "jsp-api", version: "2.1" + + portalTest fileTree(dir: new File(liferay.liferayHome, "osgi/test"), include: "portal-test*.jar") + + if (isPortalCompatSharedRequired(project)) { + runtime project(":shared:portal-compat-shared") + } +} + +jar { + destinationDir = new File(rootDir, "dist2") +} + +repositories { + mavenLocal() +} + +plugins.withType(WarPlugin) { + war { + destinationDir = jar.destinationDir + } +} + +boolean isPortalCompatSharedRequired(Project project) { + if (project.name == "portal-compat-shared") { + return false + } + + if (project.name.endsWith("-layouttpl")) { + return false + } + + if (project.name.endsWith("-theme")) { + File srcDir = project.file("docroot/WEB-INF/src") + + if (srcDir.exists()) { + return true + } + else { + return false + } + } + + return true +} \ No newline at end of file diff --git a/build-plugins.gradle b/build-plugins.gradle deleted file mode 100644 index 5b54396c43ec..000000000000 --- a/build-plugins.gradle +++ /dev/null @@ -1,603 +0,0 @@ -import com.liferay.portal.kernel.util.ReleaseInfo - -import org.gradle.api.internal.file.copy.CopySpecResolver - -apply plugin: "war" - -buildscript { - dependencies { - classpath group: "com.liferay.portal", name: "portal-service", version: "7.0.0-SNAPSHOT" - } - - repositories { - maven { - url "http://cdn.repository.liferay.com/nexus/content/groups/public" - } - } -} - -configurations { - pluginRequiredLibraries - portalTools - portalToolsBuildCss - portalToolsBuildCssLegacy - portalToolsFormatSource - portalWeb - - portalToolsBuildCss.extendsFrom portalTools, portalToolsBuildCssLegacy - portalToolsFormatSource.extendsFrom portalTools - - if (!name.endsWith("-theme")) { - providedCompile.extendsFrom pluginRequiredLibraries - } -} - -dependencies { - compile( - { - File projectServiceJarFile = file("docroot/WEB-INF/lib/${name}-service.jar") - - if (projectServiceJarFile.exists()) { - return [files(projectServiceJarFile)] - } - - return [] - }(), - { - if (!name.endsWith("-layouttpl") && !name.endsWith("-theme") && !name.equals("portal-compat-shared")) { - return [project(":shared:portal-compat-shared")] - } - - return [] - }() - ) - - pluginRequiredLibraries( - [group: "com.liferay.portal", name: "util-bridges", version: "7.0.0-SNAPSHOT"], - [group: "com.liferay.portal", name: "util-java", version: "7.0.0-SNAPSHOT"], - [group: "com.liferay.portal", name: "util-taglib", version: "7.0.0-SNAPSHOT"], - [group: "commons-logging", name: "commons-logging", version: "1.1.1"], - [group: "log4j", name: "log4j", version: "1.2.16"] - ) - - portalTools( - [group: "com.liferay.portal", name: "portal-impl", version: "7.0.0-SNAPSHOT"], - [group: "com.liferay.portal", name: "portal-service", version: "7.0.0-SNAPSHOT"], - [group: "com.liferay.portal", name: "util-java", version: "7.0.0-SNAPSHOT"], - [group: "com.thoughtworks.xstream", name: "xstream", version: "1.4.3"], - [group: "commons-configuration", name: "commons-configuration", version: "1.6"], - [group: "commons-lang", name: "commons-lang", version: "2.6"], - [group: "easyconf", name: "easyconf", version: "0.9.5", transitive: false], - [group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"] - ) - - portalToolsBuildCss( - [group: "com.liferay", name: "com.liferay.sass.compiler.jni", version: "1.0.0-SNAPSHOT"], - [group: "org.apache.ant", name: "ant", version: "1.8.2"], - [group: "org.mozilla", name: "rhino", version: "1.7R4"] - ) - - portalToolsBuildCssLegacy( - [group: "com.liferay", name: "com.liferay.ruby.gems", version: "1.0.0-SNAPSHOT"], - [group: "javax.portlet", name: "portlet-api", version: "2.0"], - [group: "org.jruby", name: "jruby-complete", version: "1.6.5"], - [group: "org.springframework", name: "spring-web", version: "3.2.10.RELEASE"], - [group: "struts", name: "struts", version: "1.2.9"] - ) - - portalToolsFormatSource( - [group: "com.thoughtworks.qdox", name: "qdox", version: "1.12.1"], - [group: "dom4j", name: "dom4j", version: "1.6.1"], - [group: "org.apache.ant", name: "ant", version: "1.8.2"], - [group: "xerces", name: "xercesImpl", version: "2.11.0"] - ) - - portalWeb group: "com.liferay.portal", name: "portal-web", version: "7.0.0-SNAPSHOT" - - providedCompile( - [group: "biz.aQute.bnd", name: "biz.aQute.bnd", version: "2.4.1"], - [group: "com.liferay.portal", name: "portal-service", version: "7.0.0-SNAPSHOT"], - [group: "hsqldb", name: "hsqldb", version: "1.8.0.7"], - [group: "javax.activation", name: "activation", version: "1.1"], - [group: "javax.ccpp", name: "ccpp", version: "1.0"], - [group: "javax.jms", name: "jms", version: "1.1"], - [group: "javax.mail", name: "mail", version: "1.4"], - [group: "javax.portlet", name: "portlet-api", version: "2.0"], - [group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"], - [group: "javax.servlet.jsp", name: "jsp-api", version: "2.1"], - [group: "mysql", name: "mysql-connector-java", version: "5.1.23"], - [group: "net.sf", name: "jargs", version: "1.0"], - [group: "net.sourceforge.jtds", name: "jtds", version: "1.2.6"], - [group: "org.eclipse.persistence", name: "javax.persistence", version: "2.0.0"], - [group: "postgresql", name: "postgresql", version: "9.2-1002.jdbc4"] - ) -} - -sourceSets { - main { - java { - srcDir pluginSrcDir - } - - resources { - srcDir pluginSrcDir - } - } -} - -version = { - String moduleFullVersion = pluginPackageProperties["module-full-version"] - - if (moduleFullVersion) { - return moduleFullVersion - } - else { - String bundleVersion = bndProperties["Bundle-Version"] - - if (bundleVersion) { - return bundleVersion - } - else { - String moduleIncrementalVersion = pluginPackageProperties["module-incremental-version"] - - return ReleaseInfo.version + "." + moduleIncrementalVersion - } - } -}() - -webAppDirName = "docroot" - -task buildCss(type: JavaExec) -task compile -task formatSource(type: JavaExec) -task initGradle - -buildCss { - File sassDocrootDir - FileTree sassDocrootDirFileTree - - sassDocrootDir = { - if (osgiPlugin) { - return file("src/META-INF/resources") - } - else { - return file("docroot") - } - }() - - sassDocrootDirFileTree = fileTree(dir: sassDocrootDir, exclude: "**/.sass-cache/**", include: "**/*.css") - - args( - "sass.dir=/", - "sass.docroot.dir=${sassDocrootDir}", - "sass.portal.common.dir=${rootDir}/tmp/portal-web/html/css/common" - ) - - classpath configurations.portalToolsBuildCss - - doFirst { - if (!exists("${rootDir}/tmp/portal-web")) { - copy { - from(zipTree(configurations.portalWeb.singleFile)) { - include "html/css/**/*" - include "html/themes/**/*" - include "WEB-INF/tld/**/*" - } - - into "${rootDir}/tmp/portal-web" - } - } - } - - inputs.files sassDocrootDirFileTree - - main = "com.liferay.portal.tools.SassToCssBuilder" - - onlyIf { - sassDocrootDirFileTree.files - } - - outputs.dir "${rootDir}/tmp" - outputs.dir( - { - sassDocrootDirFileTree.each { - return "${it}/../.sass-cache" - } - }() - ) -} - -classes { - dependsOn buildCss -} - -clean { - afterEvaluate { - tasks.each { - dependsOn "clean" + it.name.capitalize() - } - - Set projectDependencies = configurations.compile.allDependencies.withType(ProjectDependency) - - projectDependencies.each { - dependsOn "${it.dependencyProject.path}:clean" - } - } -} - -compile { - dependsOn compileJava -} - -formatSource { - classpath configurations.portalToolsFormatSource - - main = "com.liferay.portal.tools.sourceformatter.SourceFormatter" - - maxHeapSize = "512m" -} - -formatSource << { - delete "ServiceBuilder.temp" -} - -initGradle << { - Closure getBuildGradleDependencies - Closure getBuildGradleDependenciesCompile - Closure getBuildGradleDependenciesProvidedCompile - Closure getBuildGradleDependenciesTestCompile - Closure getBuildGradleExt - Closure getBuildXmlProperty - Closure getIndent - Closure readLegacyXmls - Closure wrapContents - Closure wrapDependency - Closure wrapProjectDependency - Closure wrapProperty - Closure wrapServiceJar - Closure writeBuildGradleFile - Closure writeDependencySettingsFile - - Node buildXmlNode - Node ivyXmlNode - - getBuildGradleDependencies = { - List contents = [] - - contents.addAll(getBuildGradleDependenciesCompile()) - contents.addAll(getBuildGradleDependenciesProvidedCompile()) - contents.addAll(getBuildGradleDependenciesTestCompile()) - - return wrapContents(contents, 0, " {", "dependencies", "}") - } - - getBuildGradleDependenciesCompile = { - List contents = [] - - if (ivyXmlNode) { - ivyXmlNode.dependencies.dependency.each { - if (!it.@conf || (it.@conf == "default")) { - contents.addAll(wrapDependency(2, it.@org, it.@name, it.@rev)) - } - } - } - - String requiredDeploymentContexts = pluginPackageProperties["required-deployment-contexts"] - - if (requiredDeploymentContexts) { - String[] requiredDeploymentContextsArray = requiredDeploymentContexts.split(",") - - requiredDeploymentContextsArray.each { - String serviceJarFileName = "../../" + it.replaceFirst(".+-", "") + "s/${it}/docroot/WEB-INF/lib/${it}-service.jar" - - File serviceJarFile = file(serviceJarFileName) - - if (serviceJarFile.exists()) { - contents.addAll(wrapServiceJar(2, serviceJarFileName)) - } - } - } - - String importShared = getBuildXmlProperty("import.shared") - - if (importShared) { - String[] importSharedArray = importShared.split(",") - - importSharedArray.each { - String projectDependencyPath - - if (exists("${rootDir}/shared/${it}/src")) { - projectDependencyPath = ":shared:${it}" - } - else if (exists("${projectDir}/../${it}/src")) { - projectDependencyPath = project.path.replaceFirst(project.name, it) - } - else { - println("Project dependency ${it} could not be found in the shared directory or this project's parent directory.") - - return - } - - contents.addAll(wrapProjectDependency(2, projectDependencyPath)) - } - } - - return wrapContents(contents, 1, "(", "compile", ")") - } - - getBuildGradleDependenciesProvidedCompile = { - List contents = [] - - String portalDependencyJars = pluginPackageProperties["portal-dependency-jars"] - - if (portalDependencyJars) { - portalDependencyJars = portalDependencyJars.replaceAll("\\.jar", "") - portalDependencyJars = portalDependencyJars.replaceAll("-\\w") { - it[1].toUpperCase() - } - - String[] portalDependencyJarsArray = portalDependencyJars.split(",") - - portalDependencyJarsArray.each { - String portalDependencyJar -> - - Map portalDependencyJarMap = portalDependencies[portalDependencyJar] - - if (!portalDependencyJarMap) { - println("Portal dependency " + portalDependencyJar + " is not defined in versions.gradle") - } - else { - contents.addAll(wrapDependency(2, portalDependencyJarMap["group"], portalDependencyJarMap["name"], portalDependencyJarMap["version"])) - } - } - - } - - return wrapContents(contents, 1, "(", "providedCompile", ")") - } - - getBuildGradleDependenciesTestCompile = { - List contents = [] - - if (ivyXmlNode) { - ivyXmlNode.dependencies.dependency.each { - if (it.@conf =~ "test") { - contents.addAll(wrapDependency(2, it.@org, it.@name, it.@rev)) - } - } - } - - return wrapContents(contents, 1, "(", "testCompile", ")") - } - - getBuildGradleExt = { - List contents = [] - - if (project.name.endsWith("-theme")) { - String themeParent = getBuildXmlProperty("theme.parent") - - if (themeParent) { - contents.add(wrapProperty(1, "themeParent", themeParent)) - } - - String themeType = getBuildXmlProperty("theme.type", "vm") - - contents.add(wrapProperty(1, "themeType", themeType)) - } - - if (contents) { - contents = wrapContents(contents, 0, " {", "ext", "}") - } - - return contents - } - - getBuildXmlProperty = { - String key, String defaultValue = "" -> - - String value = defaultValue - - Node buildXmlPropertyNode = buildXmlNode.property.find { - it.@name == key - } - - if (buildXmlPropertyNode) { - value = buildXmlPropertyNode.@value - } - - return value - } - - getIndent = { - String indent = "" - - it.times( - { - indent = indent + "\t" - }) - - return indent - } - - readLegacyXmls = { - - // build.xml - - XmlParser xmlParser = new XmlParser() - - xmlParser.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false) - - File buildXmlFile = file("build.xml") - - if (buildXmlFile.exists()) { - buildXmlNode = xmlParser.parse(buildXmlFile) - } - - // ivy.xml - - File ivyXmlFile = file("ivy.xml") - - if (ivyXmlFile.exists()) { - ivyXmlNode = xmlParser.parse(ivyXmlFile) - } - } - - wrapContents = { - List contents, int indentCount, String leftClose, String name, String rightClose -> - - if (!contents) { - return contents - } - - String indent = getIndent(indentCount) - - contents.add(0, indent + name + leftClose) - - String content = contents.last() - - if (content.endsWith(",")) { - contents.pop() - - contents << content.substring(0, content.length() - 1) - } - - contents << indent + rightClose - - return contents - } - - wrapDependency = { - int indentCount, String group, String name, String version -> - - return "${getIndent(indentCount)}[group: \"${group}\", name: \"${name}\", version: \"${version}\"]," - } - - wrapProjectDependency = { - int indentCount, String projectDependencyPath -> - - return "${getIndent(indentCount)}project(\"${projectDependencyPath}\")," - } - - wrapProperty = { - int indentCount, String name, String value = "" -> - - if (value) { - return "${getIndent(indentCount)}${name} = \"${value}\"" - } - - return [] - } - - wrapServiceJar = { - int indentCount, String serviceJarFileName -> - - return "${getIndent(indentCount)}files(\"${serviceJarFileName}\")," - } - - writeBuildGradleFile = { - List contents = [] - - contents.addAll(getBuildGradleDependencies()) - contents.addAll(getBuildGradleExt()) - - File buildGradleFile = file("build.gradle") - - buildGradleFile.withWriter { - BufferedWriter bufferedWriter -> - - contents.each { - bufferedWriter.writeLine it - } - } - } - - readLegacyXmls() - - writeBuildGradleFile() -} - -war { - Closure getLanguageProperties - Closure getNewDependencyNames - Closure setManifest - - destinationDir = file("${rootDir}/dist2") - - duplicatesStrategy "exclude" - - exclude "WEB-INF/lib/*" - - filesMatching("WEB-INF/liferay-hook.xml") { - filter { - line -> - - line.contains("content/Language*.properties") ? getLanguageProperties() : line - } - } - - getLanguageProperties = { - StringBuilder sb = new StringBuilder() - - File contentDir = file("${pluginSrcDir}/content") - - File[] files = contentDir.listFiles() - - for (int i = 0; i < files.length; i++) { - File file = files[i] - - sb << "\tcontent/" + file.name + "" - - if ((i + 1) < files.length) { - sb << "\n" - } - } - - return sb.toString() - } - - getNewDependencyNames = { - configurations.compile.resolvedConfiguration.resolvedArtifacts.collectEntries { - ModuleVersionIdentifier moduleVersionIdentifier = it.moduleVersion.id - - [(String)"${moduleVersionIdentifier.name}-${moduleVersionIdentifier.version}.jar", (String)"${moduleVersionIdentifier.name}.jar"] - } - }.memoize() - - setManifest = { - File manifestFile - - if (osgiPlugin) { - manifestFile = file("src/META-INF/MANIFEST.MF") - } - else { - manifestFile = file("docroot/META-INF/MANIFEST.MF") - } - - if (manifestFile.exists()) { - manifest.from manifestFile - } - else { - CopySpec copySpec = rootSpec.children.find { - CopySpecResolver copySpecResolver = it.buildRootResolver() - - copySpecResolver.destPath.pathString == "META-INF" - } - - if (copySpec) { - copySpec.exclude "**" - } - } - } - - outputs.file archivePath - - rootSpec.children*.rename { - String fileName -> - - Map newDependencyNames = getNewDependencyNames(); - - return newDependencyNames[fileName] ?: fileName - } - - setManifest() -} \ No newline at end of file diff --git a/build-themes.gradle b/build-themes.gradle deleted file mode 100644 index 4fbcec2ee65e..000000000000 --- a/build-themes.gradle +++ /dev/null @@ -1,150 +0,0 @@ -configurations { - portalToolsBuildThumbnails - - portalToolsBuildThumbnails.extendsFrom portalTools -} - -dependencies { - portalToolsBuildThumbnails group: "com.liferay", name: "org.monte", version: "0.7.7" - - if (exists("docroot/WEB-INF/src")) { - compile configurations.pluginRequiredLibraries - compile project(":shared:portal-compat-shared") - } - else { - providedCompile configurations.pluginRequiredLibraries - } -} - -task buildThumbnails -task compileTheme - -buildCss { - dependsOn compileTheme -} - -buildThumbnails << { - FileTree screenshotsFileTree = fileTree(dir: "docroot/_diffs/images", include: "**/screenshot.png") - - screenshotsFileTree.each { - File screenshotFile -> - - File thumbnailFile = file(screenshotFile.absolutePath.replace("screenshot.png", "thumbnail.png")) - - javaexec { - args( - "thumbnail.original.file=${screenshotFile.absolutePath}", - "thumbnail.thumbnail.file=${thumbnailFile}", - "thumbnail.height=120", - "thumbnail.width=160", - "thumbnail.overwrite=false" - ) - - classpath configurations.portalToolsBuildThumbnails - - main "com.liferay.portal.tools.ThumbnailBuilder" - } - } -} - -classes { - dependsOn compileTheme -} - -compileTheme { - ext.docrootDir = file("docroot") - ext.diffsDir = file("docroot/_diffs") - - afterEvaluate { - if (!project.hasProperty("themeParent")) { - project.ext.themeParent = null - } - - if (!project.hasProperty("themeType")) { - project.ext.themeType = "vm" - } - - if (themeParent && !(project.themeParent in ["_styled", "_unstyled", "classic", "control_panel"])) { - File themeParentDir = file(themeParent) - - if (themeParentDir.exists()) { - themeParent = themeParentDir.name - } - - dependsOn ":themes:${themeParent}:compileTheme" - - themeParentDir.eachDir { - if (!(it.name in ["_diffs", "WEB-INF"])) { - inputs.dir it - } - } - } - } - - dependsOn buildThumbnails - - if (diffsDir.exists()) { - inputs.dir diffsDir - - docrootDir.eachDir { - if (!(it.name in ["_diffs", "WEB-INF"])) { - outputs.dir it - } - } - } -} - -compileTheme << { - Closure copyPortalThemeDir - - copyPortalThemeDir = { - String theme, String include, List excludes = [] -> - - ant.unzip(dest: docrootDir, src: configurations.portalWeb.singleFile) { - ant.cutdirsmapper(dirs: 3) - - ant.patternset() { - excludes.each { - ant.exclude(name: "html/themes/${theme}/${it}") - } - - ant.include(name: "html/themes/${theme}/${include}") - } - } - } - - if (themeParent in ["_styled", "_unstyled"]) { - copyPortalThemeDir("_unstyled", "**", ["templates/**"]) - copyPortalThemeDir("_unstyled", "templates/**/*.${themeType}", ["templates/init.${themeType}"]) - } - - if (themeParent == "_styled") { - copyPortalThemeDir("_styled", "**") - } - else if (themeParent in ["classic", "control_panel"]) { - copyPortalThemeDir(themeParent, "**", ["**/.sass-cache/**", "_diffs/**", "templates/**"]) - copyPortalThemeDir(themeParent, "templates/*.${themeType}") - } - else if (themeParent && (themeParent != "_unstyled")) { - copy { - exclude "**/.sass-cache/**" - exclude "_diffs/**" - exclude "WEB-INF/*.properties" - exclude "WEB-INF/*.xml" - from project(":themes:" + themeParent).file("docroot") - into docrootDir - } - } - - - if (diffsDir.exists()) { - copy { - from diffsDir - into docrootDir - } - } -} - -war { - exclude "_diffs.*", "_diffs/**" -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index b9f8a2e89a07..64b80b339027 100644 --- a/build.gradle +++ b/build.gradle @@ -1,89 +1,24 @@ -apply from: "${gradle.lfrSdkDir}/app-servers.gradle" -apply from: "${gradle.lfrSdkDir}/versions.gradle" - -Closure commonProjectCondition -Closure commonProjects -Closure configureProjects -Closure pluginProjectCondition -Closure pluginProjects - -commonProjectCondition = { - true -} - -commonProjects = { - apply from: "${gradle.lfrSdkDir}/util.gradle" - - configurations { - all { - resolutionStrategy.cacheChangingModulesFor 15, 'minutes' - } - } - +buildscript { repositories { + mavenLocal() + maven { url "http://cdn.repository.liferay.com/nexus/content/groups/public" } } -} -configureProjects = { - currentProject, projectCondition, projectConfig -> - - if (!projectCondition(currentProject)) { - return + dependencies { + classpath group: 'com.liferay', name: 'com.liferay.ant.bnd', version: 'latest.release' + classpath group: 'com.liferay', name: 'com.liferay.gradle.plugins', version: '1.0.0-SNAPSHOT' } - - configure(currentProject, projectConfig) } -pluginProjectCondition = { - it.exists("build.gradle") && it.parent -} - -pluginProjects = { - Closure loadProperties - - loadProperties = { - File file = project.file(it) - - Properties properties = new Properties() - - if (file.exists()) { - InputStream inputStream = new FileInputStream(file) - - inputStream.withStream { - properties.load(it) - } - } - - return properties - } - - project.ext { - bndProperties = loadProperties("bnd.bnd") - osgiPlugin = project.exists("bnd.bnd") - pluginPackageProperties = loadProperties("docroot/WEB-INF/liferay-plugin-package.properties") - pluginSrcDir = { - File file = project.file("docroot/WEB-INF/src") - - if (!file.exists()) { - return project.file("src") - } - - return file - }() - } +gradle.beforeProject { + Project project -> - apply from: "${gradle.lfrSdkDir}/build-plugins.gradle" + File buildGradleFile = project.file("build.gradle") - if (name.endsWith("-theme")) { - apply from: "${gradle.lfrSdkDir}/build-themes.gradle" + if (buildGradleFile.exists() && project.parent) { + project.apply from: rootProject.file("build-plugin.gradle") } -} - -gradle.beforeProject { - configureProjects(it, commonProjectCondition, commonProjects) - - configureProjects(it, pluginProjectCondition, pluginProjects) } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 8be00d5daf44..ce6266e2db9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,8 @@ -appServerType=tomcat +jmx.remote.port=8099 -jmxRemotePort=8099 +app.server.tomcat.manager.user=tomcat +app.server.tomcat.manager.password=tomcat org.gradle.configureondemand=true -org.gradle.parallel=true \ No newline at end of file + +spring.extender.time.to.wait=600 \ No newline at end of file diff --git a/sdk.gradle b/sdk.gradle index c043bf6ae969..beccba0c517a 100644 --- a/sdk.gradle +++ b/sdk.gradle @@ -1,7 +1,6 @@ import org.apache.commons.codec.digest.DigestUtils import org.apache.tools.ant.filters.ReplaceTokens -apply from: "app-servers.gradle" apply from: "util.gradle" buildscript { @@ -236,11 +235,11 @@ createHook << { filter( ReplaceTokens, tokens: [ - "app.server.tomcat.manager.password": appServers.tomcat.managerPassword, - "app.server.tomcat.manager.user": appServers.tomcat.managerUser, + "app.server.tomcat.manager.password": project.properties["app.server.tomcat.manager.user"], + "app.server.tomcat.manager.user": project.properties["app.server.tomcat.manager.password"], "hook.display.name": hookDisplayName, "hook.name": hookName, - "jmx.remote.port": jmxRemotePort, + "jmx.remote.port": project.properties["jmx.remote.port"], "plugin.type.dir": ".." ]) @@ -500,9 +499,9 @@ createPortlet << { processTokens = { ant.replace(dir: portletDir) { - ant.replacefilter(token: "@app.server.tomcat.manager.password@", value: appServers.tomcat.managerPassword) - ant.replacefilter(token: "@app.server.tomcat.manager.user@", value: appServers.tomcat.managerUser) - ant.replacefilter(token: "@jmx.remote.port@", value: jmxRemotePort) + ant.replacefilter(token: "@app.server.tomcat.manager.password@", value: project.properties["app.server.tomcat.manager.password"]) + ant.replacefilter(token: "@app.server.tomcat.manager.user@", value: project.properties["app.server.tomcat.manager.user"]) + ant.replacefilter(token: "@jmx.remote.port@", value: project.properties["jmx.remote.port"]) ant.replacefilter(token: "@plugin.type.dir@", value: "..") ant.replacefilter(token: "@portlet.display.name@", value: portletDisplayName) ant.replacefilter(token: "@portlet.java.class.name@", value: portletJavaClassName) diff --git a/settings.gradle b/settings.gradle index 9807419896cd..b07d0c790cb0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,94 +1,17 @@ -def loadProperties = { - Properties properties, String fileName -> - - File file = file(fileName) - - if (file.exists()) { - properties.load(new FileInputStream(file)) - } -} - -Properties antProperties = new Properties() - -loadProperties(antProperties, "build.properties") -loadProperties(antProperties, "build." + System.properties["user.name"] + ".properties") -loadProperties(antProperties, "build." + System.properties["COMPUTERNAME"] + ".properties") -loadProperties(antProperties, "build." + System.properties["HOST"] + ".properties") -loadProperties(antProperties, "build." + System.properties["HOSTNAME"] + ".properties") - -if (!hasProperty("lfrPluginsExcludes")) { - ext.lfrPluginsExcludes = antProperties["plugins.excludes"] -} - -if (!hasProperty("lfrPluginsIncludes")) { - ext.lfrPluginsIncludes = antProperties["plugins.includes"] -} - FileTree fileTree = fileTree(rootDir) { - if ((lfrPluginsIncludes != "") && (lfrPluginsIncludes != "*")) { - lfrPluginsIncludes = lfrPluginsIncludes.replaceAll(" ", "") - lfrPluginsIncludes = lfrPluginsIncludes.replaceAll(",+", ",") - - def lfrPluginsIncludesArray = lfrPluginsIncludes.split(",") - - lfrPluginsIncludesArray = lfrPluginsIncludesArray.collect( - { - "**/" + it + "/build.gradle" - } - ) - - lfrPluginsIncludesArray.each( - { - include(it) - } - ) - } - else { - include("**/build.gradle") - } - - if ((lfrPluginsExcludes != "") && (lfrPluginsExcludes != "*")) { - lfrPluginsExcludes = lfrPluginsExcludes.replaceAll(" ", "") - lfrPluginsExcludes = lfrPluginsExcludes.replaceAll(",+", ",") - - String[] lfrPluginsExcludesArray = lfrPluginsExcludes.split(",") - - lfrPluginsExcludesArray = lfrPluginsExcludesArray.collect( - { - "**/" + it + "/build.gradle" - } - ) - - lfrPluginsExcludesArray.each( - { - exclude(it) - } - ) - } - else { - exclude("**/build.gradle") - } - - exclude("build.gradle") - exclude("tools/**/build.gradle") + exclude "**/tmp/**" + exclude "tools/**" + include "**/build.gradle" } -fileTree.each( - { - URI rootURI = rootDir.toURI() - - URI pluginURI = it.toURI() - - pluginURI = rootURI.relativize(pluginURI) - - String pluginDir = pluginURI.toString() +URI rootURI = rootDir.toURI() - pluginDir = pluginDir.replaceFirst("/build.gradle", "") +fileTree.each { + File buildGradleFile -> - include(":" + pluginDir.replaceAll("[\\/]", ":")) - } -) + String moduleDirName = rootURI.relativize(buildGradleFile.toURI()) -include(":shared:portal-compat-shared") + moduleDirName = moduleDirName.replaceFirst("/build.gradle", "") -gradle.ext.lfrSdkDir = file(".") \ No newline at end of file + include ":" + moduleDirName.replaceAll("[\\/]", ":") +} \ No newline at end of file diff --git a/versions.gradle b/versions.gradle deleted file mode 100644 index 7b0818cf1011..000000000000 --- a/versions.gradle +++ /dev/null @@ -1,224 +0,0 @@ -Map> portalDependencies = [ - antlr2: [ - group: "antlr", - name: "antlr", - version: "2.7.7" - ], - axis: [ - group: "axis", - name: "axis", - version: "1.4" - ], - backportConcurrent: [ - group: "backport-util-concurrent", - name: "backport-util-concurrent", - version: "3.1" - ], - bsf: [ - group: "bsf", - name: "bsf", - version: "2.4.0" - ], - commonsBeanutils: [ - group: "commons-beanutils", - name: "commons-beanutils", - version: "1.8.2" - ], - commonsCodec: [ - group: "commons-codec", - name: "commons-codec", - version: "1.9" - ], - commonsCollections: [ - group: "commons-collections", - name: "commons-collections", - version: "3.2.1" - ], - commonsDigester: [ - group: "commons-digester", - name: "commons-digester", - version: "1.8" - ], - commonsDiscovery: [ - group: "commons-discovery", - name: "commons-discovery", - version: "0.4" - ], - commonsFileupload: [ - group: "commons-fileupload", - name: "commons-fileupload", - version: "1.3.1" - ], - commonsHttpclient: [ - group: "commons-httpclient", - name: "commons-httpclient", - version: "3.1" - ], - commonsIo: [ - group: "commons-io", - name: "commons-io", - version: "2.1" - ], - commonsLang: [ - group: "commons-lang", - name: "commons-lang", - version: "2.6" - ], - commonsLogging: [ - group: "commons-logging", - name: "commons-logging", - version: "1.1.3" - ], - commonsMath: [ - group: "org.apache.commons", - name: "commons-math", - version: "2.0" - ], - commonsValidator: [ - group: "commons-validator", - name: "commons-validator", - version: "1.3.1" - ], - dom4j: [ - group: "dom4j", - name: "dom4j", - version: "1.6.1" - ], - hibernateCore: [ - group: "org.hibernate", - name: "hibernate-core", - version: "3.6.10.Final" - ], - ical4j: [ - group: "org.mnode.ical4j", - name: "ical4j", - version: "1.0.2" - ], - jabsorb: [ - group: "org.jabsorb", - name: "jabsorb", - version: "1.3.1" - ], - jaxrpc: [ - group: "javax.xml", - name: "jaxrpc", - version: "1.1" - ], - jcommon: [ - group: "jfree", - name: "jcommon", - version: "1.0.16" - ], - jdom: [ - group: "org.jopendocument", - name: "jdom", - version: "1.1.1" - ], - jfreechart: [ - group: "jfree", - name: "jfreechart", - version: "1.0.13" - ], - jerichoHtml: [ - group: "net.htmlparser.jericho", - name: "jericho-html", - version: "3.1" - ], - jruby: [ - group: "org.jruby", - name: "jruby", - version: "1.6.5" - ], - jsonJava: [ - group: "com.liferay", - name: "com.liferay.org.json", - version: "1.0.0" - ], - jstlApi: [ - group: "javax.servlet.jsp.jstl", - name: "jstl-api", - version: "1.2" - ], - jstlImpl: [ - group: "org.glassfish.web", - name: "jstl-impl", - version: "1.2" - ], - jutf7: [ - group: "com.beetstra.jutf7", - name: "jutf7", - version: "0.9.0" - ], - nekohtml: [ - group: "net.sourceforge.nekohtml", - name: "nekohtml", - version: "1.9.14" - ], - oro: [ - group: "oro", - name: "oro", - version: "2.0.8" - ], - portalsBridges: [ - group: "org.apache.portals.bridges", - name: "portals-bridges-common", - version: "1.0" - ], - rhino: [ - group: "org.mozilla", - name: "rhino", - version: "1.7R4" - ], - rome: [ - group: "rome", - name: "rome", - version: "1.0" - ], - saajApi: [ - group: "javax.xml.soap", - name: "saaj-api", - version: "1.3" - ], - saajImpl: [ - group: "com.sun.xml.messaging.saaj", - name: "saaj-impl", - version: "1.3" - ], - slf4jApi: [ - group: "org.slf4j", - name: "slf4j-api", - version: "1.7.2" - ], - struts: [ - group: "com.liferay", - name: "org.apache.struts", - version: "1.2.9.LIFERAY-PATCHED-1" - ], - utilSlf4j: [ - group: "com.liferay.portal", - name: "util-slf4j", - version: "7.0.0-SNAPSHOT" - ], - wsdl4j: [ - group: "wsdl4j", - name: "wsdl4j", - version: "1.6.1" - ], - xercesImpl: [ - group: "xerces", - name: "xercesImpl", - version: "2.11.0" - ], - xmlApis: [ - group: "xml-apis", - name: "xml-apis", - version: "1.4.01" - ], - xmlsec: [ - group: "org.apache.santuario", - name: "xmlsec", - version: "1.4.5" - ] -] - -ext.portalDependencies = portalDependencies \ No newline at end of file