X4O: Made session equal used in read and write and added closable

This commit is contained in:
Willem Cazander 2025-11-06 18:42:35 +01:00
parent e685c27131
commit ec8711df9c
20 changed files with 220 additions and 241 deletions

View file

@ -41,44 +41,35 @@ public class NamespaceUriTest {
@Test
public void testSimpleUri() throws Exception {
X4OLanguageSession context = null;
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("tests/namespace/uri-simple.xml");
Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1);
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "tests/namespace/uri-simple.xml");
Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1);
}
}
@Test
public void testEmptyUri() throws Exception {
X4OLanguageSession context = null;
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
reader.setProperty(DefaultX4OReader.DOC_EMPTY_NAMESPACE_URI, "http://test.junit.x4o.org/xml/ns/junit-test-lang");
try {
context = reader.readResourceSession("tests/namespace/uri-empty.xml");
Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1);
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "tests/namespace/uri-empty.xml");
Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1);
}
}
@Test
public void testSchemaUri() throws Exception {
X4OLanguageSession context = null;
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("tests/namespace/uri-schema.xml");
Assertions.assertEquals(true,context.getRootElement().getChilderen().size()==1);
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "tests/namespace/uri-schema.xml");
Assertions.assertEquals(true,session.getRootElement().getChilderen().size()==1);
}
}
}

View file

@ -86,8 +86,8 @@ public class X4ODebugWriterTest {
Assertions.assertFalse(debug.length()==0, "no debug content");
Assertions.assertTrue(debug.length()>20, "debug content to small");
//System.out.println("=================== Reader Output ======================");
//System.out.println(debug);
System.out.println("=================== Reader Output ======================");
System.out.println(debug);
debugFile.delete();
}

View file

