aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bigtop-tests/test-artifacts/pom.xml1
-rw-r--r--bigtop-tests/test-artifacts/solr/pom.xml46
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/SolrTestBase.groovy85
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexing.groovy40
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexingSolrJ.groovy94
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestPing.groovy28
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestSimple.groovy41
-rw-r--r--bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestStatistics.groovy37
-rw-r--r--bigtop-tests/test-execution/smokes/pom.xml1
-rw-r--r--bigtop-tests/test-execution/smokes/solr/pom.xml96
10 files changed, 469 insertions, 0 deletions
diff --git a/bigtop-tests/test-artifacts/pom.xml b/bigtop-tests/test-artifacts/pom.xml
index 7d201c89..6e4f7b04 100644
--- a/bigtop-tests/test-artifacts/pom.xml
+++ b/bigtop-tests/test-artifacts/pom.xml
@@ -54,6 +54,7 @@
<hbase.version>0.92.1</hbase.version>
<zookeeper.version>3.4.3</zookeeper.version>
<giraph.version>0.2-SNAPSHOT</giraph.version>
+ <solr.version>4.0.0-BETA</solr.version>
</properties>
<dependencyManagement>
diff --git a/bigtop-tests/test-artifacts/solr/pom.xml b/bigtop-tests/test-artifacts/solr/pom.xml
new file mode 100644
index 00000000..affa3746
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<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>
+
+ <parent>
+ <groupId>org.apache.bigtop.itest</groupId>
+ <artifactId>bigtop-smokes</artifactId>
+ <version>0.5.0-incubating-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.bigtop.itest</groupId>
+ <artifactId>solr-smoke</artifactId>
+ <version>0.5.0-incubating-SNAPSHOT</version>
+
+ <name>solrsmoke</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.solr</groupId>
+ <artifactId>solr-solrj</artifactId>
+ <version>${solr.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.6.6</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/SolrTestBase.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/SolrTestBase.groovy
new file mode 100644
index 00000000..a41883f6
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/SolrTestBase.groovy
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke;
+
+import groovy.json.JsonSlurper
+import org.junit.AfterClass
+import org.junit.BeforeClass
+import org.apache.commons.logging.Log
+import org.apache.commons.logging.LogFactory
+
+public class SolrTestBase {
+ static private Log LOG = LogFactory.getLog(SolrTestBase.class);
+ static public final String _updatePathJSON = "/update/json?stream.body="
+ static public final String _adminPath = "/admin"
+
+ static public final String _baseURL = System.getProperty("org.apache.bigtop.itest.solr_url", "http://localhost:8983/");
+
+ @BeforeClass
+ static void before() {
+ // report bad citizens who left docs in the index. Shouldn't be possible, right?
+ // May be too aggressive a test.
+ // It's under discussion whether this should be on a class or test basis since multiple tests in the same
+ // may be order dependent.
+
+ // The pattern should be to index everything in the local BeforeClass perhaps?
+ if (doReq("/select?q=*:*").response.numFound != 0) {
+ LOG.warn("There's a bad citizen in the tests");
+ }
+
+ deleteAllDocs() // guard against bad citizens
+ }
+
+ @AfterClass
+ static void after() {
+ deleteAllDocs() // be a good citizen
+ }
+
+ private static void deleteAllDocs() {
+ // Insure that the index is empty
+ doReq("/update?stream.body=<delete><query>*:*</query></delete>")
+ doReq("/update?stream.body=<commit/>")
+ // Best check to insure we're empty!
+ testEquals(doReq("/select?q=*:*"), "response.numFound", "0")
+ }
+
+ static Object doReq(String url) {
+ String fullUrl = _baseURL + url + ((url.indexOf("?") >= 0) ? "&" : "?") + "wt=json"
+ URLConnection conn = new URL(fullUrl).openConnection()
+ BufferedReader res = new BufferedReader(new InputStreamReader(
+ conn.getInputStream()))
+ String inputLine;
+ StringBuilder sb = new StringBuilder()
+ while ((inputLine = res.readLine()) != null) {
+ sb.append(inputLine)
+ }
+ res.close();
+ return new JsonSlurper().parseText(sb.toString())
+ }
+
+ static void testEquals(Object json, String xpath, String value) {
+ Object me = json
+ xpath.split("\\.").each { part ->
+ if (me) {
+ me = me[part]
+ }
+ }
+ assert (value.equals(me.toString()))
+ }
+
+}
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexing.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexing.groovy
new file mode 100644
index 00000000..97f3edb7
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexing.groovy
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke
+
+import org.junit.BeforeClass
+import org.junit.Test
+
+class TestIndexing extends SolrTestBase {
+ @BeforeClass
+ static void before() {
+ // Index a couple of documents
+ def builder = new groovy.json.JsonBuilder()
+ builder([["id": "doc1", "name": URLEncoder.encode("first test document")],
+ ["id": "doc2", "name": URLEncoder.encode("second test document")]])
+ doReq(_updatePathJSON + builder.toString() + "&commit=true")
+ }
+
+ @Test
+ public void testSearch() {
+ testEquals(doReq("/select?q=*:*"), "response.numFound", "2")
+ testEquals(doReq("/select?q=name:first"), "response.numFound", "1")
+ testEquals(doReq("/select?q=name:document"), "response.numFound", "2")
+ testEquals(doReq("/select?q=none"), "response.numFound", "0")
+ }
+}
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexingSolrJ.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexingSolrJ.groovy
new file mode 100644
index 00000000..b02c072d
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestIndexingSolrJ.groovy
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke
+
+import org.apache.solr.client.solrj.SolrQuery
+import org.apache.solr.client.solrj.SolrRequest
+import org.apache.solr.client.solrj.SolrServerException
+import org.apache.solr.client.solrj.impl.HttpSolrServer
+import org.apache.solr.client.solrj.response.QueryResponse
+import org.apache.solr.common.SolrDocument
+import org.apache.solr.common.SolrDocumentList
+import org.apache.solr.common.SolrInputDocument
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+
+import java.io.IOException
+import java.net.MalformedURLException
+import java.util.ArrayList
+import java.util.List
+import java.util.Map
+import org.junit.Assert
+
+/**
+ * Trivial indexing test using SolrJ
+ */
+class TestIndexingSolrJ extends SolrTestBase {
+
+ HttpSolrServer _server
+
+ @Before
+ public void before2() {
+ _server = new HttpSolrServer(_baseURL)
+ }
+
+ @After
+ public void after2() {
+ if (_server != null) {
+ _server.shutdown()
+ _server = null
+ }
+ }
+
+ // Just add a couple of documents then search on them.
+ @Test
+ public void testIndexing() throws IOException, SolrServerException {
+ List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>()
+ SolrInputDocument doc = new SolrInputDocument()
+ doc.addField("id", "one")
+ doc.addField("name", "Another document one")
+ docs.add(doc)
+ doc = new SolrInputDocument()
+ doc.addField("id", "two")
+ doc.addField("name", "Another document two")
+ docs.add(doc)
+ _server.add(docs)
+ _server.commit()
+
+ doQuery("*:*", "one", "two")
+ // Now see if we can search them.
+
+ }
+
+ private void doQuery(String queryString, String... docIds) throws MalformedURLException, SolrServerException {
+
+ SolrQuery query = new SolrQuery()
+ query.setQuery(queryString)
+ query.setRows(1000)
+ QueryResponse qr = _server.query(query, SolrRequest.METHOD.POST)
+ Object o = qr.getHeader().get("status")
+ Assert.assertEquals(qr.getHeader().get("status"), 0)
+
+ SolrDocumentList sdl = qr.getResults()
+ Assert.assertEquals(sdl.size(), docIds.length)
+ for (SolrDocument doc : sdl) {
+ Assert.assertTrue(docIds.contains(doc.get("id")))
+ }
+ }
+}
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestPing.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestPing.groovy
new file mode 100644
index 00000000..f03f1d9e
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestPing.groovy
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke
+
+import org.junit.Test
+/**
+ * Utterly trivial test to see if the server is running
+ */
+class TestPing extends SolrTestBase {
+ @Test
+ void testPing() {
+ testEquals(doReq("/admin/ping"), "status", "OK");
+ }
+}
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestSimple.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestSimple.groovy
new file mode 100644
index 00000000..4448e768
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestSimple.groovy
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke
+
+import org.junit.Test
+
+class TestSimple extends SolrTestBase {
+ static public final String _updatePathXML = "/update?commit=true&stream.body="
+
+ @Test
+ public void testSearch() {
+ // Index a couple of documents, move to beforeClass?
+ // NOTE: JSON update handler isn't enabled in this distro, should it be?
+ //def builder = new groovy.json.JsonBuilder()
+ //builder([["id": "doc1", "name": URLEncoder.encode("first test document")],
+ // ["id": "doc2", "name": URLEncoder.encode("second test document")]])
+ //doReq(_updatePathJSON + builder.toString())
+ StringBuilder sb = new StringBuilder()
+ sb.append("<add><doc><field name=\"id\">doc1</field><field name=\"name\">first test document").
+ append("</field></doc><doc><field name=\"id\">doc2</field><field name=\"name\">second test document").
+ append("</field></doc></add>")
+ doReq(_updatePathXML + URLEncoder.encode(sb.toString()))
+ testEquals(doReq("/select?q=*:*"), "response.numFound", "2")
+ testEquals(doReq("/select?q=name:\"first+test+document\""), "response.numFound", "1")
+ testEquals(doReq("/select?q=none"), "response.numFound", "0")
+ }
+} \ No newline at end of file
diff --git a/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestStatistics.groovy b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestStatistics.groovy
new file mode 100644
index 00000000..dff83dd0
--- /dev/null
+++ b/bigtop-tests/test-artifacts/solr/src/main/groovy/org/apache/bigtop/itest/solr/smoke/TestStatistics.groovy
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.bigtop.itest.solr.smoke
+
+import org.junit.Test
+
+/**
+ * This is actually a pretty useless test as it stands, included as a template for making more "interesting"
+ * evaluations of the status of the Solr server.
+ */
+class TestStatistics extends SolrTestBase {
+ @Test
+ public void testCache() {
+ Object res = doReq(_adminPath + "/mbeans?stats=true")
+ ArrayList<Object> beans = res."solr-mbeans"
+ for (int idx = 0; idx < beans.size(); idx++) {
+ if (beans[idx] instanceof String && "CACHE".equals(beans[idx])) { // Next object is the stats data for caches.
+ Object hits = beans[idx + 1].filterCache.stats.hits
+ break;
+ }
+ }
+ }
+}
diff --git a/bigtop-tests/test-execution/smokes/pom.xml b/bigtop-tests/test-execution/smokes/pom.xml
index d93747e6..8fe22f81 100644
--- a/bigtop-tests/test-execution/smokes/pom.xml
+++ b/bigtop-tests/test-execution/smokes/pom.xml
@@ -53,6 +53,7 @@
<giraph-smoke.version>0.5.0-incubating-SNAPSHOT</giraph-smoke.version>
<hue-smoke.version>0.5.0-incubating-SNAPSHOT</hue-smoke.version>
<package-smoke.version>0.5.0-incubating-SNAPSHOT</package-smoke.version>
+ <solr-smoke.version>0.5.0-incubating-SNAPSHOT</solr-smoke.version>
<!--
End of BOM definitions
-->
diff --git a/bigtop-tests/test-execution/smokes/solr/pom.xml b/bigtop-tests/test-execution/smokes/solr/pom.xml
new file mode 100644
index 00000000..9afc330a
--- /dev/null
+++ b/bigtop-tests/test-execution/smokes/solr/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<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">
+
+ <parent>
+ <groupId>org.apache.bigtop.itest</groupId>
+ <artifactId>smoke-tests</artifactId>
+ <version>0.5.0-incubating-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.bigtop.itest</groupId>
+ <artifactId>solr-smoke-test</artifactId>
+ <version>0.5.0-incubating-SNAPSHOT</version>
+ <name>Solr smoke test execution</name>
+
+ <properties>
+ <SOLR_URL>${env.SOLR_URL}</SOLR_URL>
+
+ <org.apache.maven-dependency-plugin.groupId>org.apache.bigtop.itest</org.apache.maven-dependency-plugin.groupId>
+ <org.apache.maven-dependency-plugin.artifactId>solr-smoke</org.apache.maven-dependency-plugin.artifactId>
+ <org.apache.maven-dependency-plugin.version>${solr-smoke.version}</org.apache.maven-dependency-plugin.version>
+ <org.apache.maven-dependency-plugin.type>jar</org.apache.maven-dependency-plugin.type>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.bigtop.itest</groupId>
+ <artifactId>solr-smoke</artifactId>
+ <version>${solr-smoke.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.11</version>
+ <configuration>
+ <systemPropertyVariables>
+ <org.apache.bigtop.itest.solr_url>${SOLR_URL}</org.apache.bigtop.itest.solr_url>
+ </systemPropertyVariables>
+ <forkMode>always</forkMode>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>enforce-property-solr</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireProperty>
+ <property>SOLR_URL</property>
+ <message>SOLR_URL env. variable has to be set</message>
+ </requireProperty>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>