public static DataObject createTestObject1() {
DataObject dataObject = new DataObjectImpl("org.test", "TestObject1");
dataObject.setSuperClassName("java.lang.Object");
dataObject.addAnnotation(createAnnotation(Label.class, new Pair<String, Object>("value", "TestObject1Label")));
dataObject.addAnnotation(createAnnotation(Description.class, new Pair<String, Object>("value", "TestObject1Description")));
dataObject.addAnnotation(createAnnotation(TypeSafe.class, new Pair<String, Object>("value", true)));
dataObject.addAnnotation(createAnnotation(PropertyReactive.class));
dataObject.addAnnotation(createAnnotation(Role.class, new Pair<String, Object>("value", Role.Type.EVENT.name())));
dataObject.addAnnotation(createAnnotation(Timestamp.class, new Pair<String, Object>("value", "field2")));
dataObject.addAnnotation(createAnnotation(Duration.class, new Pair<String, Object>("value", "field3")));
dataObject.addAnnotation(createAnnotation(Expires.class, new Pair<String, Object>("value", "1h")));
dataObject.addAnnotation(createAnnotation(XmlRootElement.class));
ObjectProperty field1 = dataObject.addProperty("field1", Integer.class.getName());
field1.addAnnotation(createAnnotation(Label.class, new Pair<String, Object>("value", "Field1Label")));
field1.addAnnotation(createAnnotation(Description.class, new Pair<String, Object>("value", "Field1Description")));
field1.addAnnotation(createAnnotation(Position.class, new Pair<String, Object>("value", 0)));
field1.addAnnotation(createAnnotation(Key.class));
ObjectProperty field2 = dataObject.addProperty("field2", Integer.class.getName());
field2.addAnnotation(createAnnotation(Label.class, new Pair<String, Object>("value", "Field2Label")));
field2.addAnnotation(createAnnotation(Description.class, new Pair<String, Object>("value", "Field2Description")));
ObjectProperty field3 = dataObject.addProperty("field3", Long.class.getName());
field1.addAnnotation(createAnnotation(Label.class, new Pair<String, Object>("value", "Field3Label")));
field1.addAnnotation(createAnnotation(Description.class, new Pair<String, Object>("value", "Field3Description")));
return dataObject;
}