@ -62,8 +62,7 @@ public class X4OReaderSessionTest {
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
File xmlFile = copyResourceToTempFile();
X4OLanguageSession context = reader.readFileSession(xmlFile.getAbsolutePath());
TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject();
TestObjectRoot root = reader.readFile(xmlFile.getAbsolutePath());
Assertions.assertNotNull(root);
Assertions.assertTrue(root.getTestBeans().size()>0);
TestBean bean = root.getTestBeans().get(0);
@ -77,7 +76,7 @@ public class X4OReaderSessionTest {
Exception e = null;
try {
String nullFileName = null;
reader.readFileSession(nullFileName);
reader.readFile(nullFileName);
} catch (Exception catchE) {
e = catchE;
}
@ -92,8 +91,7 @@ public class X4OReaderSessionTest {
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
File xmlFile = copyResourceToTempFile();
X4OLanguageSession context = reader.readFileSession(xmlFile);
TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject();
TestObjectRoot root = reader.readFile(xmlFile);
Assertions.assertNotNull(root);
Assertions.assertTrue(root.getTestBeans().size()>0);
TestBean bean = root.getTestBeans().get(0);
@ -107,7 +105,7 @@ public class X4OReaderSessionTest {
Exception e = null;
try {
File nullFile = null;
reader.readFileSession(nullFile);
reader.readFile(nullFile);
} catch (Exception catchE) {
e = catchE;
}
@ -125,7 +123,7 @@ public class X4OReaderSessionTest {
try {
File tempFile = File.createTempFile("test-file", ".xml");
tempFile.delete();
reader.readFileSession(tempFile);
reader.readFile(tempFile);
} catch (Exception catchE) {
e = catchE;
}
@ -144,7 +142,7 @@ public class X4OReaderSessionTest {
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
Exception e = null;
try {
reader.readFileSession(new File("/etc/shadow"));
reader.readFile(new File("/etc/shadow"));
} catch (Exception catchE) {
e = catchE;
}
@ -158,8 +156,7 @@ public class X4OReaderSessionTest {
public void testReadResource() throws Exception {
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
X4OLanguageSession context = reader.readResourceSession("tests/attributes/test-bean.xml");
TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject();
TestObjectRoot root = reader.readResource("tests/attributes/test-bean.xml");
Assertions.assertNotNull(root);
}
@ -169,7 +166,7 @@ public class X4OReaderSessionTest {
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
Exception e = null;
try {
reader.readResourceSession(null);
reader.readResource(null);
} catch (Exception catchE) {
e = catchE;
}
@ -183,13 +180,12 @@ public class X4OReaderSessionTest {
public void testReadString() throws Exception {
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
X4OLanguageSession context = reader.readStringSession(
TestObjectRoot root = reader.readString(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<root:root xmlns:root=\"http://test.junit.x4o.org/xml/ns/junit-test-root\" xmlns=\"http://test.junit.x4o.org/xml/ns/junit-test-lang\">"+
"<testBean privateIntegerTypeField=\"987654321\"/>"+
"</root:root>"
);
TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject();
Assertions.assertNotNull(root);
Assertions.assertTrue(root.getTestBeans().size()>0);
TestBean bean = root.getTestBeans().get(0);
@ -203,7 +199,7 @@ public class X4OReaderSessionTest {
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
Exception e = null;
try {
reader.readStringSession(null);
reader.readString(null);
} catch (Exception catchE) {
e = catchE;
}
@ -218,8 +214,7 @@ public class X4OReaderSessionTest {
TestDriver driver = TestDriver.getInstance();
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
URL xmlUrl = Thread.currentThread().getContextClassLoader().getResource("tests/attributes/test-bean.xml");
X4OLanguageSession context = reader.readUrlSession(xmlUrl);
TestObjectRoot root = (TestObjectRoot)context.getRootElement().getElementObject();
TestObjectRoot root = reader.readUrl(xmlUrl);
Assertions.assertNotNull(root);
Assertions.assertTrue(root.getTestBeans().size()>0);
TestBean bean = root.getTestBeans().get(0);
@ -232,7 +227,7 @@ public class X4OReaderSessionTest {
X4OReaderSession<TestObjectRoot> reader = driver.createReaderSession();
Exception e = null;
try {
reader.readUrlSession(null);
reader.readUrl(null);
} catch (Exception catchE) {
e = catchE;
}

View file

@ -42,18 +42,15 @@ public class ParentObjectTest {
@Test
public void testParentElement() throws Exception {
X4OLanguageSession context = null;
MTestDriver driver = new MTestDriver();
X4OReaderSession<?> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("junit/test-meta-parent-element.xml");
Assertions.assertEquals(1,context.getRootElement().getChilderen().size());
Element childElement = context.getRootElement().getChilderen().get(0);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "junit/test-meta-parent-element.xml");
Assertions.assertEquals(1,session.getRootElement().getChilderen().size());
Element childElement = session.getRootElement().getChilderen().get(0);
JLabel test = (JLabel)childElement.getElementObject();
Assertions.assertEquals("parentTest",test.getText());
} finally {
reader.releaseSession(context);
}
}

View file

@ -40,46 +40,37 @@ public class ReferenceStoreTest {
@Test
public void testMetaGeneric() throws Exception {
X4OLanguageSession context = null;
MTestDriver driver = new MTestDriver();
X4OReaderSession<?> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("junit/test-meta-generic.xml");
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "junit/test-meta-generic.xml");
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
}
}
@Test
public void testLoadClass() throws Exception {
X4OLanguageSession context = null;
MTestDriver driver = new MTestDriver();
X4OReaderSession<?> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("junit/test-meta-reference.xml");
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "junit/test-meta-reference.xml");
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
}
}
@Test
public void testStoreRef() throws Exception {
X4OLanguageSession context = null;
MTestDriver driver = new MTestDriver();
X4OReaderSession<?> reader = driver.createReaderSession();
reader.addPhaseSkip(X4OPhaseLanguageRead.READ_RELEASE);
try {
context = reader.readResourceSession("junit/test-meta-reference.xml");
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(1).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(2).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(3).getElementObject().getClass().getName());
} finally {
reader.releaseSession(context);
try (X4OLanguageSession session = reader.createLanguageSession()) {
reader.readResourceSession(session, "junit/test-meta-reference.xml");
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(1).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(2).getElementObject().getClass().getName());
Assertions.assertEquals(Date.class.getName(),session.getRootElement().getChilderen().get(3).getElementObject().getClass().getName());
}
}
}