summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/GWT-VERSION.properties2
-rw-r--r--build/VERSION.properties1
-rw-r--r--build/bin/package-diff.py2
-rw-r--r--build/build.properties6
-rw-r--r--build/build.xml178
-rw-r--r--build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java5
-rw-r--r--build/common.xml55
-rw-r--r--build/ivy/buildhelpers-ivy.xml13
-rw-r--r--build/ivy/ivy.xml46
-rw-r--r--build/ivy/ivysettings.xml24
-rw-r--r--build/ivy/module/smartsprites-ivy-0.2.3-itmill.xml38
11 files changed, 250 insertions, 120 deletions
diff --git a/build/GWT-VERSION.properties b/build/GWT-VERSION.properties
new file mode 100644
index 0000000000..028ad8b4de
--- /dev/null
+++ b/build/GWT-VERSION.properties
@@ -0,0 +1,2 @@
+gwt-version=2.4.0
+gwt-version-dependencies=validation-api-1.0.0.GA.jar, validation-api-1.0.0.GA-sources.jar
diff --git a/build/VERSION.properties b/build/VERSION.properties
new file mode 100644
index 0000000000..ce706c5d02
--- /dev/null
+++ b/build/VERSION.properties
@@ -0,0 +1 @@
+version=7.0.0 \ No newline at end of file
diff --git a/build/bin/package-diff.py b/build/bin/package-diff.py
index f3b0d59562..a9f29e40a9 100644
--- a/build/bin/package-diff.py
+++ b/build/bin/package-diff.py
@@ -56,7 +56,7 @@ def listJarFiles(jarfile):
# JAPI - Java API Differences
################################################################################
def japize(version, jarfile):
- cmd = "%s as %s apis %s +com.vaadin, $JAVA_HOME/jre/lib/rt.jar lib/core/**/*.jar 2>/dev/null" % (JAPIZE, version, jarfile)
+ cmd = "%s as %s apis %s +com.vaadin, $JAVA_HOME/jre/lib/rt.jar 2>/dev/null" % (JAPIZE, version, jarfile)
command (cmd)
return "%s.japi.gz" % (version)
diff --git a/build/build.properties b/build/build.properties
index 9e126a4479..a1b285c952 100644
--- a/build/build.properties
+++ b/build/build.properties
@@ -10,10 +10,8 @@ snapshot.repository.url=http://oss.sonatype.org/content/repositories/vaadin-snap
# These are required when compiling WebContent/VAADIN/widgetsets (and also
# Java server-side classes).
-# Using special -noservlet packages to be able to use a different version of
-# the servlet specification than what the GWT JARs include.
-lib-gwt-dev=${gwt-dir}/gwt-dev-noservlet.jar
-lib-gwt-user=${gwt-dir}/gwt-user-noservlet.jar
+lib-gwt-dev=${gwt-dir}/gwt-dev.jar
+lib-gwt-user=${gwt-dir}/gwt-user.jar
# FIXME: Should use ${gwt-version-dependencies}
lib-gwt-validation=${gwt-dir}/validation-api-1.0.0.GA.jar
lib-gwt-validation-src=${gwt-dir}/validation-api-1.0.0.GA-sources.jar
diff --git a/build/build.xml b/build/build.xml
index a6a75b8918..573c799f7d 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -2,9 +2,14 @@
<project xmlns:antcontrib="antlib:net.sf.antcontrib"
xmlns:artifact="antlib:org.apache.maven.artifact.ant"
+ xmlns:ivy="antlib:org.apache.ivy.ant"
name="Vaadin"
basedir="../" default="package-all">
+ <property name="project.root" value="."/>
+ <!-- Import common targets -->
+ <import file="./common.xml" />
+
<!--Call one of package-* targets unless you understand what you are doing. -->
<target name="package-all" depends="clean-all, init, build, javadoc, internal-package-war, internal-package-liferay, differences" description="Build public packages.">
</target>
@@ -17,33 +22,15 @@
<target name="package-liferay-zip" depends="clean-result, init, build, internal-package-liferay">
</target>
-
- <!-- Locations of Ant task JARs - build properties not yet read at this point -->
- <property name="ant.task.jar.antcontrib" value="build/lib/ant-contrib-1.0b3.jar" />
- <property name="ant.task.jar.maven" value="build/lib/maven-ant-tasks-2.0.10.jar" />
- <path id="emma.lib" >
- <pathelement location="build/lib/emma_ant.jar" />
- <pathelement location="build/lib/emma-2.0.5312-patched.jar" />
- </path>
-
- <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
-
- <!-- ant contrib required for flow control (for loop, if, property override) -->
- <!-- Note that we have to use a namespace to avoid clash when running sub-ant. -->
- <taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml">
- <classpath>
- <pathelement location="${ant.task.jar.antcontrib}" />
- </classpath>
- </taskdef>
-
- <!-- ant contrib for Maven integration -->
- <path id="maven-ant-tasks.classpath" path="${ant.task.jar.maven}" />
- <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
- uri="antlib:org.apache.maven.artifact.ant"
- classpathref="maven-ant-tasks.classpath" />
+ <target name="init-deps" depends="common.init-deps" >
+ <property name="ivy.resolved" value="1" />
+ <ivy:resolve file="build/ivy/ivy.xml" resolveid="common" conf="ss.compile, cs.compile, ss.test.compile"/>
+ <ivy:cachepath pathid="compile.classpath.server-side" conf="ss.compile"/>
+ <ivy:cachepath pathid="compile.classpath.client-side" conf="cs.compile"/>
+ <ivy:cachepath pathid="compile.classpath.server-side-tests" conf="ss.test.compile"/>
+ </target>
-
<!-- Clean results - - - - - - - - - - - - - - - - - - - - - - - - - -->
<target name="clean-result" depends="build.properties">
@@ -88,23 +75,11 @@
<echo>Java version is ${ant.java.version} as required.</echo>
</target>
- <!-- Check Servlet API version. -->
- <!-- We must use Servlet API 2.3 to catch incompatibilities.. -->
- <target name="check-servlet-version">
- <available classpathref="compile.classpath" classname="javax.servlet.Servlet" property="servlet.available"/>
- <fail unless="servlet.available" message="Java Servlet API library is not available."/>
- <echo>Java Servlet API is available.</echo>
-
- <available classpathref="compile.classpath" classname="javax.servlet.ServletRequestListener" property="servlet.version.is-2.4"/>
- <fail if="servlet.version.is-2.4" message="Java Servlet API 2.4 or later detected. Vaadin must be compiled exactly with Servlet API 2.3."/>
- <echo>Java Servlet API specification 2.3 used.</echo>
- </target>
-
<!-- ================================================================== -->
<!-- Initialization - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- ================================================================== -->
- <target name="init" depends="check-java-version, build.properties">
+ <target name="init" depends="init-deps, build.properties">
<!-- Current timestamp in different formats. -->
<tstamp>
<format property="build.date" pattern="yyyy-MM-dd"/>
@@ -157,6 +132,9 @@
<!-- init-nonpackage target before calling this main init target. -->
<property name="widgetsets-output-dir" value="${output-dir}/WebContent/VAADIN/widgetsets" />
+ <!-- Build helpers -->
+ <property name="buildhelpers-src" value="build/buildhelpers" />
+ <property name="buildhelpers-classes" value="${result-path}/buildhelpers/classes" />
<!-- Create Output Directory Hierarchy -->
<mkdir dir="${output-dir}/WebContent" />
@@ -167,31 +145,6 @@
<mkdir dir="${output-dir}/WebContent/WEB-INF" />
<mkdir dir="${output-dir}/WebContent/WEB-INF/lib" />
<mkdir dir="${output-dir}/WebContent/WEB-INF/classes" />
-
- <!-- Construct classpath used by java and javadoc compilation -->
- <path id="compile.classpath">
- <pathelement path="build/lib/servlet.jar" />
- <fileset dir="lib/core">
- <include name="**/*.jar"/>
-
- <!-- Exclude these as they contain Servlet API 2.4. -->
- <!-- The gwt-*-noservlet.jar are then used instead. -->
- <exclude name="**/servlet-api*.jar"/>
- <exclude name="**/gwt-dev.jar"/>
- <exclude name="**/gwt-user.jar"/>
- </fileset>
- <fileset dir="lib/tests">
- <include name="**/*.jar"/>
- </fileset>
- </path>
- <path id="compile.classpath.server-side">
- <path refid="compile.classpath"/>
- </path>
- <path id="compile.classpath.client-side">
- <path refid="compile.classpath"/>
- <pathelement path="${lib-gwt-user}" />
- <pathelement path="${lib-gwt-dev}" />
- </path>
</target>
<target name="internal-package-war">
@@ -204,8 +157,7 @@
<include name="${vaadin-package}/launcher/**" />
</fileset>
<fileset dir="${result-classes-junit}">
- <!-- VaadinClasses is used by both JUnit and TestBench tests -->
- <include name="**/VaadinClasses*.class" />
+ <!-- VaadinClasses and data classes are used by TestBench tests also -->
</fileset>
<!-- test resources -->
<fileset dir="tests/testbench">
@@ -226,6 +178,7 @@
<war warfile="${result-path}/${test-war-filename}">
<fileset dir="${output-dir}/WebContent">
+ <exclude name="VAADIN/gwt-unitCache" />
<!-- Already in JAR -->
<!-- Not excluded because used from WAR by portal integration tests
<exclude name="VAADIN/themes/base/**/*" />
@@ -264,7 +217,11 @@
<include name="reindeer/**/*" />
</patternset>
</zipfileset>
-
+ <zipfileset prefix="VAADIN" dir="${output-dir}/WebContent/VAADIN">
+ <patternset>
+ <include name="vaadinBootstrap.js" />
+ </patternset>
+ </zipfileset>
</zip>
<echo>##teamcity[publishArtifacts '${result-path}/${base-name}-liferay.zip']</echo>
@@ -395,28 +352,25 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<target name="webcontent" depends="preprocess-src,defaulttheme">
- <!-- copy 3rd part libraries used by tests -->
- <copy todir="${output-dir}/WebContent/tests/lib">
- <fileset dir="lib/core">
- <include name="jetty/**/*" />
- </fileset>
- <fileset dir="build/lib">
- <include name="emma-2.0.5312-patched.jar" />
- </fileset>
- </copy>
-
<!-- Add WebContent -->
<echo>Adding VAADIN/themes and META-INF</echo>
<copy todir="${output-dir}/WebContent">
<fileset dir="WebContent">
<exclude name="**/.svn" />
- <!-- TODO check what is necessary -->
<include name="WEB-INF/lib/hsqldb.jar" />
<include name="VAADIN/themes/**/*" />
+ <include name="VAADIN/vaadinBootstrap.js" />
<include name="META-INF/**/*" />
</fileset>
</copy>
+ <!-- Add test files to be included in test war -->
+ <copy todir="${output-dir}/WebContent">
+ <fileset dir="WebContent">
+ <include name="statictestfiles/**" />
+ </fileset>
+ </copy>
+
<!-- Add servlet and portlet configuration files from WebContent -->
<copy todir="${output-dir}/WebContent/WEB-INF">
<fileset dir="WebContent/WEB-INF">
@@ -466,7 +420,7 @@
<echo>Compiling src (Server and client side JUnit tests)</echo>
<!-- Compile server and client side JUnit tests -->
<mkdir dir="${result-classes-junit}" />
- <javac source="1.5" target="1.5" classpathref="compile.classpath.server-side" destdir="${result-classes-junit}" debug="true" encoding="UTF-8" includeantruntime="false">
+ <javac source="1.5" target="1.5" classpathref="compile.classpath.server-side-tests" destdir="${result-classes-junit}" debug="true" encoding="UTF-8" includeantruntime="false">
<classpath path="${result-classes-core}"></classpath>
<src path="${result-src-junit}"/>
</javac>
@@ -483,19 +437,20 @@
</target>
<target name="compile-helpers" depends="init">
- <javac source="1.5" target="1.5" srcdir="build/buildhelpers" classpath="build/smartsprites/lib/smartsprites-0.2.3-itmill.jar" includeantruntime="false"/>
+ <mkdir dir="${buildhelpers-classes}" />
+ <ivy:cachepath pathid="buildhelpers.dependencies" resolveId="buildhelpers" conf="compile" file="build/ivy/buildhelpers-ivy.xml"/>
+ <javac source="1.5" target="1.5" includeantruntime="false" srcdir="${buildhelpers-src}"
+ classpathref="buildhelpers.dependencies" destdir="${buildhelpers-classes}" debug="true" encoding="UTF-8" />
</target>
- <target name="defaulttheme" depends="init, compile-helpers">
+ <target name="defaulttheme" depends="init, compile-helpers" description="Compile all included themes">
<echo>Combining default themes css files</echo>
<java classname="com.vaadin.buildhelpers.CompileDefaultTheme" failonerror="yes" fork="yes">
<arg value="-version" />
<arg value="${version.full}"/>
<classpath>
- <pathelement location="build/buildhelpers" />
- <fileset dir="build/smartsprites/lib">
- <include name="*.jar"/>
- </fileset>
+ <path location="${buildhelpers-classes}" />
+ <path refid="buildhelpers.dependencies" />
</classpath>
<jvmarg value="-Djava.awt.headless=true"/>
</java>
@@ -529,29 +484,25 @@
<!-- The widgetset generator is currently compiled along with rest of server-side Java. -->
<target name="compile-widgetset-generator" depends="compile-core"/>
-
- <path id="widgetset-compile-classpath">
- <pathelement location="${lib-gwt-user}" />
- <pathelement location="${lib-gwt-dev}" />
- <pathelement location="${lib-gwt-validation}" />
- <pathelement location="${lib-gwt-validation-src}" />
- <pathelement location="${result-classes-core}" />
- <pathelement location="${result-src-core}" />
- </path>
-
- <target name="compile-widgetset" description="Compiles the widgetset given as the first parameter">
+ <!-- Compiles the widgetset given as the first parameter -->
+ <target name="compile-widgetset" depends="init-deps">
<fail unless="widgetset" message="No widgetset parameter set"/>
<property name="widgetset-style" value="OBF" />
<property name="widgetset-localWorkers" value="4" />
<property name="widgetset-extraParams" value="" />
<echo>Compiling widgetset ${widgetset}. Output directory: ${widgetsets-output-dir}</echo>
+ <mkdir dir="${widgetsets-output-dir}"/>
<java classname="com.google.gwt.dev.Compiler" failonerror="yes" fork="yes" maxmemory="512m">
- <classpath refid="widgetset-compile-classpath"/>
-
+ <classpath>
+ <path refid="compile.classpath.client-side" />
+ <pathelement location="${result-classes-core}" />
+ <pathelement location="${result-src-core}" />
+ </classpath>
<arg value="-war" />
<arg value="${widgetsets-output-dir}" />
<arg value="-style" />
<arg value="${widgetset-style}" />
+ <arg value="-strict" />
<arg value="-localWorkers" />
<arg value="${widgetset-localWorkers}" />
<arg line="${widgetset-extraParams}" />
@@ -568,12 +519,14 @@
<target name="compile-widgetset-default">
<antcall target="compile-widgetset">
+ <reference refid="compile.classpath.client-side" />
<param name="widgetset" value="com.vaadin.terminal.gwt.DefaultWidgetSet"/>
</antcall>
</target>
<target name="compile-widgetset-portal-default" unless="compile.only.default-widgetset">
<antcall target="compile-widgetset">
+ <reference refid="compile.classpath.client-side" />
<param name="widgetset" value="com.vaadin.portal.gwt.PortalDefaultWidgetSet"/>
</antcall>
</target>
@@ -584,8 +537,8 @@
<target name="compile-client-side" depends="compile-server-side">
<echo>Compiling widget sets in parallel.</echo>
<parallel threadsperprocessor="1">
- <antcall target="compile-widgetset-default"/>
- <antcall target="compile-widgetset-portal-default"/>
+ <antcall inheritrefs="true" target="compile-widgetset-default"/>
+ <antcall inheritrefs="true" target="compile-widgetset-portal-default"/>
</parallel>
</target>
@@ -602,7 +555,7 @@
<target name="widgetsets" depends="init-nonpackage, init, compile-widgetset-generator, compile-client-side"/>
<!-- Build each widgetset locally, i.e., not for an installation package. -->
- <target name="widgetset-default" depends="init-nonpackage, init, compile-widgetset-generator, compile-widgetset-default"/>
+ <target name="widgetset-default" depends="init-nonpackage, init, compile-widgetset-generator, compile-widgetset-default" description="Compile the DefaultWidgetSet"/>
<target name="widgetset-portal-default" depends="init-nonpackage, init, compile-widgetset-generator, compile-widgetset-portal-default"/>
<!-- ================================================================== -->
@@ -659,6 +612,7 @@
<include name="VAADIN/themes/liferay/**/*" />
<include name="VAADIN/themes/runo/**/*" />
<include name="VAADIN/themes/reindeer/**/*" />
+ <include name="VAADIN/vaadinBootstrap.js" />
<include name="release-notes.html" />
<include name="license.html" />
@@ -672,7 +626,7 @@
<java classname="com.vaadin.buildhelpers.GeneratePackageExports" failonerror="true" fork="yes">
<arg value="${output-dir}/WebContent/WEB-INF/lib/${lib-jar-name}"/>
<classpath>
- <pathelement location="build/buildhelpers" />
+ <pathelement location="${buildhelpers-classes}" />
</classpath>
</java>
@@ -817,7 +771,7 @@
<tstamp>
<format property="nightly.date" pattern="yyyyMMdd"/>
</tstamp>
- <property name="version.full" value="${version}.${build.tag}-${nightly.date}-c${build.number}"/>
+ <property name="version.full" value="${version}.${build.tag}-${nightly.date}-${build.number}"/>
<echo>Version will be: ${version.full}</echo>
@@ -837,14 +791,10 @@
<echo>Installing ${output-dir}/WebContent/WEB-INF/lib/${lib-jar-name} to ${nightly.publish}</echo>
<echo>Hopefully you have permissions for the copy operation with SSH.</echo>
- <!-- FIXME tries to publish a ZIP; how does the download site handle these? -->
- <property name="package.filename" value="${result-path}/${base-name}.zip"/>
-
<!-- Copy the linux installation package and the JAR. -->
<exec executable="scp" searchpath="true" resultproperty="nightly.install.scp.result">
<arg value="-B"/>
<arg value="${output-dir}/WebContent/WEB-INF/lib/${lib-jar-name}"/>
- <arg value="${package.filename}"/>
<arg value="${nightly.publish}"/>
</exec>
@@ -986,13 +936,12 @@
<pathelement path="${result-classes-core-for-emma-junit}" />
<pathelement path="${result-classes-core}" />
<pathelement path="${result-classes-junit}" />
- <path refid="emma.lib" />
- <path refid="compile.classpath"/>
+ <path refid="compile.classpath.server-side-tests"></path>
</classpath>
<jvmarg value="-Demma.coverage.out.file=../${result-path}/unittests.ec" />
<batchtest fork="yes">
- <fileset dir="tests/server-side" includes="**/*.java" excludes="**/Abstract*.java,**/VaadinClasses.java" />
+ <fileset dir="tests/server-side" includes="**/*.java" excludes="**/Abstract*.java,com/vaadin/tests/data/bean/*.java,com/vaadin/tests/util/*.java,**/VaadinClasses.java" />
<fileset dir="tests/client-side" includes="**/*.java" excludes="**/Abstract*.java" />
</batchtest>
</junit>
@@ -1036,8 +985,8 @@
<!-- Convert tests to run multiple times if failed. -->
<property name="retries" value="2"/>
-
- <property name="package.filename" value="${package.filename}"/>
+
+ <property name="package.filename" value="${basedir}/${package.filename}"/>
<property name="testing.testarea" value="/tmp/testarea"/>
<property name="package.name" value="${package.name}"/>
<property name="test-output-dir" value="../build/test-output" />
@@ -1046,6 +995,9 @@
<property name="com.vaadin.testbench.lib.dir" value="${com.vaadin.testbench.lib.dir}"/>
<property name="com.vaadin.testbench.debug" value="${com.vaadin.testbench.debug}"/>
<property name="com.vaadin.testbench.screenshot.block.error" value="${com.vaadin.testbench.screenshot.block.error}"/>
+
+ <property name="deps.initialized" value="${deps.initialized}"/>
+
</ant>
<emma enabled="${emma.enabled}" >
@@ -1062,7 +1014,7 @@
</target>
<!-- Assumes java classes have been compiled but depends does not work out well as this is run from a <parallel> task-->
- <target name="integration-tests" unless="tests.integration.skip">
+ <target name="integration-tests" depends="init-deps" unless="tests.integration.skip">
<!-- Parameters for the test.xml script. -->
<fail unless="com.vaadin.testbench.tester.host" message="The 'com.vaadin.testbench.tester.host' property must be defined."/>
<fail unless="com.vaadin.testbench.lib.dir" message="The 'com.vaadin.testbench.lib.dir' property must be defined."/>
@@ -1083,6 +1035,8 @@
<property name="sshkey.file" value="${sshkey.file}" />
<property name="passphrase" value="${passphrase}" />
<property name="demo.war" value="${tests.war}"/>
+
+ <property name="deps.initialized" value="${deps.initialized}"/>
</ant>
</target>
</project>
diff --git a/build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java b/build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java
index 15d2acf6e9..0f7ec4a14b 100644
--- a/build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java
+++ b/build/buildhelpers/com/vaadin/buildhelpers/CompileDefaultTheme.java
@@ -224,9 +224,8 @@ public class CompileDefaultTheme {
private static void createSprites(String themeName)
throws FileNotFoundException, IOException {
String[] parameters = new String[] { "--sprite-png-depth", "AUTO",
- "--sprite-png-ie6", "--css-file-suffix", "-sprite",
- "--css-file-encoding", "UTF-8", "--root-dir-path",
- THEME_DIR + themeName, "--log-level", "WARN" };
+ "--css-file-suffix", "-sprite", "--css-file-encoding", "UTF-8",
+ "--root-dir-path", THEME_DIR + themeName, "--log-level", "WARN" };
org.carrot2.labs.smartsprites.SmartSprites.main(parameters);
diff --git a/build/common.xml b/build/common.xml
new file mode 100644
index 0000000000..2886a1698f
--- /dev/null
+++ b/build/common.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+
+<project xmlns:antcontrib="antlib:net.sf.antcontrib"
+ xmlns:artifact="antlib:org.apache.maven.artifact.ant"
+ xmlns:ivy="antlib:org.apache.ivy.ant"
+ name="common"
+ basedir="../"
+ default="init-deps" >
+
+ <property name="ivy.install.version" value="2.2.0"/>
+ <property name="ivy.jar.name" value="ivy-${ivy.install.version}.jar"/>
+ <property name="ivy.jar.dir" value="${user.home}/.ant/lib" />
+ <property name="ivy.jar.file" value="${ivy.jar.dir}/${ivy.jar.name}" />
+
+ <target name="init-deps" description="Configure Ivy dependency management and load common task definitions"
+ depends="init-taskdefs" unless="deps.initialized">
+ <property name="deps.initialized" value="1" />
+ </target>
+
+ <target name="check-ivy-installed">
+ <available property="ivy.installed" file="${ivy.jar.file}"/>
+ <available property="ivy.installed" classname="org.apache.ivy.ant.IvyConfigure" />
+ <antcall target="common.ivy-download" />
+ </target>
+
+ <target name="ivy-download" unless="ivy.installed">
+ <mkdir dir="${ivy.jar.dir}"/>
+ <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true"/>
+ </target>
+
+ <target name="ivy-configure" depends="check-ivy-installed" unless="deps.initialized">
+ <!-- Ivy task definitions -->
+ <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}" />
+ <!-- Ivy settings -->
+ <property name="ivy.settings.file" value="${project.root}/build/ivy/ivysettings.xml" />
+ <ivy:configure/>
+ </target>
+
+ <target name="init-taskdefs" depends="ivy-configure" unless="deps.initialized">
+ <echo>Loading Ant tasks</echo>
+ <ivy:resolve file="${project.root}/build/ivy/ivy.xml" conf="taskdefs" />
+ <ivy:cachepath pathid="taskdefs.classpath" conf="taskdefs" />
+ <taskdef resource="emma_ant.properties" classpathref="taskdefs.classpath" />
+
+ <!-- ant contrib required for flow control (for loop, if, property override) -->
+ <!-- Note that we have to use a namespace to avoid clash when running sub-ant. -->
+ <taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml"
+ classpathref="taskdefs.classpath" />
+
+ <!-- ant contrib for Maven integration -->
+ <taskdef resource="org/apache/maven/artifact/ant/antlib.xml"
+ uri="antlib:org.apache.maven.artifact.ant" classpathref="taskdefs.classpath" />
+ </target>
+
+</project>
diff --git a/build/ivy/buildhelpers-ivy.xml b/build/ivy/buildhelpers-ivy.xml
new file mode 100644
index 0000000000..afccd85973
--- /dev/null
+++ b/build/ivy/buildhelpers-ivy.xml
@@ -0,0 +1,13 @@
+<ivy-module version="2.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation= "http://ant.apache.org/ivy/schemas/ivy.xsd">
+
+ <info organisation="com.vaadin" module="buildhelpers"/>
+ <configurations>
+ <conf name="compile" visibility="private"/>
+ </configurations>
+ <publications />
+ <dependencies>
+ <dependency org="com.carrotsearch" name="smartsprites" rev="0.2.3-itmill" conf="compile->compile(*),master(*)"/>
+ </dependencies>
+</ivy-module> \ No newline at end of file
diff --git a/build/ivy/ivy.xml b/build/ivy/ivy.xml
new file mode 100644
index 0000000000..ffcf7b19c8
--- /dev/null
+++ b/build/ivy/ivy.xml
@@ -0,0 +1,46 @@
+<ivy-module version="2.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation= "http://ant.apache.org/ivy/schemas/ivy.xsd">
+
+ <info organisation="com.vaadin" module="vaadin"/>
+ <configurations >
+ <conf name="ss.compile" extends="cs.compile" description="Server side compilation dependencies" visibility="private"/>
+ <conf name="cs.compile" description="Client side compilation dependencies" visibility="private"/>
+ <conf name="ss.test.compile" extends="ss.compile" description="Test compilation dependencies" visibility="private"/>
+ <conf name="taskdefs" description="Ant task definitions" visibility="private" />
+ </configurations>
+ <publications />
+ <dependencies defaultconf="ss.compile" defaultconfmapping="ss.compile->master">
+
+ <!-- Liferay Portal Service -->
+ <dependency org="com.liferay.portal" name="portal-service" rev="6.0.2" />
+ <!--Portlet API version 2.0 (JSR-286) -->
+ <dependency org="javax.portlet" name="portlet-api" rev="2.0" />
+ <!-- Google App Engine -->
+ <dependency org="com.google.appengine" name="appengine-api-1.0-sdk" rev="1.2.1" />
+
+ <!-- GWT user with dependencies (validation-api) -->
+ <dependency org="com.google.gwt" name="gwt-user" rev="2.4.0" conf="cs.compile->master" />
+ <dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="cs.compile->master,sources" />
+ <!-- GWT dev (incl. servlet-api 2.4 classes) -->
+ <dependency org="com.google.gwt" name="gwt-dev" rev="2.4.0" conf="cs.compile->master" />
+
+ <!-- Test frameworks & related -->
+ <dependency org="junit" name="junit" rev="4.5" conf="ss.test.compile -> master"/>
+ <dependency org="org.easymock" name="easymock" rev="3.0" conf="ss.test.compile -> master, runtime(*)"/>
+ <dependency org="org.hsqldb" name="hsqldb" rev="2.2.6" conf="ss.test.compile -> master, runtime(*)"/>
+
+ <!-- Ant tasks -->
+ <dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="taskdefs ->master"/>
+ <dependency org="org.apache.maven" name="maven-ant-tasks" rev="2.0.10" conf="taskdefs ->master"/>
+
+ <!-- Emma -->
+ <dependency org="emma" name="emma_ant" rev="2.0.5312" conf="ss.test.compile,taskdefs ->master"/>
+ <dependency org="emma" name="emma" rev="2.0.5312-patched" conf="ss.test.compile,taskdefs ->*"/>
+
+ <!-- Bean Validation implementation -->
+ <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.6.1" conf="ss.test.compile -> default"/>
+ <dependency org="org.hibernate" name="hibernate-validator" rev="4.2.0.Final" conf="ss.test.compile -> default"/>
+ </dependencies>
+
+</ivy-module> \ No newline at end of file
diff --git a/build/ivy/ivysettings.xml b/build/ivy/ivysettings.xml
new file mode 100644
index 0000000000..613b8d9ffe
--- /dev/null
+++ b/build/ivy/ivysettings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivysettings>
+ <settings defaultResolver="public" />
+ <resolvers>
+ <ibiblio name="public" m2compatible="true"/>
+ <url name="gwt-redist">
+ <artifact pattern="http://google-web-toolkit.googlecode.com/svn/tools/redist/[organisation]/[artifact](-[revision]).[ext]" />
+ </url>
+ <dual name="custom-smartsprites">
+ <filesystem name="smartsprites-ivy">
+ <ivy pattern="${basedir}/build/ivy/module/[module]-ivy-[revision].xml" />
+ </filesystem>
+ <url name="smartsprites-artifact">
+ <artifact pattern="http://dev.vaadin.com/svn/versions/6.8/build/smartsprites/lib/[artifact](-[revision]).[ext]" />
+ </url>
+ </dual>
+ </resolvers>
+ <modules>
+ <!-- GWT patched Emma -->
+ <module organisation="emma" name="emma" resolver="gwt-redist"/>
+ <!-- IT Mill patched SmartSprites -->
+ <module organisation="com.carrotsearch" name="smartsprites" revision="0.2.3-itmill" resolver="custom-smartsprites"/>
+ </modules>
+</ivysettings> \ No newline at end of file
diff --git a/build/ivy/module/smartsprites-ivy-0.2.3-itmill.xml b/build/ivy/module/smartsprites-ivy-0.2.3-itmill.xml
new file mode 100644
index 0000000000..495b6d00c9
--- /dev/null
+++ b/build/ivy/module/smartsprites-ivy-0.2.3-itmill.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
+ <info organisation="com.carrotsearch"
+ module="smartsprites"
+ revision="0.2.3-itmill"
+ status="release"
+ publication="20111130000000">
+ <license name="BSD license" url="http://csssprites.org/smartsprites.LICENSE" />
+ <description homepage="http://csssprites.org">
+ CSS Sprites Generator Done Right. SmartSprites maintains CSS sprites in your designs,
+ fully automatically. No tedious copying and pasting to your CSS when adding or changing
+ sprited images.
+ </description>
+ </info>
+ <configurations>
+ <conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
+ <conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
+ <conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/>
+ <conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+ <conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/>
+ <conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/>
+ <conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/>
+ <conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/>
+ <conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/>
+ <conf name="optional" visibility="public" description="contains all optional dependencies"/>
+ </configurations>
+ <publications>
+ <artifact name="smartsprites" type="jar" ext="jar" conf="master"/>
+ </publications>
+ <dependencies>
+ <dependency org="com.google.collections" name="google-collections" rev="0.9" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+ <dependency org="args4j" name="args4j" rev="2.0.9" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+ <dependency org="commons-math" name="commons-math" rev="1.1" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+ <dependency org="commons-io" name="commons-io" rev="1.4" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+ <dependency org="commons-lang" name="commons-lang" rev="2.3" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+ <dependency org="junit" name="junit" rev="4.4" force="true" conf="test->runtime(*),master(*)"/>
+ </dependencies>
+</ivy-module>