Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorGeneratedTypedObjectTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorGeneratedTypedObjectTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorGeneratedTypedObjectTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorGeneratedTypedObjectTest.java Thu Jan 6 17:54:30 2022 @@ -45,50 +45,47 @@ public class CursorGeneratedTypedObjectT "<loc:StateCode>TX</loc:StateCode>" + "</loc:Location>"; LocationDocument locDoc = LocationDocument.Factory.parse(sXml); - XmlCursor xc = locDoc.newCursor(); - xc.toFirstChild(); - LocationDocument.Location loc = (LocationDocument.Location) xc.getObject(); - assertTrue(loc.validate()); - XmlCursor xc0 = xc.newCursor(); - - xc0.toEndDoc(); - xc0.toPrevToken(); - // xc0.insertElementWithText("SubdivisionCode", "xyz"); - xc0.insertElementWithText( - new QName("http://xbean.test/xmlcursor/Location", "SubdivisionCode", "loc"), - "xyz"); - xc0.toCursor(xc); - - - String sExpectedXML = - "<loc:Location " + sNamespace + ">" + - "<loc:CityName>DALLAS</loc:CityName>" + - "<loc:StateCode>TX</loc:StateCode>" + - "<loc:SubdivisionCode>xyz</loc:SubdivisionCode>" + - "</loc:Location>"; - - String sOExpectedXML = - "<xml-fragment " + sNamespace + ">" + - "<loc:CityName>DALLAS</loc:CityName>" + - "<loc:StateCode>TX</loc:StateCode>" + - "<loc:SubdivisionCode>xyz</loc:SubdivisionCode>" + - "</xml-fragment>"; - XmlOptions map = new XmlOptions(); - //map.put(XmlOptions.SAVE_PRETTY_PRINT, ""); - //map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(-1)); - try { - assertEquals(sExpectedXML, xc0.xmlText(map)); - loc = (LocationDocument.Location) xc0.getObject(); - assertEquals(sOExpectedXML, loc.xmlText()); + try (XmlCursor xc = locDoc.newCursor()) { + xc.toFirstChild(); + LocationDocument.Location loc = (LocationDocument.Location) xc.getObject(); assertTrue(loc.validate()); - assertEquals("DALLAS", loc.getCityName()); - assertEquals("TX", loc.getStateCode()); - assertEquals("xyz", loc.getSubdivisionCode()); - } finally { - xc.dispose(); - xc0.dispose(); - } + try (XmlCursor xc0 = xc.newCursor()) { + xc0.toEndDoc(); + xc0.toPrevToken(); + // xc0.insertElementWithText("SubdivisionCode", "xyz"); + xc0.insertElementWithText( + new QName("http://xbean.test/xmlcursor/Location", "SubdivisionCode", "loc"), + "xyz"); + xc0.toCursor(xc); + + + String sExpectedXML = + "<loc:Location " + sNamespace + ">" + + "<loc:CityName>DALLAS</loc:CityName>" + + "<loc:StateCode>TX</loc:StateCode>" + + "<loc:SubdivisionCode>xyz</loc:SubdivisionCode>" + + "</loc:Location>"; + + String sOExpectedXML = + "<xml-fragment " + sNamespace + ">" + + "<loc:CityName>DALLAS</loc:CityName>" + + "<loc:StateCode>TX</loc:StateCode>" + + "<loc:SubdivisionCode>xyz</loc:SubdivisionCode>" + + "</xml-fragment>"; + XmlOptions map = new XmlOptions(); + //map.put(XmlOptions.SAVE_PRETTY_PRINT, ""); + //map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(-1)); + + assertEquals(sExpectedXML, xc0.xmlText(map)); + loc = (LocationDocument.Location) xc0.getObject(); + assertEquals(sOExpectedXML, loc.xmlText()); + assertTrue(loc.validate()); + assertEquals("DALLAS", loc.getCityName()); + assertEquals("TX", loc.getStateCode()); + assertEquals("xyz", loc.getSubdivisionCode()); + } + } } @Test @@ -97,71 +94,68 @@ public class CursorGeneratedTypedObjectT CarLocationMessageDocument clm = CarLocationMessageDocument.Factory.parse( JarUtil.getResourceFromJar( Common.TRANXML_FILE_CLM)); - XmlCursor xc = clm.newCursor(); - xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + - "$this//GeographicLocation"); - xc.toNextSelection(); - - GeographicLocationDocument.GeographicLocation gl0 = (GeographicLocationDocument.GeographicLocation) xc.getObject(); - assertTrue(gl0.validate()); - - XmlCursor xc0 = xc.newCursor(); - try { - xc0.toLastChild(); - assertEquals("TX", xc0.getTextValue()); - xc0.toNextToken(); - xc0.toNextToken(); - xc0.toNextToken(); - xc0.toNextToken(); - assertEquals(TokenType.END, xc0.currentTokenType()); - - xc0.beginElement("LocationIdentifier", - "http://www.tranxml.org/TranXML/Version4.0"); - xc0.insertAttributeWithValue("Qualifier", "FR"); - xc0.toEndToken(); - xc0.toNextToken();//move past the end token - xc0.insertElementWithText("CountrySubdivisionCode", - "http://www.tranxml.org/TranXML/Version4.0", "xyz"); - xc0.toCursor(xc); - - String sExpectedXML = - "<GeographicLocation " + sNamespace + ">\n" + - "\t\t\t<CityName>DALLAS</CityName>\n" + - "\t\t\t<StateOrProvinceCode>TX</StateOrProvinceCode>\n" + - "\t\t<LocationIdentifier Qualifier=\"FR\"/><CountrySubdivisionCode>xyz</CountrySubdivisionCode>" + - "</GeographicLocation>"; - - XmlOptions map = new XmlOptions(); - // map.put(XmlOptions.SAVE_PRETTY_PRINT, ""); - // map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(-1)); - assertEquals(sExpectedXML, xc0.xmlText()); - - String sOExpectedXML = - "<xml-fragment xmlns:xsi=\"http://www.w3.org/2000/10/XMLSchema-instance\">\n" + - "\t\t\t<ver:CityName xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">" + - "DALLAS</ver:CityName>\n" + - "\t\t\t<ver:StateOrProvinceCode xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">" + - "TX</ver:StateOrProvinceCode>\n" + - "\t\t<ver:LocationIdentifier Qualifier=\"FR\" " + - "xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\"/>" + - "<ver:CountrySubdivisionCode xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">xyz" + - "</ver:CountrySubdivisionCode></xml-fragment>"; - - GeographicLocationDocument.GeographicLocation gl = (GeographicLocationDocument.GeographicLocation) xc0.getObject(); - assertEquals(sOExpectedXML, gl.xmlText(map)); - assertTrue(gl.validate()); - - - assertEquals("DALLAS", gl.getCityName().getStringValue()); - assertEquals("TX", gl.getStateOrProvinceCode()); - LocationIdentifierDocument.LocationIdentifier li = gl.getLocationIdentifier(); - assertNotNull("LocationIdentifier unexpectedly null", li); - assertEquals(CodeList309.FR, - gl.getLocationIdentifier().getQualifier()); - assertEquals("xyz", gl.getCountrySubdivisionCode()); - } finally { - xc.dispose(); - xc0.dispose(); + try (XmlCursor xc = clm.newCursor()) { + xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + + "$this//GeographicLocation"); + xc.toNextSelection(); + + GeographicLocationDocument.GeographicLocation gl0 = (GeographicLocationDocument.GeographicLocation) xc.getObject(); + assertTrue(gl0.validate()); + + try (XmlCursor xc0 = xc.newCursor()) { + xc0.toLastChild(); + assertEquals("TX", xc0.getTextValue()); + xc0.toNextToken(); + xc0.toNextToken(); + xc0.toNextToken(); + xc0.toNextToken(); + assertEquals(TokenType.END, xc0.currentTokenType()); + + xc0.beginElement("LocationIdentifier", + "http://www.tranxml.org/TranXML/Version4.0"); + xc0.insertAttributeWithValue("Qualifier", "FR"); + xc0.toEndToken(); + xc0.toNextToken();//move past the end token + xc0.insertElementWithText("CountrySubdivisionCode", + "http://www.tranxml.org/TranXML/Version4.0", "xyz"); + xc0.toCursor(xc); + + String sExpectedXML = + "<GeographicLocation " + sNamespace + ">\n" + + "\t\t\t<CityName>DALLAS</CityName>\n" + + "\t\t\t<StateOrProvinceCode>TX</StateOrProvinceCode>\n" + + "\t\t<LocationIdentifier Qualifier=\"FR\"/><CountrySubdivisionCode>xyz</CountrySubdivisionCode>" + + "</GeographicLocation>"; + + XmlOptions map = new XmlOptions(); + // map.put(XmlOptions.SAVE_PRETTY_PRINT, ""); + // map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(-1)); + assertEquals(sExpectedXML, xc0.xmlText()); + + String sOExpectedXML = + "<xml-fragment xmlns:xsi=\"http://www.w3.org/2000/10/XMLSchema-instance\">\n" + + "\t\t\t<ver:CityName xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">" + + "DALLAS</ver:CityName>\n" + + "\t\t\t<ver:StateOrProvinceCode xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">" + + "TX</ver:StateOrProvinceCode>\n" + + "\t\t<ver:LocationIdentifier Qualifier=\"FR\" " + + "xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\"/>" + + "<ver:CountrySubdivisionCode xmlns:ver=\"http://www.tranxml.org/TranXML/Version4.0\">xyz" + + "</ver:CountrySubdivisionCode></xml-fragment>"; + + GeographicLocationDocument.GeographicLocation gl = (GeographicLocationDocument.GeographicLocation) xc0.getObject(); + assertEquals(sOExpectedXML, gl.xmlText(map)); + assertTrue(gl.validate()); + + + assertEquals("DALLAS", gl.getCityName().getStringValue()); + assertEquals("TX", gl.getStateOrProvinceCode()); + LocationIdentifierDocument.LocationIdentifier li = gl.getLocationIdentifier(); + assertNotNull("LocationIdentifier unexpectedly null", li); + assertEquals(CodeList309.FR, + gl.getLocationIdentifier().getQualifier()); + assertEquals("xyz", gl.getCountrySubdivisionCode()); + } } } @@ -171,37 +165,34 @@ public class CursorGeneratedTypedObjectT String sFF = "<First>Fred</First><Last>Flintstone</Last>"; String sXml = "<Person xmlns=\"person\"><Name>" + sFF + "</Name></Person>"; - XmlCursor xc = XmlObject.Factory.parse(sXml).newCursor(); - PersonDocument pdoc = (PersonDocument) xc.getObject(); + try (XmlCursor xc = XmlObject.Factory.parse(sXml).newCursor()) { + PersonDocument pdoc = (PersonDocument) xc.getObject(); - xc.toFirstChild(); - XmlCursor xcPlaceHolder = xc.newCursor(); + xc.toFirstChild(); - try { - Person p = (Person) xc.getObject(); - assertTrue(p.validate()); - // move to </Person> - xc.toEndToken(); - - xc.insertElement("Sibling", "person"); - xc.toPrevToken(); - xc.insertElement("Name", "person"); - xc.toPrevToken(); - xc.insertElementWithText("First", "person", "Barney"); - xc.insertElementWithText("Last", "person", "Rubble"); - - p = (Person) xcPlaceHolder.getObject(); - assertTrue(p.validate()); - - assertEquals("Fred", p.getName().getFirst()); - assertEquals("Flintstone", p.getName().getLast()); - Person[] ap = p.getSiblingArray(); - assertEquals(1, ap.length); - assertEquals("Barney", ap[0].getName().getFirst()); - assertEquals("Rubble", ap[0].getName().getLast()); - } finally { - xc.dispose(); - xcPlaceHolder.dispose(); + try (XmlCursor xcPlaceHolder = xc.newCursor()) { + Person p = (Person) xc.getObject(); + assertTrue(p.validate()); + // move to </Person> + xc.toEndToken(); + + xc.insertElement("Sibling", "person"); + xc.toPrevToken(); + xc.insertElement("Name", "person"); + xc.toPrevToken(); + xc.insertElementWithText("First", "person", "Barney"); + xc.insertElementWithText("Last", "person", "Rubble"); + + p = (Person) xcPlaceHolder.getObject(); + assertTrue(p.validate()); + + assertEquals("Fred", p.getName().getFirst()); + assertEquals("Flintstone", p.getName().getLast()); + Person[] ap = p.getSiblingArray(); + assertEquals(1, ap.length); + assertEquals("Barney", ap[0].getName().getFirst()); + assertEquals("Rubble", ap[0].getName().getLast()); + } } } }
Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorLocations.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorLocations.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorLocations.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorLocations.java Thu Jan 6 17:54:30 2022 @@ -37,7 +37,6 @@ public class CursorLocations extends Bas @Test(expected = IllegalArgumentException.class) public void testLocation() throws Exception { - XmlCursor xc1, xc2, xc3, xc4; XmlObject m_xo1; @@ -45,286 +44,257 @@ public class CursorLocations extends Bas JarUtil.getResourceFromJar(Common.TRANXML_FILE_XMLCURSOR_PO)); m_xo1 = XmlObject.Factory.parse(Common.XML_FOO_BAR_TEXT); + try (XmlCursor xc1 = m_xo.newCursor(); + XmlCursor xc2 = m_xo.newCursor(); + XmlCursor xc3 = m_xo1.newCursor()) { + toNextTokenOfType(xc2, TokenType.END); + toNextTokenOfType(xc3, TokenType.START); + + + //start w/ xc1 at beg of doc + //xc2 at end of first elt (po:name) + while (xc1.isLeftOf(xc2)) { + assertFalse(xc1.isRightOf(xc2)); + assertTrue(xc2.isRightOf(xc1)); + assertTrue(xc1.isInSameDocument(xc2)); + assertFalse(xc2.isAtSamePositionAs(xc1)); + assertFalse(xc1.isAtSamePositionAs(xc2)); + assertEquals(1, xc2.comparePosition(xc1)); + assertEquals(-1, xc1.comparePosition(xc2)); + // System.out.println(xc1.currentTokenType() + " " + xc2.currentTokenType()); + xc1.toNextToken(); + xc2.toPrevToken(); + } + //xc1 & xc2 @ shipTo + toNextTokenOfType(xc1,TokenType.TEXT); + toNextTokenOfType(xc2,TokenType.TEXT); + assertEquals("Current Token Type ", + xc1.currentTokenType(), + xc2.currentTokenType()); + //both @ Alice Smith + toNextTokenOfType(xc1,TokenType.TEXT); + toNextTokenOfType(xc2,TokenType.TEXT); + assertEquals(XmlCursor.TokenType.TEXT, + xc1.currentTokenType()); + //these are only equivalent if the cursor is on a TEXT token + assertEquals(xc1.getChars(), xc1.getTextValue()); + assertEquals(xc1.getChars(), xc2.getTextValue()); - xc1 = m_xo.newCursor(); - xc2 = m_xo.newCursor(); - xc3 = m_xo1.newCursor(); + assertTrue(xc1.isAtSamePositionAs(xc2)); + xc2.toNextChar(10); - toNextTokenOfType(xc2, TokenType.END); - toNextTokenOfType(xc3, TokenType.START); + //comparing two cursors in the middle of text - - //start w/ xc1 at beg of doc - //xc2 at end of first elt (po:name) - while (xc1.isLeftOf(xc2)) { - assertFalse(xc1.isRightOf(xc2)); + assertEquals(xc2.toPrevChar(4), xc1.toNextChar(4)); assertTrue(xc2.isRightOf(xc1)); - assertTrue(xc1.isInSameDocument(xc2)); - assertFalse(xc2.isAtSamePositionAs(xc1)); + assertFalse(xc1.isRightOf(xc2)); + assertFalse(xc2.isLeftOf(xc1)); assertFalse(xc1.isAtSamePositionAs(xc2)); assertEquals(1, xc2.comparePosition(xc1)); - assertEquals(-1, xc1.comparePosition(xc2)); - // System.out.println(xc1.currentTokenType() + " " + xc2.currentTokenType()); - xc1.toNextToken(); + assertTrue(xc1.isInSameDocument(xc2)); + xc1.toNextChar(2); + assertEquals(0, xc2.comparePosition(xc1)); + assertEquals(xc1.currentTokenType(), xc2.currentTokenType()); + + //Comparing the same cursor to itself + xc1.toNextChar(1); + assertFalse(xc1.isRightOf(xc1)); + assertEquals(0, xc2.comparePosition(xc2)); + assertTrue(xc2.isInSameDocument(xc2)); + assertTrue(xc2.isAtSamePositionAs(xc2)); + xc2.toPrevToken(); - } - //xc1 & xc2 @ shipTo - toNextTokenOfType(xc1,TokenType.TEXT); - toNextTokenOfType(xc2,TokenType.TEXT); - assertEquals("Current Token Type ", - xc1.currentTokenType(), - xc2.currentTokenType()); - //both @ Alice Smith - toNextTokenOfType(xc1,TokenType.TEXT); - toNextTokenOfType(xc2,TokenType.TEXT); - assertEquals(XmlCursor.TokenType.TEXT, - xc1.currentTokenType()); - //these are only equivalent if the cursor is on a TEXT token - assertEquals(xc1.getChars(), xc1.getTextValue()); - assertEquals(xc1.getChars(), xc2.getTextValue()); - - assertTrue(xc1.isAtSamePositionAs(xc2)); - xc2.toNextChar(10); - - -//comparing two cursors in the middle of text - - assertEquals(xc2.toPrevChar(4), xc1.toNextChar(4)); - assertTrue(xc2.isRightOf(xc1)); - assertFalse(xc1.isRightOf(xc2)); - assertFalse(xc2.isLeftOf(xc1)); - assertFalse(xc1.isAtSamePositionAs(xc2)); - assertEquals(1, xc2.comparePosition(xc1)); - assertTrue(xc1.isInSameDocument(xc2)); - xc1.toNextChar(2); - assertEquals(0, xc2.comparePosition(xc1)); - assertEquals(xc1.currentTokenType(), xc2.currentTokenType()); - - //Comparing the same cursor to itself - xc1.toNextChar(1); - assertFalse(xc1.isRightOf(xc1)); - assertEquals(0, xc2.comparePosition(xc2)); - assertTrue(xc2.isInSameDocument(xc2)); - assertTrue(xc2.isAtSamePositionAs(xc2)); - - xc2.toPrevToken(); - //xc2 on Alice - assertEquals(TokenType.TEXT, xc2.toPrevToken()); - //put the bookmark on S*mith - xc1.setBookmark(_theBookmark0); - - //moving xml and bookmark to a - // different location - assertTrue(xc1.moveXml(xc3)); - xc4 = _theBookmark0.createCursor(); - assertNotNull(xc4); - - XmlCursor debug=xc4.newCursor(); - XmlCursor debug1=xc1.newCursor(); - - toPrevTokenOfType(debug1,TokenType.START); - assertTrue(xc4.isInSameDocument(xc3)); - assertEquals(-1, xc4.comparePosition(xc3)); - // assertEquals(TokenType.TEXT, xc3.toPrevToken()); - assertEquals(4,xc3.toPrevChar(4)); - assertEquals(0, xc4.comparePosition(xc3)); - - //comparing in two different documents - assertFalse(xc2.isInSameDocument(xc3)); - - - try { - xc4.isLeftOf(xc2); - } finally { - xc1.dispose(); - xc2.dispose(); - xc3.dispose(); - xc4.dispose(); + //xc2 on Alice + assertEquals(TokenType.TEXT, xc2.toPrevToken()); + //put the bookmark on S*mith + xc1.setBookmark(_theBookmark0); + + //moving xml and bookmark to a + // different location + assertTrue(xc1.moveXml(xc3)); + try (XmlCursor xc4 = _theBookmark0.createCursor(); + XmlCursor debug=xc1.newCursor()) { + assertNotNull(xc4); + + toPrevTokenOfType(debug,TokenType.START); + assertTrue(xc4.isInSameDocument(xc3)); + assertEquals(-1, xc4.comparePosition(xc3)); + // assertEquals(TokenType.TEXT, xc3.toPrevToken()); + assertEquals(4,xc3.toPrevChar(4)); + assertEquals(0, xc4.comparePosition(xc3)); + + //comparing in two different documents + assertFalse(xc2.isInSameDocument(xc3)); + + xc4.isLeftOf(xc2); + } } } @Test public void testLocationATTR() throws Exception { - XmlCursor xc1, xc2; m_xo = XmlObject.Factory.parse(Common.XML_FOO_5ATTR_TEXT); - xc1 = m_xo.newCursor(); - xc2 = m_xo.newCursor(); + try (XmlCursor xc1 = m_xo.newCursor(); + XmlCursor xc2 = m_xo.newCursor()) { + toNextTokenOfType(xc1, TokenType.ATTR); + toNextTokenOfType(xc2, TokenType.ATTR); + + int i = 0; + while (xc2.currentTokenType() == TokenType.ATTR) { + xc2.toNextToken(); + ++i; + } - toNextTokenOfType(xc1, TokenType.ATTR); - toNextTokenOfType(xc2, TokenType.ATTR); - - int i = 0; - while (xc2.currentTokenType() == TokenType.ATTR) { - xc2.toNextToken(); - ++i; - } + assertEquals(5, i); + xc2.toPrevToken(); - assertEquals(5, i); - xc2.toPrevToken(); + //moving betweenAttributes. one cursor is at the last ATTR and other is at first ATTR. + while (xc1.isLeftOf(xc2)) { + assertFalse(xc1.isRightOf(xc2)); + assertTrue(xc2.isRightOf(xc1)); + assertTrue(xc1.isInSameDocument(xc2)); + assertFalse(xc2.isAtSamePositionAs(xc1)); + assertFalse(xc1.isAtSamePositionAs(xc2)); + assertEquals(1, xc2.comparePosition(xc1)); + assertEquals(-1, xc1.comparePosition(xc2)); + // System.out.println(xc1.currentTokenType() + " " + xc2.currentTokenType()); + xc1.toNextToken(); + xc2.toPrevToken(); + } + assertTrue(xc1.isAtSamePositionAs(xc2)); + + //inserting and then comparing to make sure cursors move properly. + xc2.insertAttributeWithValue("attr5", "val5"); + assertEquals(0, xc1.comparePosition(xc2)); - //moving betweenAttributes. one cursor is at the last ATTR and other is at first ATTR. - while (xc1.isLeftOf(xc2)) { - assertFalse(xc1.isRightOf(xc2)); - assertTrue(xc2.isRightOf(xc1)); - assertTrue(xc1.isInSameDocument(xc2)); - assertFalse(xc2.isAtSamePositionAs(xc1)); - assertFalse(xc1.isAtSamePositionAs(xc2)); - assertEquals(1, xc2.comparePosition(xc1)); - assertEquals(-1, xc1.comparePosition(xc2)); - // System.out.println(xc1.currentTokenType() + " " + xc2.currentTokenType()); - xc1.toNextToken(); xc2.toPrevToken(); + assertEquals("val5", xc2.getTextValue()); } - assertTrue(xc1.isAtSamePositionAs(xc2)); - - //inserting and then comparing to make sure cursors move properly. - xc2.insertAttributeWithValue("attr5", "val5"); - assertEquals(0, xc1.comparePosition(xc2)); - - xc2.toPrevToken(); - assertEquals("val5", xc2.getTextValue()); - - xc1.dispose(); - xc2.dispose(); - } @Test public void testLocationTEXTMiddle() throws Exception { - XmlCursor xc1, xc2, xc3; m_xo = XmlObject.Factory.parse(Common.XML_TEXT_MIDDLE); - xc1 = m_xo.newCursor(); - xc2 = m_xo.newCursor(); - xc3 = m_xo.newCursor(); - - - // while(xc2.currentTokenType() != TokenType.ENDDOC) - // { - // System.out.println(xc2.currentTokenType()); - // xc2.toNextToken(); - // } - - // moving cursor to right locations. one is in middle of mixed content. - // the others is in middle of text of first node and last node - - toNextTokenOfType(xc1, TokenType.TEXT); - toNextTokenOfType(xc2, TokenType.TEXT); - toNextTokenOfType(xc3, TokenType.START); - toNextTokenOfType(xc2, TokenType.TEXT); - xc1.toNextChar(4); - xc2.toNextChar(5); - xc3.toEndToken(); - xc3.toPrevToken(); - xc3.toPrevChar(3); - - //comparing positions - assertEquals(-1, xc2.comparePosition(xc3)); - assertTrue(xc2.isRightOf(xc1)); - assertTrue(xc1.isInSameDocument(xc2)); - assertFalse(xc2.isAtSamePositionAs(xc3)); - - //moving cursors - xc3.toPrevChar(2); - xc2.toNextChar(1); - - //comparing position once again - assertEquals(-1, xc2.comparePosition(xc3)); - assertTrue(xc2.isRightOf(xc1)); - assertTrue(xc1.isInSameDocument(xc2)); - assertFalse(xc2.isAtSamePositionAs(xc3)); - - //moving and bringing them to identical positions - xc3.toPrevToken(); - xc2.toNextChar(2); - assertTrue(xc2.isAtSamePositionAs(xc3)); - - xc1.dispose(); - xc2.dispose(); - xc3.dispose(); + try (XmlCursor xc1 = m_xo.newCursor(); + XmlCursor xc2 = m_xo.newCursor(); + XmlCursor xc3 = m_xo.newCursor()) { + // while(xc2.currentTokenType() != TokenType.ENDDOC) + // { + // System.out.println(xc2.currentTokenType()); + // xc2.toNextToken(); + // } + + // moving cursor to right locations. one is in middle of mixed content. + // the others is in middle of text of first node and last node + + toNextTokenOfType(xc1, TokenType.TEXT); + toNextTokenOfType(xc2, TokenType.TEXT); + toNextTokenOfType(xc3, TokenType.START); + toNextTokenOfType(xc2, TokenType.TEXT); + xc1.toNextChar(4); + xc2.toNextChar(5); + xc3.toEndToken(); + xc3.toPrevToken(); + xc3.toPrevChar(3); + + //comparing positions + assertEquals(-1, xc2.comparePosition(xc3)); + assertTrue(xc2.isRightOf(xc1)); + assertTrue(xc1.isInSameDocument(xc2)); + assertFalse(xc2.isAtSamePositionAs(xc3)); + + //moving cursors + xc3.toPrevChar(2); + xc2.toNextChar(1); + + //comparing position once again + assertEquals(-1, xc2.comparePosition(xc3)); + assertTrue(xc2.isRightOf(xc1)); + assertTrue(xc1.isInSameDocument(xc2)); + assertFalse(xc2.isAtSamePositionAs(xc3)); + + //moving and bringing them to identical positions + xc3.toPrevToken(); + xc2.toNextChar(2); + assertTrue(xc2.isAtSamePositionAs(xc3)); + } } @Test public void testXmlObjectUsingCursor() throws Exception { - XmlCursor xc1, xc2, xc3; - - PurchaseOrderDocument pod = PurchaseOrderDocument.Factory.parse( + PurchaseOrderDocument pod = PurchaseOrderDocument.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_XMLCURSOR_PO)); - xc1 = pod.newCursor(); - xc2 = pod.newCursor(); - xc3 = pod.newCursor(); - - - //moving cursor location so that it comes to zip under shipto - - toNextTokenOfType(xc1, TokenType.START); - toNextTokenOfType(xc1, TokenType.START); - toNextTokenOfType(xc2, TokenType.START); - toNextTokenOfType(xc2, TokenType.START); - toNextTokenOfType(xc3, TokenType.START); - toNextTokenOfType(xc3, TokenType.START); - - xc1.toEndToken(); - xc2.toEndToken(); - xc3.toEndToken(); - - toPrevTokenOfType(xc1, TokenType.TEXT); - toPrevTokenOfType(xc1, TokenType.TEXT); - toPrevTokenOfType(xc2, TokenType.TEXT); - toPrevTokenOfType(xc2, TokenType.TEXT); - toPrevTokenOfType(xc3, TokenType.TEXT); - toPrevTokenOfType(xc3, TokenType.TEXT); - //all cursors are now at: 90952 - assertEquals(xc1.getChars(), xc2.getChars(), xc3.getChars()); - //at 52 - xc2.toNextChar(3); - //after 90952 - xc3.toNextChar(5); - assertFalse(xc2.isAtSamePositionAs(xc3)); - assertFalse(xc3.isAtSamePositionAs(xc1)); - - - //setting zip value through the object . - // once the set occurs comparing postions of cursors. - PurchaseOrderType pt = pod.getPurchaseOrder(); - USAddress usa = pt.getShipTo(); - usa.setZip(new BigDecimal(500)); - - assertEquals(500,usa.getZip().intValue()); - //Any cursors in the value of an Element/attr should be positioned - // at the end of the elem/attr after the strong setter - assertTrue(xc2.isAtSamePositionAs(xc3)); - assertTrue(xc3.isAtSamePositionAs(xc1)); - - assertEquals(TokenType.END,xc1.currentTokenType()); - - - // inserting an element through the cursor under zip and then doing - // a set of a valid value through object.. - - xc1.insertElementWithText("foo", "text"); - toPrevTokenOfType(xc1, TokenType.START); - toPrevTokenOfType(xc1, TokenType.START); - //System.out.println("here" + xc1.getTextValue()); - - toNextTokenOfType(xc1, TokenType.START); - - xc1.toNextChar(2); - usa.setZip(new BigDecimal(90852)); - - assertTrue(xc2.isAtSamePositionAs(xc3)); - assertTrue(xc3.isAtSamePositionAs(xc1)); - //cursors at the end of element - xc1.toPrevToken(); - //assertEquals(5,xc1.toPrevChar(5)); - assertEquals("90852", xc1.getChars()); - - - xc1.dispose(); - xc2.dispose(); - xc3.dispose(); + + try (XmlCursor xc1 = pod.newCursor(); + XmlCursor xc2 = pod.newCursor(); + XmlCursor xc3 = pod.newCursor()) { + //moving cursor location so that it comes to zip under shipto + + toNextTokenOfType(xc1, TokenType.START); + toNextTokenOfType(xc1, TokenType.START); + toNextTokenOfType(xc2, TokenType.START); + toNextTokenOfType(xc2, TokenType.START); + toNextTokenOfType(xc3, TokenType.START); + toNextTokenOfType(xc3, TokenType.START); + + xc1.toEndToken(); + xc2.toEndToken(); + xc3.toEndToken(); + + toPrevTokenOfType(xc1, TokenType.TEXT); + toPrevTokenOfType(xc1, TokenType.TEXT); + toPrevTokenOfType(xc2, TokenType.TEXT); + toPrevTokenOfType(xc2, TokenType.TEXT); + toPrevTokenOfType(xc3, TokenType.TEXT); + toPrevTokenOfType(xc3, TokenType.TEXT); + //all cursors are now at: 90952 + assertEquals(xc1.getChars(), xc2.getChars(), xc3.getChars()); + //at 52 + xc2.toNextChar(3); + //after 90952 + xc3.toNextChar(5); + assertFalse(xc2.isAtSamePositionAs(xc3)); + assertFalse(xc3.isAtSamePositionAs(xc1)); + + + //setting zip value through the object . + // once the set occurs comparing postions of cursors. + PurchaseOrderType pt = pod.getPurchaseOrder(); + USAddress usa = pt.getShipTo(); + usa.setZip(new BigDecimal(500)); + + assertEquals(500,usa.getZip().intValue()); + //Any cursors in the value of an Element/attr should be positioned + // at the end of the elem/attr after the strong setter + assertTrue(xc2.isAtSamePositionAs(xc3)); + assertTrue(xc3.isAtSamePositionAs(xc1)); + + assertEquals(TokenType.END,xc1.currentTokenType()); + + + // inserting an element through the cursor under zip and then doing + // a set of a valid value through object.. + + xc1.insertElementWithText("foo", "text"); + toPrevTokenOfType(xc1, TokenType.START); + toPrevTokenOfType(xc1, TokenType.START); + //System.out.println("here" + xc1.getTextValue()); + + toNextTokenOfType(xc1, TokenType.START); + + xc1.toNextChar(2); + usa.setZip(new BigDecimal(90852)); + + assertTrue(xc2.isAtSamePositionAs(xc3)); + assertTrue(xc3.isAtSamePositionAs(xc1)); + //cursors at the end of element + xc1.toPrevToken(); + //assertEquals(5,xc1.toPrevChar(5)); + assertEquals("90852", xc1.getChars()); + } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectAttributeTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectAttributeTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectAttributeTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectAttributeTest.java Thu Jan 6 17:54:30 2022 @@ -37,15 +37,16 @@ public class CursorVsObjectAttributeTest public void testAttributeSet() throws Exception { CarLocationMessageDocument clmDoc = CarLocationMessageDocument.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); - XmlCursor xc = clmDoc.newCursor(); - xc.toFirstChild(); - CarLocationMessage clm = (CarLocationMessage) xc.getObject(); + try (XmlCursor xc = clmDoc.newCursor()) { + xc.toFirstChild(); + CarLocationMessage clm = (CarLocationMessage) xc.getObject(); - clm.setVersion("XyZ"); - QName name = new QName("Version"); - assertEquals("XyZ", xc.getAttributeText(name)); - xc.setAttributeText(name, "012"); - assertEquals("012", clm.getVersion()); + clm.setVersion("XyZ"); + QName name = new QName("Version"); + assertEquals("XyZ", xc.getAttributeText(name)); + xc.setAttributeText(name, "012"); + assertEquals("012", clm.getVersion()); + } } @Test @@ -53,17 +54,18 @@ public class CursorVsObjectAttributeTest CarLocationMessageDocument clmDoc = (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); - XmlCursor xc = clmDoc.newCursor(); - xc.toFirstChild(); - CarLocationMessage clm = (CarLocationMessage) xc.getObject(); - QName name = new QName("Version"); - assertEquals("CLM", xc.getAttributeText(name)); - clm.unsetVersion(); - assertNull(xc.getAttributeText(name)); - xc.setAttributeText(name, "012"); - assertEquals("012", clm.getVersion()); - xc.removeAttribute(name); - assertNull(clm.getVersion()); + try (XmlCursor xc = clmDoc.newCursor()) { + xc.toFirstChild(); + CarLocationMessage clm = (CarLocationMessage) xc.getObject(); + QName name = new QName("Version"); + assertEquals("CLM", xc.getAttributeText(name)); + clm.unsetVersion(); + assertNull(xc.getAttributeText(name)); + xc.setAttributeText(name, "012"); + assertEquals("012", clm.getVersion()); + xc.removeAttribute(name); + assertNull(clm.getVersion()); + } } @Test @@ -74,16 +76,17 @@ public class CursorVsObjectAttributeTest CarLocationMessageDocument clmDoc = (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM), map); - XmlCursor xc = clmDoc.newCursor(); - xc.toFirstChild(); - CarLocationMessage clm = (CarLocationMessage) xc.getObject(); - QName name = new QName("Version"); - assertEquals("CLM", xc.getAttributeText(name)); - clm.unsetVersion(); - assertNull(xc.getAttributeText(name)); - xc.toFirstChild(); - assertEquals(TokenType.START, xc.currentTokenType()); - xc.insertAttributeWithValue(name, "012"); - assertEquals("012", clm.getVersion()); + try (XmlCursor xc = clmDoc.newCursor()) { + xc.toFirstChild(); + CarLocationMessage clm = (CarLocationMessage) xc.getObject(); + QName name = new QName("Version"); + assertEquals("CLM", xc.getAttributeText(name)); + clm.unsetVersion(); + assertNull(xc.getAttributeText(name)); + xc.toFirstChild(); + assertEquals(TokenType.START, xc.currentTokenType()); + xc.insertAttributeWithValue(name, "012"); + assertEquals("012", clm.getVersion()); + } } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectInsertRemoveTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectInsertRemoveTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectInsertRemoveTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectInsertRemoveTest.java Thu Jan 6 17:54:30 2022 @@ -35,35 +35,35 @@ public class CursorVsObjectInsertRemoveT (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); assertNotNull(clm); - XmlCursor xc = clm.newCursor(); - xc.toFirstChild(); - xc.toFirstChild(); - xc.toNextSibling(); - xc.toNextSibling(); - assertEquals("EventStatus", xc.getName().getLocalPart()); - EventStatus eventStatus = (EventStatus) xc.getObject(); - assertNotNull("Expected non-null EventStatus object", eventStatus); - String sEventStatusText = xc.getTextValue(); - GeographicLocation glDest = eventStatus.getDestination().getGeographicLocation(); - assertNotNull("Expected non-null GeographicLocation object", glDest); - glDest.setPostalCode("90210"); - glDest.setCountryCode("US"); - XmlCursor xcPostalCode = glDest.xgetPostalCode().newCursor(); - XmlCursor xcCountryCode = glDest.xgetCountryCode().newCursor(); - try { - assertEquals("90210", xcPostalCode.getTextValue()); - assertEquals("US", xcCountryCode.getTextValue()); - xcPostalCode.setTextValue("90310"); - xcPostalCode.toNextChar(2); - assertEquals("90310", glDest.getPostalCode()); - eventStatus.getDestination().getGeographicLocation().unsetPostalCode(); - assertEquals(TokenType.START, xcPostalCode.currentTokenType()); - assertEquals("CountryCode", xcPostalCode.getName().getLocalPart()); - xcCountryCode.removeXml(); - assertEquals(sEventStatusText, xc.getTextValue()); - } finally { - xcPostalCode.dispose(); - xcCountryCode.dispose(); + try (XmlCursor xc = clm.newCursor()) { + xc.toFirstChild(); + xc.toFirstChild(); + xc.toNextSibling(); + xc.toNextSibling(); + assertEquals("EventStatus", xc.getName().getLocalPart()); + EventStatus eventStatus; + eventStatus = (EventStatus) xc.getObject(); + assertNotNull("Expected non-null EventStatus object", eventStatus); + String sEventStatusText; + sEventStatusText = xc.getTextValue(); + + GeographicLocation glDest = eventStatus.getDestination().getGeographicLocation(); + assertNotNull("Expected non-null GeographicLocation object", glDest); + glDest.setPostalCode("90210"); + glDest.setCountryCode("US"); + try (XmlCursor xcPostalCode = glDest.xgetPostalCode().newCursor(); + XmlCursor xcCountryCode = glDest.xgetCountryCode().newCursor()) { + assertEquals("90210", xcPostalCode.getTextValue()); + assertEquals("US", xcCountryCode.getTextValue()); + xcPostalCode.setTextValue("90310"); + xcPostalCode.toNextChar(2); + assertEquals("90310", glDest.getPostalCode()); + eventStatus.getDestination().getGeographicLocation().unsetPostalCode(); + assertEquals(TokenType.START, xcPostalCode.currentTokenType()); + assertEquals("CountryCode", xcPostalCode.getName().getLocalPart()); + xcCountryCode.removeXml(); + assertEquals(sEventStatusText, xc.getTextValue()); + } } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectSetGetTextTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectSetGetTextTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectSetGetTextTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/CursorVsObjectSetGetTextTest.java Thu Jan 6 17:54:30 2022 @@ -35,10 +35,9 @@ public class CursorVsObjectSetGetTextTes (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); assertNotNull(clm); - XmlCursor xc = clm.newCursor(); GeographicLocation[] aGL = new GeographicLocation[3]; - try { + try (XmlCursor xc = clm.newCursor()) { xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + "$this//GeographicLocation"); xc.toNextSelection(); @@ -67,8 +66,6 @@ public class CursorVsObjectSetGetTextTes for (int i = 0; i < 3; i++) { assertEquals("PORTLAND", aGL[i].getCityName().getStringValue()); } - } finally { - xc.dispose(); } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/MoveXmlTest2.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/MoveXmlTest2.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/MoveXmlTest2.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/MoveXmlTest2.java Thu Jan 6 17:54:30 2022 @@ -112,21 +112,21 @@ public class MoveXmlTest2 extends BasicC public void testMovedAttrNameCollision() throws Exception { - m_xc1 = XmlObject.Factory.parse(sTestXml).newCursor(); - toNextTokenOfType(m_xc, TokenType.START);//m_xc on book at0 - toNextTokenOfType(m_xc1, TokenType.START); - toNextTokenOfType(m_xc1, TokenType.START); - //toNextTokenOfType(m_xc1,TokenType.END);//to author - assertTrue(m_xc1.toFirstAttribute()); - assertTrue(m_xc.toFirstAttribute()); //at0 in book - if (m_xc.moveXml(m_xc1)) { - toPrevTokenOfType(m_xc1, TokenType.START); - m_xc1.toFirstAttribute(); - assertEquals(m_xc1.getName().getLocalPart(), "at0"); - assertTrue(m_xc1.toNextAttribute()); - assertEquals(m_xc1.getName().getLocalPart(), "at0"); + try (XmlCursor m_xc2 = XmlObject.Factory.parse(sTestXml).newCursor()) { + toNextTokenOfType(m_xc, TokenType.START);//m_xc on book at0 + toNextTokenOfType(m_xc2, TokenType.START); + toNextTokenOfType(m_xc2, TokenType.START); + //toNextTokenOfType(m_xc2,TokenType.END);//to author + assertTrue(m_xc2.toFirstAttribute()); + assertTrue(m_xc.toFirstAttribute()); //at0 in book + if (m_xc.moveXml(m_xc2)) { + toPrevTokenOfType(m_xc2, TokenType.START); + m_xc2.toFirstAttribute(); + assertEquals(m_xc2.getName().getLocalPart(), "at0"); + assertTrue(m_xc2.toNextAttribute()); + assertEquals(m_xc2.getName().getLocalPart(), "at0"); + } } - m_xc1.dispose(); } /** @@ -183,7 +183,7 @@ public class MoveXmlTest2 extends BasicC { super.tearDown(); if (m_xc1 != null) { - m_xc1.dispose(); + m_xc1.close(); m_xc1 = null; } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyFromCursorTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyFromCursorTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyFromCursorTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyFromCursorTest.java Thu Jan 6 17:54:30 2022 @@ -42,9 +42,8 @@ public class MultipleCopyFromCursorTest (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); assertNotNull(clm); - XmlCursor xc = clm.newCursor(); XmlCursor[] aCursors = new XmlCursor[3]; - try { + try (XmlCursor xc = clm.newCursor()) { xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + "$this//GeographicLocation"); xc.toNextSelection(); @@ -119,9 +118,8 @@ public class MultipleCopyFromCursorTest } } finally { - xc.dispose(); for (int i = 0; i < 3; i++) { - aCursors[i].dispose(); + aCursors[i].close(); } } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCopyTest.java Thu Jan 6 17:54:30 2022 @@ -36,9 +36,8 @@ public class MultipleCopyTest { (CarLocationMessageDocument) XmlObject.Factory.parse( JarUtil.getResourceFromJar(Common.TRANXML_FILE_CLM)); assertNotNull(clm); - XmlCursor xc = clm.newCursor(); XmlCursor[] aCursors = new XmlCursor[3]; - try { + try (XmlCursor xc = clm.newCursor()) { xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + "$this//GeographicLocation"); xc.toNextSelection(); @@ -70,9 +69,8 @@ public class MultipleCopyTest { assertEquals("xyz", gl.getCountrySubdivisionCode()); } } finally { - xc.dispose(); for (int i = 0; i < 3; i++) { - aCursors[i].dispose(); + aCursors[i].close(); } } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCursorSetTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCursorSetTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCursorSetTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/MultipleCursorSetTest.java Thu Jan 6 17:54:30 2022 @@ -30,18 +30,20 @@ import static org.junit.Assert.*; public class MultipleCursorSetTest { @Test public void testMultipleCursorSet() throws Exception { - XmlCursor xc = XmlObject.Factory.parse(JarUtil.getResourceFromJar( - Common.TRANXML_FILE_CLM)).newCursor(); - xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + - "$this//EquipmentNumber"); - xc.toNextSelection(); - XmlString xs = (XmlString) xc.getObject(); - assertEquals("123456", xs.getStringValue()); - assertEquals(TokenType.TEXT, xc.toNextToken()); XmlCursor[] aCursors = new XmlCursor[6]; - for (int i = 0; i < 6; i++) { - xc.toNextChar(1); - aCursors[i] = xc.newCursor(); + XmlString xs; + try (XmlCursor xc = XmlObject.Factory.parse(JarUtil.getResourceFromJar( + Common.TRANXML_FILE_CLM)).newCursor()) { + xc.selectPath(Common.CLM_NS_XQUERY_DEFAULT + + "$this//EquipmentNumber"); + xc.toNextSelection(); + xs = (XmlString) xc.getObject(); + assertEquals("123456", xs.getStringValue()); + assertEquals(TokenType.TEXT, xc.toNextToken()); + for (int i = 0; i < 6; i++) { + xc.toNextChar(1); + aCursors[i] = xc.newCursor(); + } } for (int i = 0; i < 6; i++) { for (int j = 0; j != i && j < 6; j++) { Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/ObjectCursorInteractionTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/ObjectCursorInteractionTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/ObjectCursorInteractionTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/ObjectCursorInteractionTest.java Thu Jan 6 17:54:30 2022 @@ -39,21 +39,18 @@ public class ObjectCursorInteractionTest // LocationDocument locDoc = (LocationDocument) XmlObject.Factory.parse(sXml); LocationDocument locDoc = LocationDocument.Factory.parse(sXml); Location loc = locDoc.getLocation(); - XmlCursor xc0 = loc.newCursor(); - assertEquals("DALLAS", loc.getCityName()); - loc = null; - System.gc(); - try { + try (XmlCursor xc0 = loc.newCursor()) { + assertEquals("DALLAS", loc.getCityName()); + loc = null; + System.gc(); Thread.sleep(1000); xc0.toFirstChild(); assertEquals("DALLAS", xc0.getTextValue()); - } finally { - xc0.dispose(); } } @Test - public void testCursorDisposalEffectOnObject() throws Exception { + public void testCursorCloseEffectOnObject() throws Exception { String sNamespace = "xmlns:loc=\"http://xbean.test/xmlcursor/Location\""; String sXml = "<loc:Location " + sNamespace + ">" + "<loc:CityName>DALLAS</loc:CityName><loc:StateCode>TX</loc:StateCode></loc:Location>"; @@ -62,23 +59,20 @@ public class ObjectCursorInteractionTest assertTrue(locDoc.validate()); Location loc0 = locDoc.getLocation(); Location loc1 = locDoc.getLocation(); - XmlCursor xc0 = loc0.newCursor(); - XmlCursor xc1 = loc1.newCursor(); - xc0.toFirstChild(); - xc1.toFirstChild(); - xc0.setTextValue("AUSTIN"); - try { + try (XmlCursor xc0 = loc0.newCursor(); + XmlCursor xc1 = loc1.newCursor()) { + xc0.toFirstChild(); + xc1.toFirstChild(); + xc0.setTextValue("AUSTIN"); + assertEquals("AUSTIN", loc0.getCityName()); loc1.setCityName("SAN ANTONIO"); - xc0.dispose(); + xc0.close(); assertEquals("SAN ANTONIO", xc1.getTextValue()); xc1.setTextValue("HOUSTON"); - xc1.dispose(); + xc1.close(); assertEquals("HOUSTON", loc0.getCityName()); - } finally { - xc0.dispose(); - xc1.dispose(); } } @@ -120,7 +114,7 @@ public class ObjectCursorInteractionTest xc0 = loc0.newCursor(); assertEquals(sXml1, xc0.xmlText()); } finally { - xc0.dispose(); + xc0.close(); } } @@ -167,8 +161,8 @@ public class ObjectCursorInteractionTest assertEquals("US", loc0.getCountryCode()); } finally { - xc0.dispose(); - xc1.dispose(); + xc0.close(); + xc1.close(); } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/SelectionsTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/SelectionsTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/SelectionsTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/SelectionsTest.java Thu Jan 6 17:54:30 2022 @@ -35,34 +35,35 @@ public class SelectionsTest extends Basi //average case test @Test public void testNormalCase() throws Exception { - XmlCursor m_xc1 = m_xo.newCursor(); - int nSelectionsCount = 7; - m_xc.selectPath("$this//a"); - assertFalse(m_xc.hasNextSelection()); - assertFalse(m_xc.toNextSelection()); - assertEquals(0, m_xc.getSelectionCount()); - - m_xc.selectPath("$this//b"); - m_xc1.toFirstChild(); - m_xc1.toFirstChild(); - do { - m_xc1.addToSelection(); - } while (m_xc1.toNextSibling()); - assertEquals(nSelectionsCount, m_xc.getSelectionCount()); - int i = 0; - while (m_xc.hasNextSelection()) { - m_xc.toNextSelection(); - assertEquals("" + i, m_xc.getTextValue()); - i++; - } - int j = 0; - while (m_xc1.hasNextSelection()) { - m_xc1.toSelection(j); - assertEquals("" + j, m_xc1.getTextValue()); - j++; - } - assertEquals(nSelectionsCount, j); - assertEquals(nSelectionsCount, i); + try (XmlCursor m_xc1 = m_xo.newCursor()) { + int nSelectionsCount = 7; + m_xc.selectPath("$this//a"); + assertFalse(m_xc.hasNextSelection()); + assertFalse(m_xc.toNextSelection()); + assertEquals(0, m_xc.getSelectionCount()); + + m_xc.selectPath("$this//b"); + m_xc1.toFirstChild(); + m_xc1.toFirstChild(); + do { + m_xc1.addToSelection(); + } while (m_xc1.toNextSibling()); + assertEquals(nSelectionsCount, m_xc.getSelectionCount()); + int i = 0; + while (m_xc.hasNextSelection()) { + m_xc.toNextSelection(); + assertEquals("" + i, m_xc.getTextValue()); + i++; + } + int j = 0; + while (m_xc1.hasNextSelection()) { + m_xc1.toSelection(j); + assertEquals("" + j, m_xc1.getTextValue()); + j++; + } + assertEquals(nSelectionsCount, j); + assertEquals(nSelectionsCount, i); + } } @Test @@ -108,21 +109,19 @@ public class SelectionsTest extends Basi "declare namespace ns='http://xbean.test/xmlcursor/CR196679'" + "$this/ns:value"; - XmlCursor cursor = test.newCursor(); - cursor.push(); - cursor.selectPath(queryName); - cursor.toNextSelection(); - - assertEquals("myTest", cursor.getTextValue()); - - cursor.pop(); - cursor.selectPath(queryValue); - cursor.toNextSelection(); - - assertEquals("5", cursor.getTextValue());//expected output is value=5 - - cursor.dispose(); + try (XmlCursor cursor = test.newCursor()) { + cursor.push(); + cursor.selectPath(queryName); + cursor.toNextSelection(); + + assertEquals("myTest", cursor.getTextValue()); + + cursor.pop(); + cursor.selectPath(queryValue); + cursor.toNextSelection(); + assertEquals("5", cursor.getTextValue());//expected output is value=5 + } } @Before Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/ToBookmarkTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/ToBookmarkTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/ToBookmarkTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/ToBookmarkTest.java Thu Jan 6 17:54:30 2022 @@ -39,15 +39,13 @@ public class ToBookmarkTest extends Basi m_xc = m_xo.newCursor(); toNextTokenOfType(m_xc, TokenType.START); m_xc.setBookmark(_theBookmark); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toEndDoc(); - assertTrue(xc1.toBookmark(_theBookmark)); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toEndDoc(); + assertTrue(xc1.toBookmark(_theBookmark)); + assertTrue(m_xc.isAtSamePositionAs(xc1)); SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(_theBookmark.getClass()); assertEquals("value", sa.text); - } finally { - xc1.dispose(); } } @@ -57,15 +55,13 @@ public class ToBookmarkTest extends Basi m_xc = m_xo.newCursor(); toNextTokenOfType(m_xc, TokenType.START); m_xc.setBookmark(_theBookmark); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toStartDoc(); - assertTrue(xc1.toBookmark(_theBookmark)); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toStartDoc(); + assertTrue(xc1.toBookmark(_theBookmark)); + assertTrue(m_xc.isAtSamePositionAs(xc1)); SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(_theBookmark.getClass()); assertEquals("value", sa.text); - } finally { - xc1.dispose(); } } @@ -75,14 +71,12 @@ public class ToBookmarkTest extends Basi m_xc = m_xo.newCursor(); toNextTokenOfType(m_xc, TokenType.START); m_xc.setBookmark(_theBookmark); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toEndDoc(); - assertFalse(xc1.toBookmark(null)); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toEndDoc(); + assertFalse(xc1.toBookmark(null)); + assertFalse(m_xc.isAtSamePositionAs(xc1)); assertEquals(TokenType.ENDDOC, xc1.currentTokenType()); - } finally { - xc1.dispose(); } } @@ -91,15 +85,13 @@ public class ToBookmarkTest extends Basi m_xo = XmlObject.Factory.parse(Common.XML_FOO_TEXT); m_xc = m_xo.newCursor(); XmlObject xo = XmlObject.Factory.parse(Common.XML_FOO); - XmlCursor xc1 = xo.newCursor(); - assertFalse(m_xc.isInSameDocument(xc1)); - toNextTokenOfType(m_xc, TokenType.START); - m_xc.setBookmark(_theBookmark); - try { + try (XmlCursor xc1 = xo.newCursor()) { + assertFalse(m_xc.isInSameDocument(xc1)); + toNextTokenOfType(m_xc, TokenType.START); + m_xc.setBookmark(_theBookmark); + assertFalse(xc1.toBookmark(_theBookmark)); assertFalse(m_xc.isInSameDocument(xc1)); - } finally { - xc1.dispose(); } } @@ -110,23 +102,23 @@ public class ToBookmarkTest extends Basi String exp_ns = "xmlns:po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; m_xc = m_xo.newCursor(); - XmlCursor xc1 = m_xo.newCursor(); - m_xc.selectPath(ns + " $this//po:shipTo/po:city"); - while (m_xc.toNextSelection()) { - m_xc.setBookmark(_theBookmark); - xc1.selectPath(ns + " $this//po:billTo/po:city"); - while (xc1.toNextSelection()) { - m_xc.moveXml(xc1); - try { - assertTrue(xc1.toBookmark(_theBookmark)); - assertEquals("<po:city " + exp_ns + ">Mill Valley</po:city>", xc1.xmlText()); - xc1.toNextSibling(); - assertEquals("<po:city " + exp_ns + ">Old Town</po:city>", xc1.xmlText()); - } catch (Exception e) { + try (XmlCursor xc1 = m_xo.newCursor()) { + m_xc.selectPath(ns + " $this//po:shipTo/po:city"); + while (m_xc.toNextSelection()) { + m_xc.setBookmark(_theBookmark); + xc1.selectPath(ns + " $this//po:billTo/po:city"); + while (xc1.toNextSelection()) { + m_xc.moveXml(xc1); + try { + assertTrue(xc1.toBookmark(_theBookmark)); + assertEquals("<po:city " + exp_ns + ">Mill Valley</po:city>", xc1.xmlText()); + xc1.toNextSibling(); + assertEquals("<po:city " + exp_ns + ">Old Town</po:city>", xc1.xmlText()); + } catch (Exception e) { + } } } } - xc1.dispose(); } @Test @@ -136,76 +128,74 @@ public class ToBookmarkTest extends Basi String exp_ns = "xmlns:po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; m_xc = m_xo.newCursor(); - XmlCursor xc1 = m_xo.newCursor(); - m_xc.selectPath(ns + " $this//po:shipTo/po:city"); - while (m_xc.toNextSelection()) { - m_xc.setBookmark(_theBookmark); - toNextTokenOfType(m_xc, TokenType.TEXT); - m_xc.toNextToken(); - m_xc.toNextToken(); // move to behind the <city>Mill Valley</city> element - assertEquals(TokenType.TEXT, m_xc.currentTokenType()); - m_xc.setBookmark(_theBookmark1); - m_xc.toBookmark(_theBookmark); - xc1.selectPath(ns + " $this//po:billTo/po:city"); - while (xc1.toNextSelection()) { - m_xc.moveXml(xc1); - m_xc.toStartDoc(); - try { - assertTrue(xc1.toBookmark(_theBookmark1)); - xc1.toPrevSibling(); - assertEquals("<po:street " + exp_ns + ">123 Maple Street</po:street>", xc1.xmlText()); - } catch (Exception e) { + try (XmlCursor xc1 = m_xo.newCursor()) { + m_xc.selectPath(ns + " $this//po:shipTo/po:city"); + while (m_xc.toNextSelection()) { + m_xc.setBookmark(_theBookmark); + toNextTokenOfType(m_xc, TokenType.TEXT); + m_xc.toNextToken(); + m_xc.toNextToken(); // move to behind the <city>Mill Valley</city> element + assertEquals(TokenType.TEXT, m_xc.currentTokenType()); + m_xc.setBookmark(_theBookmark1); + m_xc.toBookmark(_theBookmark); + xc1.selectPath(ns + " $this//po:billTo/po:city"); + while (xc1.toNextSelection()) { + m_xc.moveXml(xc1); + m_xc.toStartDoc(); + try { + assertTrue(xc1.toBookmark(_theBookmark1)); + xc1.toPrevSibling(); + assertEquals("<po:street " + exp_ns + ">123 Maple Street</po:street>", xc1.xmlText()); + } catch (Exception e) { + } } } } - xc1.dispose(); } @Test public void testToBookmarkPostCopy() throws Exception { m_xo = XmlObject.Factory.parse(JarUtil.getResourceFromJar(Common.TRANXML_FILE_XMLCURSOR_PO)); m_xc = m_xo.newCursor(); - XmlCursor xc1 = m_xo.newCursor(); - String ns = "declare namespace po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; - String exp_ns = "xmlns:po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; - - m_xc.selectPath(ns + " $this//po:shipTo/po:city"); - while (m_xc.toNextSelection()) { - m_xc.setBookmark(_theBookmark); - xc1.selectPath(ns + "$this//po:billTo/po:city"); - while (xc1.toNextSelection()) { - m_xc.copyXml(xc1); - try { - assertTrue(xc1.toBookmark(_theBookmark)); - assertEquals("<po:city " + exp_ns + ">Mill Valley</po:city>", xc1.xmlText()); - xc1.toNextSibling(); - assertEquals("<po:state " + exp_ns + ">CA</po:state>", xc1.xmlText()); - } catch (Exception e) { + try (XmlCursor xc1 = m_xo.newCursor()) { + String ns = "declare namespace po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; + String exp_ns = "xmlns:po=\"http://xbean.test/xmlcursor/PurchaseOrder\""; + + m_xc.selectPath(ns + " $this//po:shipTo/po:city"); + while (m_xc.toNextSelection()) { + m_xc.setBookmark(_theBookmark); + xc1.selectPath(ns + "$this//po:billTo/po:city"); + while (xc1.toNextSelection()) { + m_xc.copyXml(xc1); + try { + assertTrue(xc1.toBookmark(_theBookmark)); + assertEquals("<po:city " + exp_ns + ">Mill Valley</po:city>", xc1.xmlText()); + xc1.toNextSibling(); + assertEquals("<po:state " + exp_ns + ">CA</po:state>", xc1.xmlText()); + } catch (Exception e) { + } } } } - xc1.dispose(); } @Test public void testToBookmarkPostMoveChars() throws Exception { m_xo = XmlObject.Factory.parse(Common.XML_FOO_DIGITS); m_xc = m_xo.newCursor(); - XmlCursor xc1 = m_xo.newCursor(); - toNextTokenOfType(m_xc, TokenType.TEXT); - xc1.toCursor(m_xc); - xc1.toNextChar(1); - xc1.setBookmark(_theBookmark); // set an Bookmark at the '1' - xc1.toNextChar(2); // move xc1 to the '3' - try { + try (XmlCursor xc1 = m_xo.newCursor()) { + toNextTokenOfType(m_xc, TokenType.TEXT); + xc1.toCursor(m_xc); + xc1.toNextChar(1); + xc1.setBookmark(_theBookmark); // set an Bookmark at the '1' + xc1.toNextChar(2); // move xc1 to the '3' + assertEquals("34", xc1.getTextValue()); assertEquals(2, m_xc.moveChars(2, xc1)); assertEquals("20134", m_xc.getTextValue()); assertEquals("34", xc1.getTextValue()); xc1.toBookmark(_theBookmark); assertEquals("134", xc1.getTextValue()); - } finally { - xc1.dispose(); } } @@ -220,14 +210,14 @@ public class ToBookmarkTest extends Basi m_xc = m_xo.newCursor(); // XmlCursor xc1 = m_xo.newCursor(); toNextTokenOfType(m_xc, TokenType.TEXT); - XmlCursor xc1 = m_xc.newCursor(); - //xc1.toCursor(m_xc); - xc1.toNextChar(1); - // set a Bookmark at the '1', text is 1234 - xc1.setBookmark(_theBookmark); - // move xc1 to the '3' , text post cursor is 34 - xc1.toNextChar(2); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + //xc1.toCursor(m_xc); + xc1.toNextChar(1); + // set a Bookmark at the '1', text is 1234 + xc1.setBookmark(_theBookmark); + // move xc1 to the '3' , text post cursor is 34 + xc1.toNextChar(2); + assertEquals("34", xc1.getTextValue()); //text at m_xc is 01234, should get 0123*01*4 assertEquals(2, m_xc.copyChars(2, xc1)); @@ -235,8 +225,6 @@ public class ToBookmarkTest extends Basi assertEquals("34", xc1.getTextValue()); xc1.toBookmark(_theBookmark); assertEquals("120134", xc1.getTextValue()); - } finally { - xc1.dispose(); } } @@ -244,32 +232,32 @@ public class ToBookmarkTest extends Basi public void testDumb() throws Exception { m_xo = XmlObject.Factory.parse("<foo>01234</foo>"); m_xc = m_xo.newCursor(); - toNextTokenOfType(m_xc, TokenType.TEXT); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toNextChar(2); - assertEquals(2, m_xc.copyChars(2, xc1)); + try (XmlCursor xc1 = toNextTokenOfTypeCursor(m_xc, TokenType.TEXT)) { + xc1.toNextChar(2); + assertEquals(2, m_xc.copyChars(2, xc1)); + } } @Test(expected = IllegalArgumentException.class) public void testDumbDelete() throws Exception { m_xo = XmlObject.Factory.parse("<foo>01234</foo>"); m_xc = m_xo.newCursor(); - toNextTokenOfType(m_xc, TokenType.TEXT); - XmlCursor xc1 = m_xc.newCursor(); - m_xc.toNextChar(2); - m_xc.setBookmark(_theBookmark); - m_xc.toStartDoc(); - //remove the text , bookmark goes bye bye too - xc1.removeXml(); - xc1.toCursor(m_xc); - //both at start of original doc - assertEquals(m_xc.currentTokenType(), - XmlCursor.TokenType.STARTDOC); - assertTrue(m_xc.isAtSamePositionAs(xc1)); - //move xc1 to outer space - xc1.toBookmark(_theBookmark); - assertTrue(!m_xc.isInSameDocument(xc1)); - assertTrue(!m_xc.isLeftOf(xc1)); + try (XmlCursor xc1 = toNextTokenOfTypeCursor(m_xc, TokenType.TEXT)) { + m_xc.toNextChar(2); + m_xc.setBookmark(_theBookmark); + m_xc.toStartDoc(); + //remove the text , bookmark goes bye bye too + xc1.removeXml(); + xc1.toCursor(m_xc); + //both at start of original doc + assertEquals(m_xc.currentTokenType(), + XmlCursor.TokenType.STARTDOC); + assertTrue(m_xc.isAtSamePositionAs(xc1)); + //move xc1 to outer space + xc1.toBookmark(_theBookmark); + assertTrue(!m_xc.isInSameDocument(xc1)); + assertTrue(!m_xc.isLeftOf(xc1)); + } } @Test @@ -282,26 +270,26 @@ public class ToBookmarkTest extends Basi m_xc.toNextToken(); m_xc.setBookmark(_theBookmark); // set annot. at 'text' - XmlCursor xc1 = m_xc.newCursor(); - xc1.toBookmark(_theBookmark); - SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); - assertEquals("value", sa.text); - m_xc.toStartDoc(); - xc1.toPrevToken(); - xc1.removeXml(); - xc1.toStartDoc(); - assertTrue(m_xc.isAtSamePositionAs(xc1)); - assertEquals("<foo/>", m_xc.xmlText()); - //test modified, the two cursors are not in the same - //tree anymore - assertTrue(xc1.toBookmark(_theBookmark)); - assertTrue(!xc1.isInSameDocument(m_xc)); -// assertTrue(!xc1.isLeftOf(m_xc)); - - sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); - assertNotNull(sa); - assertEquals(TokenType.TEXT, xc1.currentTokenType()); - xc1.dispose(); + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toBookmark(_theBookmark); + SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); + assertEquals("value", sa.text); + m_xc.toStartDoc(); + xc1.toPrevToken(); + xc1.removeXml(); + xc1.toStartDoc(); + assertTrue(m_xc.isAtSamePositionAs(xc1)); + assertEquals("<foo/>", m_xc.xmlText()); + //test modified, the two cursors are not in the same + //tree anymore + assertTrue(xc1.toBookmark(_theBookmark)); + assertTrue(!xc1.isInSameDocument(m_xc)); +// assertTrue(!xc1.isLeftOf(m_xc)); + + sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); + assertNotNull(sa); + assertEquals(TokenType.TEXT, xc1.currentTokenType()); + } } @Test @@ -311,21 +299,19 @@ public class ToBookmarkTest extends Basi toNextTokenOfType(m_xc, TokenType.ATTR); m_xc.setBookmark(_theBookmark); // set annot. at attribute m_xc.toStartDoc(); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toBookmark(_theBookmark); - SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); - assertEquals("value", sa.text); - xc1.toEndDoc(); + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toBookmark(_theBookmark); + SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); + assertEquals("value", sa.text); + xc1.toEndDoc(); + + toNextTokenOfType(m_xc, TokenType.START); + m_xc.removeAttribute(new QName("attr0")); + m_xc.toStartDoc(); - toNextTokenOfType(m_xc, TokenType.START); - m_xc.removeAttribute(new QName("attr0")); - m_xc.toStartDoc(); - try { assertEquals("<foo>text</foo>", m_xc.xmlText()); assertTrue(xc1.toBookmark(_theBookmark)); assertTrue(!xc1.isInSameDocument(m_xc)); - } finally { - xc1.dispose(); } } @@ -340,17 +326,15 @@ public class ToBookmarkTest extends Basi m_xc.toPrevChar(2); assertEquals(3, m_xc.removeChars(3)); // '2' should be deleted assertEquals("34", m_xc.getTextValue()); - XmlCursor xc1 = m_xc.newCursor(); - xc1.toEndDoc(); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toEndDoc(); + assertTrue(xc1.toBookmark(_theBookmark)); assertTrue(!xc1.isInSameDocument(m_xc)); SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); assertEquals("value", sa.text); assertEquals(TokenType.TEXT, xc1.currentTokenType()); - } finally { - xc1.dispose(); } } @@ -362,20 +346,18 @@ public class ToBookmarkTest extends Basi m_xc.toNextChar(2); assertEquals("xt", m_xc.getTextValue()); m_xc.setBookmark(_theBookmark); // set annot. in middle of TEXT - XmlCursor xc1 = m_xc.newCursor(); - xc1.toEndDoc(); - m_xc.toPrevToken(); - m_xc.setTextValue("changed"); - m_xc.toStartDoc(); - assertEquals("<foo>changed</foo>", m_xc.xmlText()); - try { + try (XmlCursor xc1 = m_xc.newCursor()) { + xc1.toEndDoc(); + m_xc.toPrevToken(); + m_xc.setTextValue("changed"); + m_xc.toStartDoc(); + assertEquals("<foo>changed</foo>", m_xc.xmlText()); + assertTrue(xc1.toBookmark(_theBookmark)); assertTrue(!xc1.isInSameDocument(m_xc)); SimpleBookmark sa = (SimpleBookmark) xc1.getBookmark(SimpleBookmark.class); assertEquals("value", sa.text); assertEquals(TokenType.TEXT, xc1.currentTokenType()); - } finally { - xc1.dispose(); } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/detailed/XmlLineNumberTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/detailed/XmlLineNumberTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/detailed/XmlLineNumberTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/detailed/XmlLineNumberTest.java Thu Jan 6 17:54:30 2022 @@ -47,20 +47,22 @@ public class XmlLineNumberTest extends C XmlOptions opt = new XmlOptions(); opt.setLoadLineNumbers(); XmlObject xo = XmlObject.Factory.parse(f, opt); - XmlCursor c = xo.newCursor(); - c.toFirstChild(); - assertEquals(XmlCursor.TokenType.START, c.currentTokenType()); - XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertNotNull(ln); - assertEquals(16, ln.getLine()); - c.toFirstChild(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(17, ln.getLine()); - c.toEndToken(); - assertEquals(XmlCursor.TokenType.END, c.currentTokenType()); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - // no bookmark at END - assertNull(ln); + + try (XmlCursor c = xo.newCursor()) { + c.toFirstChild(); + assertEquals(XmlCursor.TokenType.START, c.currentTokenType()); + XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertNotNull(ln); + assertEquals(16, ln.getLine()); + c.toFirstChild(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(17, ln.getLine()); + c.toEndToken(); + assertEquals(XmlCursor.TokenType.END, c.currentTokenType()); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + // no bookmark at END + assertNull(ln); + } } /** @@ -73,21 +75,23 @@ public class XmlLineNumberTest extends C XmlOptions opt = new XmlOptions(); opt.setLoadLineNumbersEndElement(); XmlObject xo = XmlObject.Factory.parse(f, opt); - XmlCursor c = xo.newCursor(); - c.toFirstChild(); - assertEquals(XmlCursor.TokenType.START, c.currentTokenType()); - XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertNotNull(ln); - assertEquals(16, ln.getLine()); - c.toFirstChild(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(17, ln.getLine()); - c.toEndToken(); - assertEquals(XmlCursor.TokenType.END, c.currentTokenType()); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - // there is a bookmark at END - assertNotNull(ln); - assertEquals(34, ln.getLine()); + + try (XmlCursor c = xo.newCursor()) { + c.toFirstChild(); + assertEquals(XmlCursor.TokenType.START, c.currentTokenType()); + XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertNotNull(ln); + assertEquals(16, ln.getLine()); + c.toFirstChild(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(17, ln.getLine()); + c.toEndToken(); + assertEquals(XmlCursor.TokenType.END, c.currentTokenType()); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + // there is a bookmark at END + assertNotNull(ln); + assertEquals(34, ln.getLine()); + } } /** @@ -98,23 +102,25 @@ public class XmlLineNumberTest extends C public void testLineNumber1() throws Exception { XmlOptions opt = new XmlOptions().setLoadLineNumbers(); XmlObject xo = XmlObject.Factory.parse(xml, opt); - XmlCursor c = xo.newCursor(); - c.toFirstContentToken(); - c.toFirstChild(); - XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(1, ln.getLine()); - assertEquals(50, ln.getColumn()); - // offset is not implemented - assertEquals(-1, ln.getOffset()); - c.toFirstChild(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(2, ln.getLine()); - assertEquals(10, ln.getColumn()); - c.toFirstChild(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(3, ln.getLine()); - // finishes after reading after <first_name> + 2xtabs - assertEquals(14, ln.getColumn()); + + try (XmlCursor c = xo.newCursor()) { + c.toFirstContentToken(); + c.toFirstChild(); + XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(1, ln.getLine()); + assertEquals(50, ln.getColumn()); + // offset is not implemented + assertEquals(-1, ln.getOffset()); + c.toFirstChild(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(2, ln.getLine()); + assertEquals(10, ln.getColumn()); + c.toFirstChild(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(3, ln.getLine()); + // finishes after reading after <first_name> + 2xtabs + assertEquals(14, ln.getColumn()); + } } /** @@ -127,28 +133,30 @@ public class XmlLineNumberTest extends C XmlOptions opt = new XmlOptions(); opt.setLoadLineNumbersEndElement(); XmlObject xo = XmlObject.Factory.parse(f, opt); - XmlCursor c = xo.newCursor(); - c.toFirstContentToken(); - c.toFirstChild(); - XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(17, ln.getLine()); - assertEquals(15, ln.getColumn()); - assertEquals(-1, ln.getOffset()); - c.toFirstChild(); - c.push(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(18, ln.getLine()); - assertEquals(13, ln.getColumn()); - c.toEndToken(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(18, ln.getLine()); - assertEquals(33, ln.getColumn()); - c.pop(); - c.toNextSibling(); //address - c.toEndToken(); - ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); - assertEquals(24, ln.getLine()); - assertEquals(17, ln.getColumn()); - assertEquals(-1, ln.getOffset()); + + try (XmlCursor c = xo.newCursor()) { + c.toFirstContentToken(); + c.toFirstChild(); + XmlLineNumber ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(17, ln.getLine()); + assertEquals(15, ln.getColumn()); + assertEquals(-1, ln.getOffset()); + c.toFirstChild(); + c.push(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(18, ln.getLine()); + assertEquals(13, ln.getColumn()); + c.toEndToken(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(18, ln.getLine()); + assertEquals(33, ln.getColumn()); + c.pop(); + c.toNextSibling(); //address + c.toEndToken(); + ln = (XmlLineNumber) c.getBookmark(XmlLineNumber.class); + assertEquals(24, ln.getLine()); + assertEquals(17, ln.getColumn()); + assertEquals(-1, ln.getOffset()); + } } } Modified: xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/CharactersTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/CharactersTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/CharactersTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/CharactersTest.java Thu Jan 6 17:54:30 2022 @@ -198,21 +198,22 @@ public abstract class CharactersTest { @Before public void setUp() throws Exception { - XmlCursor cur = XmlObject.Factory.newInstance().newCursor(); - cur.toNextToken(); + try (XmlCursor cur = XmlObject.Factory.newInstance().newCursor()) { + cur.toNextToken(); - // cur.insertAttributeWithValue(new QName("foo.org", "at0", "pre"), "val0"); - cur.insertComment(" some comment "); - cur.beginElement(new QName("foo.org", "foo", "")); - cur.insertAttribute("localName"); - cur.insertChars("some text"); - cur.insertElement("foo2"); - cur.toNextToken(); //close foo elt - cur.insertChars("\t"); + // cur.insertAttributeWithValue(new QName("foo.org", "at0", "pre"), "val0"); + cur.insertComment(" some comment "); + cur.beginElement(new QName("foo.org", "foo", "")); + cur.insertAttribute("localName"); + cur.insertChars("some text"); + cur.insertElement("foo2"); + cur.toNextToken(); //close foo elt + cur.insertChars("\t"); - cur.toStartDoc(); - m_stream = getStream(cur); + cur.toStartDoc(); + m_stream = getStream(cur); + } } @After Modified: xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/GeneralMethodsTest.java URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/GeneralMethodsTest.java?rev=1896764&r1=1896763&r2=1896764&view=diff ============================================================================== --- xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/GeneralMethodsTest.java (original) +++ xmlbeans/trunk/src/test/java/xmlcursor/jsr173/common/GeneralMethodsTest.java Thu Jan 6 17:54:30 2022 @@ -102,27 +102,28 @@ public abstract class GeneralMethodsTest @Before public void setUp() throws Exception { - XmlCursor cur = XmlObject.Factory.newInstance().newCursor(); - cur.toNextToken(); + try (XmlCursor cur = XmlObject.Factory.newInstance().newCursor()) { + cur.toNextToken(); - cur.insertAttributeWithValue(new QName("foo.org", "at0", "pre"), - "val0"); - cur.insertAttributeWithValue(new QName("", "at1", "pre"), "val1"); - cur.insertNamespace("pre", "foons.bar.org"); - cur.beginElement(new QName("foo.org", "foo", "")); - cur.insertAttribute("localName"); - cur.insertChars("some text"); - cur.toNextToken(); - cur.toNextToken();//end elt - cur.insertProcInst("xml-stylesheet", "http://foobar"); - - cur.toStartDoc(); - XmlDocumentProperties opt = cur.documentProperties(); - - m_stream1 = getStream(cur); - - opt.setEncoding("utf-8"); - m_stream = getStream(cur); + cur.insertAttributeWithValue(new QName("foo.org", "at0", "pre"), + "val0"); + cur.insertAttributeWithValue(new QName("", "at1", "pre"), "val1"); + cur.insertNamespace("pre", "foons.bar.org"); + cur.beginElement(new QName("foo.org", "foo", "")); + cur.insertAttribute("localName"); + cur.insertChars("some text"); + cur.toNextToken(); + cur.toNextToken();//end elt + cur.insertProcInst("xml-stylesheet", "http://foobar"); + + cur.toStartDoc(); + XmlDocumentProperties opt = cur.documentProperties(); + + m_stream1 = getStream(cur); + + opt.setEncoding("utf-8"); + m_stream = getStream(cur); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
