1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.felix.bundleplugin;
20
21 import aQute.bnd.osgi.AbstractResource;
22 import aQute.bnd.osgi.Analyzer;
23 import aQute.bnd.osgi.Jar;
24 import aQute.bnd.osgi.Resource;
25 import org.junit.Test;
26
27 import static org.junit.Assert.assertEquals;
28
29 public class JpaPluginTest {
30
31 @Test
32 public void testNamedJndi() throws Exception {
33 String xmlStr = "<persistence xmlns='http://java.sun.com/xml/ns/persistence'>\n" +
34 " <persistence-unit name='the-unit' transaction-type='JTA'>\n" +
35 " <jta-data-source>osgi:service/jdbc/h2DS</jta-data-source>\n" +
36 " </persistence-unit>\n" +
37 "</persistence>";
38 String expectedReqs = "osgi.extender;osgi.extender=aries.jpa,osgi.service;effective:=active;objectClass=javax.transaction.TransactionManager";
39 assertTransformation(xmlStr, expectedReqs);
40 }
41
42 @Test
43 public void testService() throws Exception {
44 String xmlStr = "<persistence xmlns='http://java.sun.com/xml/ns/persistence'>\n" +
45 " <persistence-unit name='the-unit' transaction-type='JTA'>\n" +
46 " <jta-data-source>osgi:service/javax.sql.DataSource/(&(db=mydb)(version=3.1))</jta-data-source>\n" +
47 " </persistence-unit>\n" +
48 "</persistence>";
49 String expectedReqs = "osgi.extender;osgi.extender=aries.jpa,osgi.service;effective:=active;objectClass=javax.transaction.TransactionManager,osgi.service;effective:=active;objectClass=javax.sql.DataSource;filter:=\"(&(db=mydb)(version=3.1))\"";
50 assertTransformation(xmlStr, expectedReqs);
51 }
52
53 private void assertTransformation(final String xmlStr, String expectedReqs) throws Exception {
54 Analyzer analyzer = new Analyzer();
55 Jar jar = new Jar("the-jar");
56 Resource xml = new AbstractResource(0) {
57 @Override
58 protected byte[] getBytes() throws Exception {
59 return xmlStr.getBytes();
60 }
61 };
62 JpaPlugin plugin = new JpaPlugin();
63
64 jar.putResource("the-persistence-xml", xml);
65 analyzer.setJar(jar);
66 analyzer.setProperty("Meta-Persistence", "the-persistence-xml");
67
68 plugin.analyzeJar(analyzer);
69
70 assertEquals(expectedReqs, analyzer.getProperty("Require-Capability"));
71
72 }
73 }