Merge lp:~sergiusens/snapcraft/maven into lp:~snappy-dev/snapcraft/core

Proposed by Sergio Schvezov on 2015-10-19
Status: Merged
Approved by: John Lenton on 2015-10-20
Approved revision: 251
Merged at revision: 249
Proposed branch: lp:~sergiusens/snapcraft/maven
Merge into: lp:~snappy-dev/snapcraft/core
Diff against target: 205 lines (+109/-5)
9 files modified
examples/tomcat-maven-webapp/snapcraft.yaml (+1/-1)
integration-tests/data/simple-maven/my-app/pom.xml (+18/-0)
integration-tests/data/simple-maven/my-app/src/main/java/com/canonical/testapp/App.java (+13/-0)
integration-tests/data/simple-maven/my-app/src/main/resources/META-INF/application.properties (+1/-0)
integration-tests/data/simple-maven/my-app/src/test/java/com/canonical/testapp/AppTest.java (+38/-0)
integration-tests/data/simple-maven/snapcraft.yaml (+15/-0)
integration-tests/units/jobs.pxu (+7/-0)
snapcraft/plugins/jdk.py (+0/-3)
snapcraft/plugins/maven.py (+16/-1)
To merge this branch: bzr merge lp:~sergiusens/snapcraft/maven
Reviewer Review Type Date Requested Status
John Lenton 2015-10-19 Approve on 2015-10-20
Review via email: mp+274964@code.launchpad.net

Commit Message

Add support for maven options

To post a comment you must log in.
lp:~sergiusens/snapcraft/maven updated on 2015-10-20
251. By Sergio Schvezov on 2015-10-20

Adding an integration test

John Lenton (chipaca) wrote :

