Skip to content

Commit

Permalink
Generating all maven examples
Browse files Browse the repository at this point in the history
  • Loading branch information
jmelo-lyncode committed Feb 10, 2017
1 parent aa68d4c commit b40b266
Show file tree
Hide file tree
Showing 73 changed files with 1,839 additions and 27 deletions.
1 change: 1 addition & 0 deletions generate-maven/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
apply from: '../generate-maven/generate-pom.gradle'
33 changes: 33 additions & 0 deletions generate-maven/generate-maven-projects.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

cd ..
ROOT_DIR=`pwd`

for project in `ls | grep "gradle-"`
do
mavenReplica=`echo $project | sed 's/gradle/maven/g'`
if [ ! -d $mavenReplica ]; then
echo "Generating project $mavenReplica"
cp -r $project $mavenReplica
mv $mavenReplica/build.gradle $mavenReplica/build.gradle.bak
cat generate-maven/dependencies.gradle > $mavenReplica/build.gradle
echo "" >> $mavenReplica/build.gradle
cat $mavenReplica/build.gradle.bak >> $mavenReplica/build.gradle
rm $mavenReplica/build.gradle.bak
cd $mavenReplica
./gradlew generatePomFileForMavenProjectPublication projectPom
rm build.gradle
rm settings.gradle
rm -f gradlew
rm -f gradlew.bat
rm -rf gradle
rm -rf .gradle
rm -f *.iml
if [ -d build ]; then
rm -rf build
fi
cd $ROOT_DIR

git add $mavenReplica
fi
done
163 changes: 163 additions & 0 deletions generate-maven/generate-pom.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'maven-publish'

version = releaseVersion()
group = "org.jtwig"

import org.jtwig.version.GetVersion;

buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url "http://dl.bintray.com/jtwig/maven"
}
}

dependencies {
classpath 'org.jtwig:jtwig-versioning:1.+'
}
}

def releaseVersion () {
def isCi = System.getenv("CI")
if ("true".equals(isCi) && "false".equals(System.getenv("TRAVIS_PULL_REQUEST")) && "master".equals(System.getenv("TRAVIS_BRANCH"))) {
return GetVersion.version(System.getenv('BINTRAY_USER'), System.getenv('BINTRAY_KEY'), rootProject.name)
} else {
return "SNAPSHOT"
}
}

configurations {
provided
}

sourceSets {
main.compileClasspath += configurations.provided
test.compileClasspath += configurations.provided
test.runtimeClasspath += configurations.provided
}

task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}


artifacts {
archives sourcesJar, javadocJar
}


publishing {
publications {
BintrayArchives(MavenPublication) {
from components.java

pom.withXml {
// Generate map of resolved versions
Map resolvedVersionMap = [:]
Set<ResolvedArtifact> resolvedArtifacts = configurations.compile.getResolvedConfiguration().getResolvedArtifacts()
resolvedArtifacts.addAll(configurations.testCompile.getResolvedConfiguration().getResolvedArtifacts())
resolvedArtifacts.each {
ModuleVersionIdentifier mvi = it.getModuleVersion().getId();
resolvedVersionMap.put("${mvi.getGroup()}:${mvi.getName()}", mvi.getVersion())
}

// Update dependencies with resolved versions
asNode().dependencies.first().each {
def groupId = it.get("groupId").first().value().first()
def artifactId = it.get("artifactId").first().value().first()
it.get("version").first().value = resolvedVersionMap.get("${groupId}:${artifactId}")
}
}
}

MavenProject(MavenPublication) {
from components.java

pom.withXml {
// Generate map of resolved versions
Node mainPom = asNode();
Map resolvedVersionMap = [:]
Set<ResolvedArtifact> resolvedArtifacts = configurations.compile.getResolvedConfiguration().getResolvedArtifacts()
resolvedArtifacts.addAll(configurations.testCompile.getResolvedConfiguration().getResolvedArtifacts())
resolvedArtifacts.each {
ModuleVersionIdentifier mvi = it.getModuleVersion().getId();
resolvedVersionMap.put("${mvi.getGroup()}:${mvi.getName()}", mvi.getVersion())
}

// Update dependencies with resolved versions
asNode().dependencies.first().each {
def groupId = it.get("groupId").first().value().first()
def artifactId = it.get("artifactId").first().value().first()
it.get("version").first().value = resolvedVersionMap.get("${groupId}:${artifactId}")
it.get("scope").first().value = "compile"
}

Set<ResolvedArtifact> resolvedTestArtifacts = configurations.testCompile.getResolvedConfiguration().getResolvedArtifacts()
resolvedTestArtifacts.each {
ModuleVersionIdentifier mvi = it.getModuleVersion().getId();
boolean addTestDependency = true
configurations.compile.getResolvedConfiguration().getResolvedArtifacts().each {
ModuleVersionIdentifier cmpDep = it.getModuleVersion().getId();
if (mvi.group == cmpDep.group && mvi.name == cmpDep.name) addTestDependency = false
}

if (addTestDependency) {
Node dependency = mainPom.dependencies.first().appendNode("dependency");
dependency.appendNode("groupId", mvi.getGroup())
dependency.appendNode("artifactId", mvi.getName())
dependency.appendNode("version", mvi.getVersion())
dependency.appendNode("scope", "test")
}
}


configurations.provided.getResolvedConfiguration().getResolvedArtifacts().each {
ModuleVersionIdentifier mvi = it.getModuleVersion().getId();
Node dependency = mainPom.dependencies.first().appendNode("dependency");
dependency.appendNode("groupId", mvi.getGroup())
dependency.appendNode("artifactId", mvi.getName())
dependency.appendNode("version", mvi.getVersion())
dependency.appendNode("scope", "provided")
}

Node repositories = asNode().appendNode("repositories");

project.repositories.each {
if (it.name != "MavenLocal") {
Node repository = repositories.appendNode("repository");
repository.appendNode("id", it.name);
repository.appendNode("url", it.url);
}
}

Node compilerPlugin = asNode().appendNode("build").appendNode("plugins").appendNode("plugin");
compilerPlugin.appendNode("groupId", "org.apache.maven.plugins");
compilerPlugin.appendNode("artifactId", "maven-compiler-plugin");
compilerPlugin.appendNode("version", "3.6.1");

Node compilerPluginConfig = compilerPlugin.appendNode("configuration");
compilerPluginConfig.appendNode("source", project.sourceCompatibility);
compilerPluginConfig.appendNode("target", project.targetCompatibility);

}
}
}
}

