use of org.xmldb.api.base.XMLDBException in project exist by eXist-db.
the class DtdEntityTest method loadWithEntities.
@Test
public void loadWithEntities() throws XMLDBException {
final String input = "<a>first empty: ∅ then trade: ™ </a>";
Collection col = null;
try {
col = existEmbeddedServer.createCollection(existEmbeddedServer.getRoot(), "entity");
ExistXmldbEmbeddedServer.storeResource(col, "docname.xml", input.getBytes());
// should throw XMLDBException
ExistXmldbEmbeddedServer.getXMLResource(col, "docname.xml");
} catch (final XMLDBException e) {
assertTrue(e.getMessage().contains("The entity \"empty\" was referenced, but not declared"));
return;
} finally {
if (col != null) {
col.close();
}
}
fail("Should have thrown XMLDBException");
}
use of org.xmldb.api.base.XMLDBException in project exist by eXist-db.
the class TestCase method getResource.
public Resource getResource(Object r) throws XMLDBException {
LocalCollection collection = null;
Subject user = null;
LocalXMLResource res = null;
final BrokerPool pool = existEmbeddedServer.getBrokerPool();
if (r instanceof NodeProxy) {
NodeProxy p = (NodeProxy) r;
res = new LocalXMLResource(user, pool, collection, p);
} else if (r instanceof Node) {
res = new LocalXMLResource(user, pool, collection, XmldbURI.EMPTY_URI);
res.setContentAsDOM((Node) r);
} else if (r instanceof AtomicValue) {
res = new LocalXMLResource(user, pool, collection, XmldbURI.EMPTY_URI);
res.setContent(r);
} else if (r instanceof LocalXMLResource)
res = (LocalXMLResource) r;
else
throw new XMLDBException(ErrorCodes.VENDOR_ERROR, "unknown object " + r.getClass());
try {
Field field = res.getClass().getDeclaredField("outputProperties");
field.setAccessible(true);
field.set(res, new Properties(defaultProperties));
} catch (Exception e) {
}
return res;
}
use of org.xmldb.api.base.XMLDBException in project exist by eXist-db.
the class CollectionConfigurationTest method rangeIndex1.
@Test
@Ignore
public void rangeIndex1() throws XMLDBException {
Collection testCollection = DatabaseManager.getCollection(XmldbURI.LOCAL_DB + "/" + TEST_COLLECTION);
// Configure collection automatically
IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(CONFIG2);
// ... then index document
XMLResource doc = (XMLResource) testCollection.createResource(TestConstants.TEST_XML_URI.toString(), "XMLResource");
doc.setContent(DOCUMENT_CONTENT2);
testCollection.storeResource(doc);
XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
ResourceSet result = service.query("util:index-key-occurrences(/test/c, xs:dateTime(\"2002-12-07T12:20:46.275+01:00\") )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/c)");
assertEquals("xs:dateTime", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/d, xs:double(1) )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/d)");
assertEquals("xs:double", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/e, xs:float(1) )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/e)");
assertEquals("xs:float", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/f, true())");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/f)");
assertEquals("xs:boolean", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/g, xs:integer(1))");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/g)");
assertEquals("xs:integer", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/h, '1')");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/h)");
assertEquals("xs:string", result.getResource(0).getContent());
result = service.query("/test/c[(# exist:force-index-use #) { . = xs:dateTime(\"2002-12-07T12:20:46.275+01:00\") }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { c = xs:dateTime(\"2002-12-07T12:20:46.275+01:00\") }]");
assertEquals(1, result.getSize());
result = service.query("/test/d[(# exist:force-index-use #) { . = xs:double(1) }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { d = xs:double(1) }]");
assertEquals(1, result.getSize());
result = service.query("/test/e[(# exist:force-index-use #) { . = xs:float(1) }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { e = xs:float(1) }]");
assertEquals(1, result.getSize());
result = service.query("/test/f[(# exist:force-index-use #) { . = true() }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { f = true() }]");
assertEquals(1, result.getSize());
result = service.query("/test/g[(# exist:force-index-use #) { . = 1 }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { g = 1 }]");
assertEquals(1, result.getSize());
result = service.query("/test/h[(# exist:force-index-use #) { . = '1' }]");
assertEquals(1, result.getSize());
result = service.query("/test[(# exist:force-index-use #) { h = '1' }]");
assertEquals(1, result.getSize());
boolean exceptionCaught = false;
try {
result = service.query("/test[(# exist:force-index-use #) { contains(d, '1') }]");
assertEquals(0, result.getSize());
} catch (XMLDBException e) {
exceptionCaught = true;
}
assertTrue("contains() should not use index of type xs:double", exceptionCaught);
exceptionCaught = false;
try {
result = service.query("/test[(# exist:force-index-use #) { matches(d, '1') }]");
assertEquals(0, result.getSize());
} catch (XMLDBException e) {
exceptionCaught = true;
}
assertTrue("matches() should not use index of type xs:double", exceptionCaught);
result = service.query("/test[matches(h, '1')]");
assertEquals(1, result.getSize());
}
use of org.xmldb.api.base.XMLDBException in project exist by eXist-db.
the class CollectionConfigurationTest method rangeIndex2.
@Test
@Ignore
public void rangeIndex2() throws XMLDBException {
Collection testCollection = DatabaseManager.getCollection(XmldbURI.LOCAL_DB + "/" + TEST_COLLECTION);
// Configure collection automatically
IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(QNAME_CONFIG2);
// ... then index document
XMLResource doc = (XMLResource) testCollection.createResource(TestConstants.TEST_XML_URI.toString(), "XMLResource");
doc.setContent(DOCUMENT_CONTENT2);
testCollection.storeResource(doc);
XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
ResourceSet result = service.query("util:index-key-occurrences(/test/c, xs:dateTime(\"2002-12-07T12:20:46.275+01:00\") )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/c)");
assertEquals("xs:dateTime", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/d, xs:double(1) )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/d)");
assertEquals("xs:double", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/e, xs:float(1) )");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/e)");
assertEquals("xs:float", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/f, true())");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/f)");
assertEquals("xs:boolean", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/g, xs:integer(1))");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/g)");
assertEquals("xs:integer", result.getResource(0).getContent());
result = service.query("util:index-key-occurrences(/test/h, '1')");
assertEquals(1, result.getSize());
assertEquals("1", result.getResource(0).getContent());
result = service.query("util:index-type(/test/h)");
assertEquals("xs:string", result.getResource(0).getContent());
result = service.query("(# exist:force-index-use #) { /test/c[. = xs:dateTime(\"2002-12-07T12:20:46.275+01:00\")] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[c = xs:dateTime(\"2002-12-07T12:20:46.275+01:00\")] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test/d[. = xs:double(1)] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[d = xs:double(1)] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test/e[. = xs:float(1)] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[e = xs:float(1)] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test/f[. = true()] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[f = true()] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test/g[. = 1] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[g = 1] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test/h[. = '1'] }");
assertEquals(1, result.getSize());
result = service.query("(# exist:force-index-use #) { /test[h = '1'] }");
assertEquals(1, result.getSize());
boolean exceptionCaught = false;
try {
result = service.query("(# exist:force-index-use #) { /test[contains(d, '1')] }");
assertEquals(0, result.getSize());
} catch (XMLDBException e) {
exceptionCaught = true;
}
assertTrue("contains() should not use index of type xs:double", exceptionCaught);
exceptionCaught = false;
try {
result = service.query("(# exist:force-index-use #) { /test[matches(d, '1')] }");
assertEquals(0, result.getSize());
} catch (XMLDBException e) {
exceptionCaught = true;
}
assertTrue("matches() should not use index of type xs:double", exceptionCaught);
result = service.query("/test[matches(h, '1')]");
assertEquals(1, result.getSize());
}
use of org.xmldb.api.base.XMLDBException in project exist by eXist-db.
the class BackupSystemTask method execute.
@Override
public void execute(final DBBroker broker, final Txn transaction) throws EXistException {
// see if old zip files need to be purged
if (zipFilesMax > 0) {
try {
purgeZipFiles();
} catch (final IOException ioe) {
throw new EXistException("Unable to purge zip files", ioe);
}
}
final String dateTime = creationDateFormat.format(Calendar.getInstance().getTime());
final Path dest = directory.resolve(prefix + dateTime + suffix);
final Backup backup = new Backup(user, password, dest, collection, null, deduplicateBlobs);
try {
backup.backup(false, null);
} catch (final XMLDBException | SAXException | IOException e) {
LOG.error(e.getMessage(), e);
throw new EXistException(e.getMessage(), e);
}
}
Aggregations