lgtm!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'examples/tomcat-maven-webapp/snapcraft.yaml'
2--- examples/tomcat-maven-webapp/snapcraft.yaml 2015-10-08 19:33:48 +0000
3+++ examples/tomcat-maven-webapp/snapcraft.yaml 2015-10-20 01:49:22 +0000
4@@ -19,7 +19,7 @@
5 source: git://github.com/lool/snappy-mvn-demo.git
6 tomcat:
7 plugin: tar-content
8- source: http://mirrors.ircam.fr/pub/apache/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz
9+ source: http://mirrors.ircam.fr/pub/apache/tomcat/tomcat-8/v8.0.28/bin/apache-tomcat-8.0.28.tar.gz
10 local-files:
11 plugin: make
12 source: .
13
14=== added directory 'integration-tests/data/simple-maven'
15=== added file 'integration-tests/data/simple-maven/icon.png'
16=== added directory 'integration-tests/data/simple-maven/my-app'
17=== added file 'integration-tests/data/simple-maven/my-app/pom.xml'
18--- integration-tests/data/simple-maven/my-app/pom.xml 1970-01-01 00:00:00 +0000
19+++ integration-tests/data/simple-maven/my-app/pom.xml 2015-10-20 01:49:22 +0000
20@@ -0,0 +1,18 @@
21+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
22+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
23+ <modelVersion>4.0.0</modelVersion>
24+ <groupId>com.canonical.testapp</groupId>
25+ <artifactId>my-app</artifactId>
26+ <packaging>jar</packaging>
27+ <version>1.0-SNAPSHOT</version>
28+ <name>my-app</name>
29+ <url>http://maven.apache.org</url>
30+ <dependencies>
31+ <dependency>
32+ <groupId>junit</groupId>
33+ <artifactId>junit</artifactId>
34+ <version>3.8.1</version>
35+ <scope>test</scope>
36+ </dependency>
37+ </dependencies>
38+</project>
39
40=== added directory 'integration-tests/data/simple-maven/my-app/src'
41=== added directory 'integration-tests/data/simple-maven/my-app/src/main'
42=== added directory 'integration-tests/data/simple-maven/my-app/src/main/java'
43=== added directory 'integration-tests/data/simple-maven/my-app/src/main/java/com'
44=== added directory 'integration-tests/data/simple-maven/my-app/src/main/java/com/canonical'
45=== added directory 'integration-tests/data/simple-maven/my-app/src/main/java/com/canonical/testapp'
46=== added file 'integration-tests/data/simple-maven/my-app/src/main/java/com/canonical/testapp/App.java'
47--- integration-tests/data/simple-maven/my-app/src/main/java/com/canonical/testapp/App.java 1970-01-01 00:00:00 +0000
48+++ integration-tests/data/simple-maven/my-app/src/main/java/com/canonical/testapp/App.java 2015-10-20 01:49:22 +0000
49@@ -0,0 +1,13 @@
50+package com.canonical.testapp;
51+
52+/**
53+ * Hello world!
54+ *
55+ */
56+public class App
57+{
58+ public static void main( String[] args )
59+ {
60+ System.out.println( "Hello World!" );
61+ }
62+}
63
64=== added directory 'integration-tests/data/simple-maven/my-app/src/main/resources'
65=== added directory 'integration-tests/data/simple-maven/my-app/src/main/resources/META-INF'
66=== added file 'integration-tests/data/simple-maven/my-app/src/main/resources/META-INF/application.properties'
67--- integration-tests/data/simple-maven/my-app/src/main/resources/META-INF/application.properties 1970-01-01 00:00:00 +0000
68+++ integration-tests/data/simple-maven/my-app/src/main/resources/META-INF/application.properties 2015-10-20 01:49:22 +0000
69@@ -0,0 +1,1 @@
70+application.hello=${application.hello}
71
72=== added directory 'integration-tests/data/simple-maven/my-app/src/test'
73=== added directory 'integration-tests/data/simple-maven/my-app/src/test/java'
74=== added directory 'integration-tests/data/simple-maven/my-app/src/test/java/com'
75=== added directory 'integration-tests/data/simple-maven/my-app/src/test/java/com/canonical'
76=== added directory 'integration-tests/data/simple-maven/my-app/src/test/java/com/canonical/testapp'
77=== added file 'integration-tests/data/simple-maven/my-app/src/test/java/com/canonical/testapp/AppTest.java'
78--- integration-tests/data/simple-maven/my-app/src/test/java/com/canonical/testapp/AppTest.java 1970-01-01 00:00:00 +0000
79+++ integration-tests/data/simple-maven/my-app/src/test/java/com/canonical/testapp/AppTest.java 2015-10-20 01:49:22 +0000
80@@ -0,0 +1,38 @@
81+package com.canonical.testapp;
82+
83+import junit.framework.Test;
84+import junit.framework.TestCase;
85+import junit.framework.TestSuite;
86+
87+/**
88+ * Unit test for simple App.
89+ */
90+public class AppTest
91+ extends TestCase
92+{
93+ /**
94+ * Create the test case
95+ *
96+ * @param testName name of the test case
97+ */
98+ public AppTest( String testName )
99+ {
100+ super( testName );
101+ }
102+
103+ /**
104+ * @return the suite of tests being tested
105+ */
106+ public static Test suite()
107+ {
108+ return new TestSuite( AppTest.class );
109+ }
110+
111+ /**
112+ * Rigourous Test :-)
113+ */
114+ public void testApp()
115+ {
116+ assertTrue( false );
117+ }
118+}
119
120=== added file 'integration-tests/data/simple-maven/snapcraft.yaml'
121--- integration-tests/data/simple-maven/snapcraft.yaml 1970-01-01 00:00:00 +0000
122+++ integration-tests/data/simple-maven/snapcraft.yaml 2015-10-20 01:49:22 +0000
123@@ -0,0 +1,15 @@
124+name: simple-maven
125+version: 0
126+vendor: Vendor <email@example.com>
127+summary: test maven builds
128+description: |
129+ Test maven builds and options. If the tests aren't skipped we will run into
130+ the assertTrue ( false ) statement and the build will fail.
131+icon: icon.png
132+
133+parts:
134+ m:
135+ plugin: maven
136+ source: my-app
137+ maven-options:
138+ - -DskipTests
139
140=== modified file 'integration-tests/units/jobs.pxu'
141--- integration-tests/units/jobs.pxu 2015-10-15 22:08:19 +0000
142+++ integration-tests/units/jobs.pxu 2015-10-20 01:49:22 +0000
143@@ -135,6 +135,13 @@
144 test "$(./stage/bin/test)" = "Hello world"
145 flags: simple has-leftovers
146
147+id: snapcraft/normal/simple-maven
148+command:
149+ set -ex
150+ cp -rT $PLAINBOX_PROVIDER_DATA/simple-maven .
151+ ${SNAPCRAFT} build
152+flags: simple has-leftovers
153+
154 id: snapcraft/normal/simple-scons
155 command:
156 set -ex
157
158=== modified file 'snapcraft/plugins/jdk.py'
159--- snapcraft/plugins/jdk.py 2015-10-17 02:25:13 +0000
160+++ snapcraft/plugins/jdk.py 2015-10-20 01:49:22 +0000
161@@ -23,9 +23,6 @@
162 super().__init__(name, options)
163 self.stage_packages.append('default-jdk')
164
165- def pull(self):
166- return True
167-
168 def env(self, root):
169 return ['JAVA_HOME=%s/usr/lib/jvm/default-java' % root,
170 'PATH=%s/usr/lib/jvm/default-java/bin:'
171
172=== modified file 'snapcraft/plugins/maven.py'
173--- snapcraft/plugins/maven.py 2015-10-17 02:25:13 +0000
174+++ snapcraft/plugins/maven.py 2015-10-20 01:49:22 +0000
175@@ -28,6 +28,21 @@
176
177 class MavenPlugin(snapcraft.plugins.jdk.JdkPlugin):
178
179+ @classmethod
180+ def schema(cls):
181+ schema = super().schema()
182+ schema['properties']['maven-options'] = {
183+ 'type': 'array',
184+ 'minitems': 1,
185+ 'uniqueItems': True,
186+ 'items': {
187+ 'type': 'string',
188+ },
189+ 'default': [],
190+ }
191+
192+ return schema
193+
194 def __init__(self, name, options):
195 super().__init__(name, options)
196 self.build_packages.append('maven')
197@@ -35,7 +50,7 @@
198 def build(self):
199 super().build()
200
201- if not self.run(['mvn', 'package']):
202+ if not self.run(['mvn', 'package'] + self.options.maven_options):
203 return False
204 jarfiles = glob.glob(os.path.join(self.builddir, 'target', '*.jar'))
205 warfiles = glob.glob(os.path.join(self.builddir, 'target', '*.war'))

Subscribers

People subscribed via source and target branches