diff --git a/connectors/infinispan/translator-infinispan-hotrod/src/main/java/org/teiid/translator/infinispan/hotrod/SchemaToProtobufProcessor.java b/connectors/infinispan/translator-infinispan-hotrod/src/main/java/org/teiid/translator/infinispan/hotrod/SchemaToProtobufProcessor.java index 157fdb8d8e..ce0d533da6 100644 --- a/connectors/infinispan/translator-infinispan-hotrod/src/main/java/org/teiid/translator/infinispan/hotrod/SchemaToProtobufProcessor.java +++ b/connectors/infinispan/translator-infinispan-hotrod/src/main/java/org/teiid/translator/infinispan/hotrod/SchemaToProtobufProcessor.java @@ -86,7 +86,7 @@ private void visit(Table table, String defaultCacheName) { buffer.append("/* @Indexed"); String cacheName = ProtobufMetadataProcessor.getCacheName(table); if (cacheName != null && !cacheName.equals(defaultCacheName)) { - buffer.append("@Cache(name=").append(cacheName); + buffer.append("@Cache(name=").append(cacheName).append(")"); } buffer.append(" */").append(NL); } diff --git a/connectors/infinispan/translator-infinispan-hotrod/src/test/java/org/teiid/translator/infinispan/hotrod/TestSchemaToProtobufProcessor.java b/connectors/infinispan/translator-infinispan-hotrod/src/test/java/org/teiid/translator/infinispan/hotrod/TestSchemaToProtobufProcessor.java index 93fa91c7b6..4f4821ad46 100644 --- a/connectors/infinispan/translator-infinispan-hotrod/src/test/java/org/teiid/translator/infinispan/hotrod/TestSchemaToProtobufProcessor.java +++ b/connectors/infinispan/translator-infinispan-hotrod/src/test/java/org/teiid/translator/infinispan/hotrod/TestSchemaToProtobufProcessor.java @@ -37,6 +37,7 @@ public class TestSchemaToProtobufProcessor { @Test public void testConverstion() throws Exception { SchemaToProtobufProcessor tool = new SchemaToProtobufProcessor(); + //tool.setIndexMessages(true); MetadataFactory mf = TestProtobufMetadataProcessor.protoMatadata("tables.proto"); InfinispanConnection conn = Mockito.mock(InfinispanConnection.class); BasicCache cache = Mockito.mock(BasicCache.class); @@ -196,4 +197,33 @@ public void testSimpleNoMetadataConversion() throws Exception { assertEquals(expected, resource.getContents()); } + + @SuppressWarnings("rawtypes") + @Test + public void testConverstionUsingCacheAnnotation() throws Exception { + SchemaToProtobufProcessor tool = new SchemaToProtobufProcessor(); + tool.setIndexMessages(true); + MetadataFactory mf = TestProtobufMetadataProcessor.protoMatadata("tables_bad.proto"); + InfinispanConnection conn = Mockito.mock(InfinispanConnection.class); + BasicCache cache = Mockito.mock(BasicCache.class); + Mockito.stub(cache.getName()).toReturn("foo"); + Mockito.stub(conn.getCache()).toReturn(cache); + ProtobufResource resource = tool.process(mf, conn); + + String expected = "package model;\n" + + "\n" + + "/* @Indexed @Cache(name=foo) */\n" + + "message G1 {\n" + + " /* @Id @IndexedField(index=true, store=false) */\n" + + " required int32 e1 = 1;\n" + + " /* @IndexedField */\n" + + " required string e2 = 2;\n" + + " optional float e3 = 3;\n" + + " /* @IndexedField(index=true, store=false) */\n" + + " repeated string e4 = 4;\n" + + " repeated string e5 = 5;\n" + + "}\n\n"; + assertEquals(expected, resource.getContents()); + } + } diff --git a/connectors/infinispan/translator-infinispan-hotrod/src/test/resources/tables_bad.proto b/connectors/infinispan/translator-infinispan-hotrod/src/test/resources/tables_bad.proto new file mode 100644 index 0000000000..4d8fcfe26e --- /dev/null +++ b/connectors/infinispan/translator-infinispan-hotrod/src/test/resources/tables_bad.proto @@ -0,0 +1,13 @@ +package pm1; + +/* @Indexed @Cache(name=foo) */ +message G1 { + /* @Id @IndexedField(index=true, store=false) */ + required int32 e1 = 1; + /* @IndexedField */ + required string e2 = 2; + optional float e3 = 3; + /* @IndexedField(index=true, store=false) */ + repeated string e4 = 4; + repeated string e5 = 5; +}