task projectPom (type: Copy) {
from "build/publications/MavenProject/pom-default.xml"
into '.'
rename { String fileName ->
fileName.replace("pom-default.xml", "pom.xml")
}
}
72 changes: 47 additions & 25 deletions maven-jtwig-core-simple/pom.xml
Original file line number Diff line number Diff line change
@@ -1,26 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.jtwig.example</groupId>
<artifactId>jtwig-core-simple</artifactId>
<version>1.0</version>

<repositories>
<repository>
<id>bintray</id>
<url>https://jcenter.bintray.com/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>org.jtwig</groupId>
<artifactId>jtwig-core</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>

</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jtwig</groupId>
<artifactId>gradle-jtwig-core-simple</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.jtwig</groupId>
<artifactId>jtwig-core</artifactId>
<version>5.70</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>MavenRepo</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>BintrayJCenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
<repository>
<id>maven</id>
<url>http://dl.bintray.com/jtwig/maven</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

public class SimpleApp {
public static void main(String[] args) {
JtwigTemplate template = JtwigTemplate.inlineTemplate("Hello {{ var }}");
JtwigTemplate template = JtwigTemplate.classpathTemplate("templates/example.twig");
JtwigModel model = JtwigModel.newModel().with("var", "World");

template.render(model, System.out);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hello {{ var }}
48 changes: 48 additions & 0 deletions maven-jtwig-json-extension-simple/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jtwig</groupId>
<artifactId>gradle-jtwig-json-extension-simple</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.jtwig</groupId>
<artifactId>jtwig-json-extension</artifactId>
<version>1.51</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>MavenRepo</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>BintrayJCenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
<repository>
<id>maven</id>
<url>http://dl.bintray.com/jtwig/maven</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package org.jtwig.example.json;

import org.jtwig.JtwigModel;
import org.jtwig.JtwigTemplate;
import org.jtwig.environment.EnvironmentConfiguration;
import org.jtwig.environment.EnvironmentConfigurationBuilder;
import org.jtwig.json.JsonExtension;

public class SimpleJsonApp {
public static void main(String[] args) {
EnvironmentConfiguration configuration = EnvironmentConfigurationBuilder.configuration()
.extensions().add(JsonExtension.defaultJsonExtension()).and()
.build();
JtwigTemplate jtwigTemplate = JtwigTemplate.inlineTemplate("{{ json_encode(variable) }}", configuration);
JtwigModel jtwigModel = JtwigModel.newModel().with("variable", new Model(
"My Name", 30, "Committer"
));

System.out.println(jtwigTemplate.render(jtwigModel));
}

private static class Model {
private final String name;
private final int age;
private final String group;

public Model(String name, int age, String group) {
this.name = name;
this.age = age;
this.group = group;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}

public String getGroup() {
return group;
}
}
}
Loading

0 comments on commit b40b266

Please sign in to comment.