From 140a7ea99d7d04b8e5afb169da0ada42be7c5b51 Mon Sep 17 00:00:00 2001
From: Daniel Stonier <d.stonier@gmail.com>
Date: Thu, 12 Sep 2013 23:33:35 +0900
Subject: [PATCH] message generation test handling.

---
 .classpath                                    |  1 -
 build.gradle                                  | 13 +++++--
 .../test_rospy/msg/TransitiveMsg2.msg         |  1 -
 message_generation_tests/build.gradle         | 31 ++++++++++++++++
 .../internal/message/Md5GeneratorTest.java    | 14 ++++----
 .../message/MessageInterfaceBuilderTest.java  |  0
 .../org/ros/internal/message/MessageTest.java |  0
 .../message/RawMessageSerializationTest.java  |  0
 .../org/ros/internal/message/ServiceTest.java |  0
 .../message/field/ArrayFieldTest.java         |  0
 .../java/org/ros/message/DurationTest.java    |  0
 .../test/java/org/ros/message/TimeTest.java   |  0
 .../resources/geometry_msgs/msg/Point.msg     |  0
 .../test/resources/geometry_msgs/msg/Pose.msg |  0
 .../geometry_msgs/msg/PoseWithCovariance.msg  |  0
 .../geometry_msgs/msg/Quaternion.msg          |  0
 .../resources/geometry_msgs/msg/Twist.msg     |  0
 .../geometry_msgs/msg/TwistWithCovariance.msg |  0
 .../resources/geometry_msgs/msg/Vector3.msg   |  0
 .../test/resources/nav_msgs/msg/Odometry.msg  |  0
 .../src/test/resources/std_msgs/msg/Bool.msg  |  0
 .../src/test/resources/std_msgs/msg/Byte.msg  |  0
 .../resources/std_msgs/msg/ByteMultiArray.msg |  0
 .../src/test/resources/std_msgs/msg/Char.msg  |  0
 .../test/resources/std_msgs/msg/ColorRGBA.msg |  0
 .../test/resources/std_msgs/msg/Duration.msg  |  0
 .../src/test/resources/std_msgs/msg/Empty.msg |  0
 .../test/resources/std_msgs/msg/Float32.msg   |  0
 .../std_msgs/msg/Float32MultiArray.msg        |  0
 .../test/resources/std_msgs/msg/Float64.msg   |  0
 .../std_msgs/msg/Float64MultiArray.msg        |  0
 .../test/resources/std_msgs/msg/Header.msg    |  0
 .../src/test/resources/std_msgs/msg/Int16.msg |  0
 .../std_msgs/msg/Int16MultiArray.msg          |  0
 .../src/test/resources/std_msgs/msg/Int32.msg |  0
 .../std_msgs/msg/Int32MultiArray.msg          |  0
 .../src/test/resources/std_msgs/msg/Int64.msg |  0
 .../std_msgs/msg/Int64MultiArray.msg          |  0
 .../src/test/resources/std_msgs/msg/Int8.msg  |  0
 .../resources/std_msgs/msg/Int8MultiArray.msg |  0
 .../std_msgs/msg/MultiArrayDimension.msg      |  0
 .../std_msgs/msg/MultiArrayLayout.msg         |  0
 .../test/resources/std_msgs/msg/String.msg    |  0
 .../src/test/resources/std_msgs/msg/Time.msg  |  0
 .../test/resources/std_msgs/msg/UInt16.msg    |  0
 .../std_msgs/msg/UInt16MultiArray.msg         |  0
 .../test/resources/std_msgs/msg/UInt32.msg    |  0
 .../std_msgs/msg/UInt32MultiArray.msg         |  0
 .../test/resources/std_msgs/msg/UInt64.msg    |  0
 .../std_msgs/msg/UInt64MultiArray.msg         |  0
 .../src/test/resources/std_msgs/msg/UInt8.msg |  0
 .../std_msgs/msg/UInt8MultiArray.msg          |  0
 .../src/test/resources/std_srvs/srv/Empty.srv |  0
 .../resources/test_rospy/msg/ArrayVal.msg     |  0
 .../resources/test_rospy/msg/EmbedTest.msg    |  0
 .../test/resources/test_rospy/msg/Floats.msg  |  0
 .../test_rospy/msg/HeaderHeaderVal.msg        |  0
 .../resources/test_rospy/msg/HeaderVal.msg    |  0
 .../test_rospy/msg/PythonKeyword.msg          |  0
 .../test_rospy/msg/TestConstants.msg          |  0
 .../test_rospy/msg/TestFixedArray.msg         |  0
 .../test_rospy/msg/TransitiveImport.msg       |  0
 .../test_rospy/msg/TransitiveMsg1.msg         |  0
 .../test_rospy/msg/TransitiveMsg2.msg         |  1 +
 .../src/test/resources/test_rospy/msg/Val.msg |  0
 .../test_rospy/srv/ConstantsMultiplex.srv     |  0
 .../resources/test_rospy/srv/EmptyReqSrv.srv  |  0
 .../resources/test_rospy/srv/EmptyRespSrv.srv |  0
 .../resources/test_rospy/srv/EmptySrv.srv     |  0
 .../resources/test_rospy/srv/ListReturn.srv   |  0
 .../test_rospy/srv/MultipleAddTwoInts.srv     |  0
 .../resources/test_rospy/srv/StringString.srv |  0
 .../test_rospy/srv/TransitiveSrv.srv          |  0
 rosjava_test_msgs/build.gradle                | 35 +++++++++++++++++++
 rosjava_test_msgs/msg/Composite.msg           |  3 ++
 rosjava_test_msgs/msg/CompositeA.msg          |  6 ++++
 rosjava_test_msgs/msg/CompositeB.msg          |  4 +++
 rosjava_test_msgs/msg/TestArrays.msg          | 10 ++++++
 rosjava_test_msgs/msg/TestHeader.msg          |  8 +++++
 rosjava_test_msgs/msg/TestPrimitives.msg      | 21 +++++++++++
 rosjava_test_msgs/msg/TestString.msg          |  6 ++++
 rosjava_test_msgs/srv/AddTwoInts.srv          |  4 +++
 settings.gradle                               |  4 ++-
 83 files changed, 149 insertions(+), 13 deletions(-)
 delete mode 100644 message_generation/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
 create mode 100644 message_generation_tests/build.gradle
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/Md5GeneratorTest.java (89%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/MessageTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/ServiceTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/message/DurationTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/java/org/ros/message/TimeTest.java (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/Point.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/Pose.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/Quaternion.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/Twist.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/geometry_msgs/msg/Vector3.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/nav_msgs/msg/Odometry.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Bool.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Byte.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/ByteMultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Char.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/ColorRGBA.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Duration.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Empty.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Float32.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Float32MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Float64.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Float64MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Header.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int16.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int16MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int32.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int32MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int64.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int64MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int8.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Int8MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/MultiArrayDimension.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/MultiArrayLayout.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/String.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/Time.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt16.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt16MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt32.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt32MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt64.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt64MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt8.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_msgs/msg/UInt8MultiArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/std_srvs/srv/Empty.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/ArrayVal.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/EmbedTest.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/Floats.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/HeaderHeaderVal.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/HeaderVal.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/PythonKeyword.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/TestConstants.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/TestFixedArray.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/TransitiveImport.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/TransitiveMsg1.msg (100%)
 create mode 100644 message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/msg/Val.msg (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/ConstantsMultiplex.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/EmptyReqSrv.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/EmptyRespSrv.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/EmptySrv.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/ListReturn.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/MultipleAddTwoInts.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/StringString.srv (100%)
 rename {message_generation => message_generation_tests}/src/test/resources/test_rospy/srv/TransitiveSrv.srv (100%)
 create mode 100644 rosjava_test_msgs/build.gradle
 create mode 100644 rosjava_test_msgs/msg/Composite.msg
 create mode 100644 rosjava_test_msgs/msg/CompositeA.msg
 create mode 100644 rosjava_test_msgs/msg/CompositeB.msg
 create mode 100644 rosjava_test_msgs/msg/TestArrays.msg
 create mode 100644 rosjava_test_msgs/msg/TestHeader.msg
 create mode 100644 rosjava_test_msgs/msg/TestPrimitives.msg
 create mode 100644 rosjava_test_msgs/msg/TestString.msg
 create mode 100644 rosjava_test_msgs/srv/AddTwoInts.srv

diff --git a/.classpath b/.classpath
index 1143e39..fde7db7 100644
--- a/.classpath
+++ b/.classpath
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="gradle_plugins/src/main/groovy"/>
-	<classpathentry kind="src" path="message_generation/src/test/java"/>
 	<classpathentry kind="src" path="message_generation/src/main/java"/>
 	<classpathentry kind="lib" path="gradle/wrapper/gradle-wrapper.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
diff --git a/build.gradle b/build.gradle
index c2b8006..480cf31 100644
--- a/build.gradle
+++ b/build.gradle
@@ -21,6 +21,7 @@ task wrapper(type: Wrapper) {
 project.ext {
   /* the ros plugin defines this, but since we're building the plugin... */
   rosMavenDeploymentPath = "$System.env.ROS_MAVEN_DEPLOYMENT_PATH"
+  rosMavenPath = "$System.env.ROS_MAVEN_PATH".split(':')
 }
 
 allprojects {
@@ -28,12 +29,19 @@ allprojects {
 }
 
 subprojects {
+    /* Have to manually do this below since our gradle plugin is our sub project */
     apply plugin: 'java'
     apply plugin: 'maven'
 
+    sourceCompatibility = 1.6
+    targetCompatibility = 1.6
+
+    def repoURLs = project.rosMavenPath.collect { 'file://' + it }
     repositories {
-        maven {
-            url 'file://' + project.rosMavenDeploymentPath
+        repoURLs.each { p ->
+            maven {
+                url p
+            }
         }
         mavenLocal()
         maven {
@@ -43,7 +51,6 @@ subprojects {
     if ( project.rosMavenDeploymentPath != 'null' && project.rosMavenDeploymentPath != '' ) {
         uploadArchives {
             repositories.mavenDeployer {
-                println("Class: " + repository(url: 'file://' + project.rosMavenDeploymentPath).getClass())
                 repository(url: 'file://' + project.rosMavenDeploymentPath)
             }
         }
diff --git a/message_generation/src/test/resources/test_rospy/msg/TransitiveMsg2.msg b/message_generation/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
deleted file mode 100644
index 378a1c5..0000000
--- a/message_generation/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
+++ /dev/null
@@ -1 +0,0 @@
-test_ros/Composite data
diff --git a/message_generation_tests/build.gradle b/message_generation_tests/build.gradle
new file mode 100644
index 0000000..f52fcc7
--- /dev/null
+++ b/message_generation_tests/build.gradle
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2011 Google Inc.
+ *
+ * Licensed 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.
+ */
+
+version='0.1.0'
+
+dependencies {
+  compile project(':gradle_plugins')
+  compile project(':rosjava_test_msgs')
+}
+
+jar {
+  manifest {
+    version = project.version
+    symbolicName = 'org.ros.rosjava_bootstrap.message_generation_tests'
+  }
+}
+
+
diff --git a/message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/Md5GeneratorTest.java
similarity index 89%
rename from message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/Md5GeneratorTest.java
index 45a6872..6746f86 100644
--- a/message_generation/src/test/java/org/ros/internal/message/Md5GeneratorTest.java
+++ b/message_generation_tests/src/test/java/org/ros/internal/message/Md5GeneratorTest.java
@@ -52,31 +52,31 @@ public class Md5GeneratorTest {
   @Test
   public void testPrimitives() {
     TopicDescription topicDescription =
-        topicDescriptionFactory.newFromType("test_ros/TestPrimitives");
+        topicDescriptionFactory.newFromType("rosjava_test_msgs/TestPrimitives");
     assertEquals("3e70f428a22c0d26ca67f87802c8e00f", topicDescription.getMd5Checksum());
   }
 
   @Test
   public void testString() {
-    TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_ros/TestString");
+    TopicDescription topicDescription = topicDescriptionFactory.newFromType("rosjava_test_msgs/TestString");
     assertEquals("334ff4377be93faa44ebc66d23d40fd3", topicDescription.getMd5Checksum());
   }
 
   @Test
   public void testHeader() {
-    TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_ros/TestHeader");
+    TopicDescription topicDescription = topicDescriptionFactory.newFromType("rosjava_test_msgs/TestHeader");
     assertEquals("4b5a00f536da2f756ba6aebcf795a967", topicDescription.getMd5Checksum());
   }
 
   @Test
   public void testArrays() {
-    TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_ros/TestArrays");
+    TopicDescription topicDescription = topicDescriptionFactory.newFromType("rosjava_test_msgs/TestArrays");
     assertEquals("4cc9b5e2cebe791aa3e994f5bc159eb6", topicDescription.getMd5Checksum());
   }
 
   @Test
   public void testComposite() {
-    TopicDescription topicDescription = topicDescriptionFactory.newFromType("test_ros/Composite");
+    TopicDescription topicDescription = topicDescriptionFactory.newFromType("rosjava_test_msgs/Composite");
     assertEquals("d8fb6eb869ad3956b50e8737d96dc9fa", topicDescription.getMd5Checksum());
   }
 
@@ -95,14 +95,14 @@ public class Md5GeneratorTest {
   @Test
   public void testAddTwoInts() {
     ServiceDescription serviceDescription =
-        serviceDescriptionFactory.newFromType("test_ros/AddTwoInts");
+        serviceDescriptionFactory.newFromType("rosjava_test_msgs/AddTwoInts");
     assertEquals("6a2e34150c00229791cc89ff309fff21", serviceDescription.getMd5Checksum());
   }
 
   @Test
   public void testTransitiveSrv() {
     ServiceDescription serviceDescription =
-        serviceDescriptionFactory.newFromType("test_rospy/TransitiveSrv");
+        serviceDescriptionFactory.newFromType("rosjava_test_msgspy/TransitiveSrv");
     assertEquals("8b7918ee2b81eaf825f4c70de011f6fa", serviceDescription.getMd5Checksum());
   }
 }
diff --git a/message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/MessageInterfaceBuilderTest.java
diff --git a/message_generation/src/test/java/org/ros/internal/message/MessageTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/MessageTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/internal/message/MessageTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/MessageTest.java
diff --git a/message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/RawMessageSerializationTest.java
diff --git a/message_generation/src/test/java/org/ros/internal/message/ServiceTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/ServiceTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/internal/message/ServiceTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/ServiceTest.java
diff --git a/message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java b/message_generation_tests/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java
rename to message_generation_tests/src/test/java/org/ros/internal/message/field/ArrayFieldTest.java
diff --git a/message_generation/src/test/java/org/ros/message/DurationTest.java b/message_generation_tests/src/test/java/org/ros/message/DurationTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/message/DurationTest.java
rename to message_generation_tests/src/test/java/org/ros/message/DurationTest.java
diff --git a/message_generation/src/test/java/org/ros/message/TimeTest.java b/message_generation_tests/src/test/java/org/ros/message/TimeTest.java
similarity index 100%
rename from message_generation/src/test/java/org/ros/message/TimeTest.java
rename to message_generation_tests/src/test/java/org/ros/message/TimeTest.java
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Point.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/Point.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/Point.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/Point.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Pose.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/Pose.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/Pose.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/Pose.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/PoseWithCovariance.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/Quaternion.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/Quaternion.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/Quaternion.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Twist.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/Twist.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/Twist.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/Twist.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/TwistWithCovariance.msg
diff --git a/message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg b/message_generation_tests/src/test/resources/geometry_msgs/msg/Vector3.msg
similarity index 100%
rename from message_generation/src/test/resources/geometry_msgs/msg/Vector3.msg
rename to message_generation_tests/src/test/resources/geometry_msgs/msg/Vector3.msg
diff --git a/message_generation/src/test/resources/nav_msgs/msg/Odometry.msg b/message_generation_tests/src/test/resources/nav_msgs/msg/Odometry.msg
similarity index 100%
rename from message_generation/src/test/resources/nav_msgs/msg/Odometry.msg
rename to message_generation_tests/src/test/resources/nav_msgs/msg/Odometry.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Bool.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Bool.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Bool.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Bool.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Byte.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Byte.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Byte.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Byte.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/ByteMultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/ByteMultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/ByteMultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Char.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Char.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Char.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Char.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg b/message_generation_tests/src/test/resources/std_msgs/msg/ColorRGBA.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/ColorRGBA.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/ColorRGBA.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Duration.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Duration.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Duration.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Duration.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Empty.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Empty.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Empty.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Empty.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Float32.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Float32.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Float32.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Float32.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Float32MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Float32MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Float32MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Float64.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Float64.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Float64.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Float64.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Float64MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Float64MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Float64MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Header.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Header.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Header.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Header.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int16.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int16.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int16.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int16.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int16MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int16MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int16MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int32.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int32.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int32.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int32.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int32MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int32MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int32MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int64.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int64.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int64.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int64.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int64MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int64MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int64MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int8.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int8.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int8.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int8.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Int8MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Int8MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Int8MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg b/message_generation_tests/src/test/resources/std_msgs/msg/MultiArrayDimension.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/MultiArrayDimension.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/MultiArrayDimension.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg b/message_generation_tests/src/test/resources/std_msgs/msg/MultiArrayLayout.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/MultiArrayLayout.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/MultiArrayLayout.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/String.msg b/message_generation_tests/src/test/resources/std_msgs/msg/String.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/String.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/String.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/Time.msg b/message_generation_tests/src/test/resources/std_msgs/msg/Time.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/Time.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/Time.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt16.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt16.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt16.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt16.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt16MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt16MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt16MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt32.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt32.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt32.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt32.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt32MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt32MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt32MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt64.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt64.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt64.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt64.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt64MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt64MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt64MultiArray.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt8.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt8.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt8.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt8.msg
diff --git a/message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg b/message_generation_tests/src/test/resources/std_msgs/msg/UInt8MultiArray.msg
similarity index 100%
rename from message_generation/src/test/resources/std_msgs/msg/UInt8MultiArray.msg
rename to message_generation_tests/src/test/resources/std_msgs/msg/UInt8MultiArray.msg
diff --git a/message_generation/src/test/resources/std_srvs/srv/Empty.srv b/message_generation_tests/src/test/resources/std_srvs/srv/Empty.srv
similarity index 100%
rename from message_generation/src/test/resources/std_srvs/srv/Empty.srv
rename to message_generation_tests/src/test/resources/std_srvs/srv/Empty.srv
diff --git a/message_generation/src/test/resources/test_rospy/msg/ArrayVal.msg b/message_generation_tests/src/test/resources/test_rospy/msg/ArrayVal.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/ArrayVal.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/ArrayVal.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/EmbedTest.msg b/message_generation_tests/src/test/resources/test_rospy/msg/EmbedTest.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/EmbedTest.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/EmbedTest.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/Floats.msg b/message_generation_tests/src/test/resources/test_rospy/msg/Floats.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/Floats.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/Floats.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/HeaderHeaderVal.msg b/message_generation_tests/src/test/resources/test_rospy/msg/HeaderHeaderVal.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/HeaderHeaderVal.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/HeaderHeaderVal.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/HeaderVal.msg b/message_generation_tests/src/test/resources/test_rospy/msg/HeaderVal.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/HeaderVal.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/HeaderVal.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/PythonKeyword.msg b/message_generation_tests/src/test/resources/test_rospy/msg/PythonKeyword.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/PythonKeyword.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/PythonKeyword.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/TestConstants.msg b/message_generation_tests/src/test/resources/test_rospy/msg/TestConstants.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/TestConstants.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/TestConstants.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/TestFixedArray.msg b/message_generation_tests/src/test/resources/test_rospy/msg/TestFixedArray.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/TestFixedArray.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/TestFixedArray.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/TransitiveImport.msg b/message_generation_tests/src/test/resources/test_rospy/msg/TransitiveImport.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/TransitiveImport.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/TransitiveImport.msg
diff --git a/message_generation/src/test/resources/test_rospy/msg/TransitiveMsg1.msg b/message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg1.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/TransitiveMsg1.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg1.msg
diff --git a/message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg2.msg b/message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
new file mode 100644
index 0000000..e17e734
--- /dev/null
+++ b/message_generation_tests/src/test/resources/test_rospy/msg/TransitiveMsg2.msg
@@ -0,0 +1 @@
+rosjava_test_msgs/Composite data
diff --git a/message_generation/src/test/resources/test_rospy/msg/Val.msg b/message_generation_tests/src/test/resources/test_rospy/msg/Val.msg
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/msg/Val.msg
rename to message_generation_tests/src/test/resources/test_rospy/msg/Val.msg
diff --git a/message_generation/src/test/resources/test_rospy/srv/ConstantsMultiplex.srv b/message_generation_tests/src/test/resources/test_rospy/srv/ConstantsMultiplex.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/ConstantsMultiplex.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/ConstantsMultiplex.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/EmptyReqSrv.srv b/message_generation_tests/src/test/resources/test_rospy/srv/EmptyReqSrv.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/EmptyReqSrv.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/EmptyReqSrv.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/EmptyRespSrv.srv b/message_generation_tests/src/test/resources/test_rospy/srv/EmptyRespSrv.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/EmptyRespSrv.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/EmptyRespSrv.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/EmptySrv.srv b/message_generation_tests/src/test/resources/test_rospy/srv/EmptySrv.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/EmptySrv.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/EmptySrv.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/ListReturn.srv b/message_generation_tests/src/test/resources/test_rospy/srv/ListReturn.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/ListReturn.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/ListReturn.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/MultipleAddTwoInts.srv b/message_generation_tests/src/test/resources/test_rospy/srv/MultipleAddTwoInts.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/MultipleAddTwoInts.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/MultipleAddTwoInts.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/StringString.srv b/message_generation_tests/src/test/resources/test_rospy/srv/StringString.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/StringString.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/StringString.srv
diff --git a/message_generation/src/test/resources/test_rospy/srv/TransitiveSrv.srv b/message_generation_tests/src/test/resources/test_rospy/srv/TransitiveSrv.srv
similarity index 100%
rename from message_generation/src/test/resources/test_rospy/srv/TransitiveSrv.srv
rename to message_generation_tests/src/test/resources/test_rospy/srv/TransitiveSrv.srv
diff --git a/rosjava_test_msgs/build.gradle b/rosjava_test_msgs/build.gradle
new file mode 100644
index 0000000..5845afa
--- /dev/null
+++ b/rosjava_test_msgs/build.gradle
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2011 Google Inc.
+ *
+ * Licensed 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.
+ */
+
+version = '0.1.0'
+
+/* Can't do this since the plugin is in this multi-project now */
+/* project.catkin.packages['rosjava_messages'].generateMessageArtifactInSubFolder(project, 'rosjava_test_msgs') */
+
+dependencies {
+  compile project(':message_generation')
+}
+
+def generatedSourcesDir = "${project.buildDir}/generated-src"
+task generateSources(type: JavaExec) {
+    description "Generate sources for " + project.name
+    outputs.dir file(generatedSourcesDir)
+    args new ArrayList<String>([generatedSourcesDir, name])
+    classpath configurations.runtime
+    main = 'org.ros.internal.message.GenerateInterfaces'
+}
+
+compileJava.source generateSources.outputs.files
diff --git a/rosjava_test_msgs/msg/Composite.msg b/rosjava_test_msgs/msg/Composite.msg
new file mode 100644
index 0000000..4629d3e
--- /dev/null
+++ b/rosjava_test_msgs/msg/Composite.msg
@@ -0,0 +1,3 @@
+# composite message. required for testing import calculation in generators
+CompositeA a
+CompositeB b
diff --git a/rosjava_test_msgs/msg/CompositeA.msg b/rosjava_test_msgs/msg/CompositeA.msg
new file mode 100644
index 0000000..9f4fde2
--- /dev/null
+++ b/rosjava_test_msgs/msg/CompositeA.msg
@@ -0,0 +1,6 @@
+# This represents an orientation in free space in quaternion form.
+
+float64 x
+float64 y
+float64 z
+float64 w
diff --git a/rosjava_test_msgs/msg/CompositeB.msg b/rosjava_test_msgs/msg/CompositeB.msg
new file mode 100644
index 0000000..fb689bc
--- /dev/null
+++ b/rosjava_test_msgs/msg/CompositeB.msg
@@ -0,0 +1,4 @@
+# copy of geometry_msgs/Point for testing
+float64 x
+float64 y
+float64 z
diff --git a/rosjava_test_msgs/msg/TestArrays.msg b/rosjava_test_msgs/msg/TestArrays.msg
new file mode 100644
index 0000000..2d7493f
--- /dev/null
+++ b/rosjava_test_msgs/msg/TestArrays.msg
@@ -0,0 +1,10 @@
+# caller_id of most recent node to send this message
+string caller_id
+# caller_id of the original node to send this message
+string orig_caller_id
+
+int32[] int32_array
+float32[] float32_array
+time[] time_array
+TestString[] test_string_array
+# TODO: array of arrays
diff --git a/rosjava_test_msgs/msg/TestHeader.msg b/rosjava_test_msgs/msg/TestHeader.msg
new file mode 100644
index 0000000..22897c3
--- /dev/null
+++ b/rosjava_test_msgs/msg/TestHeader.msg
@@ -0,0 +1,8 @@
+Header header
+
+# caller_id of most recent node to send this message
+string caller_id
+# caller_id of the original node to send this message
+string orig_caller_id
+
+byte auto_header # autoset header on response
diff --git a/rosjava_test_msgs/msg/TestPrimitives.msg b/rosjava_test_msgs/msg/TestPrimitives.msg
new file mode 100644
index 0000000..815dd5b
--- /dev/null
+++ b/rosjava_test_msgs/msg/TestPrimitives.msg
@@ -0,0 +1,21 @@
+# Integration test message of all primitive types
+
+# caller_id of most recent node to send this message
+string caller_id
+# caller_id of the original node to send this message
+string orig_caller_id
+
+string str
+byte b
+int16 int16
+int32 int32
+int64 int64
+char c
+uint16 uint16
+uint32 uint32
+uint64 uint64
+float32 float32
+float64 float64
+time t
+duration d
+
diff --git a/rosjava_test_msgs/msg/TestString.msg b/rosjava_test_msgs/msg/TestString.msg
new file mode 100644
index 0000000..4ab0438
--- /dev/null
+++ b/rosjava_test_msgs/msg/TestString.msg
@@ -0,0 +1,6 @@
+# Integration test message
+# caller_id of most recent node to send this message
+string caller_id
+# caller_id of the original node to send this message
+string orig_caller_id
+string data
diff --git a/rosjava_test_msgs/srv/AddTwoInts.srv b/rosjava_test_msgs/srv/AddTwoInts.srv
new file mode 100644
index 0000000..3a68808
--- /dev/null
+++ b/rosjava_test_msgs/srv/AddTwoInts.srv
@@ -0,0 +1,4 @@
+int64 a
+int64 b
+---
+int64 sum
diff --git a/settings.gradle b/settings.gradle
index 1b6698b..087be5e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -17,4 +17,6 @@
 /* rootProject.name = 'catkin' */
 
 include 'gradle_plugins'
-include 'message_generation'
\ No newline at end of file
+include 'message_generation'
+include 'rosjava_test_msgs'
+include 'message_generation_tests'
-- 
GitLab