/* * Created on 26.10.2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ import java.io.File; import java.io.FileInputStream; import org.apache.xindice.client.xmldb.services.CollectionManagementServiceImpl; import org.apache.xindice.xml.dom.DOMParser; import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.base.Database; import org.xmldb.api.base.ResourceIterator; import org.xmldb.api.base.ResourceSet; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.BinaryResource; import org.xmldb.api.modules.XMLResource; import org.xmldb.api.modules.XPathQueryService; /** * @author Mig-O * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */ public class EmbeddedXindiceTests { static Collection rootCollection = null; static Collection newCollection = null; static Database database; static CollectionManagementServiceImpl colMgmtService; public static void makeQuery() throws Exception { XPathQueryService service = (XPathQueryService) newCollection.getService("XPathQueryService", "1.0"); ResourceSet resultSet = service.query("/sdpConcept"); ResourceIterator results = resultSet.getIterator(); int collectionSize = newCollection.getResourceCount(); int resultCount = 0; while( results.hasMoreResources() ) { results.nextResource(); resultCount++; } System.out.println("Query returned "+resultCount+" out of "+collectionSize+" documents."); } public static void insertDocuments() throws Exception { String moduleXML = readFileToString("C:\\Projekte\\InPULSE\\InPULSE-CVS\\AuthorModuleDef\\Observer.xml"); byte[] imageBinary = readFileToByteArray("C:\\Projekte\\InPULSE\\InPULSE-CVS\\AuthorModuleDef\\pics\\miezen.jpg"); byte[] umlXmiBinary = readFileToByteArray("C:\\Projekte\\InPULSE\\InPULSE-CVS\\AuthorModuleDef\\xmi\\OAdapter.xml"); XMLResource document1 = (XMLResource) newCollection.createResource(null, "XMLResource"); document1.setContent(moduleXML); newCollection.storeResource(document1); System.out.println("Document AuthorModuleDefObserver.xml inserted as " + document1.getId()); BinaryResource document2 = (BinaryResource) newCollection.createResource(null, "BinaryResource"); document2.setContent(imageBinary); newCollection.storeResource(document2); System.out.println("Document miezen.jpg inserted as " + document2.getId()); BinaryResource document3 = (BinaryResource) newCollection.createResource(null, "BinaryResource"); document3.setContent(umlXmiBinary); newCollection.storeResource(document3); System.out.println("Document OAdapter.xml inserted as " + document3.getId()); } public static void main(String args[]) { System.out.println("EMBEDDED DB TEST V0.1"); try { System.out.println("----- INITIALISING DB --- BEGIN -----"); openDatabase(); System.out.println("----- INITIALISING DB ---- END ------"); System.out.println("--- INSERTING DOCUMENTS - BEGIN -----"); insertDocuments(); System.out.println("--- INSERTING DOCUMENTS -- END ------"); System.out.println("------- QUERYING DB ----- BEGIN -----"); makeQuery(); System.out.println("------- QUERYING DB ------ END ------"); } catch (XMLDBException e) { System.out.println("Exception: " + e.errorCode); e.printStackTrace(); } catch (Exception e) { System.out.println("Exception: " + e); e.printStackTrace(); } } /* -------------- FINISHED ----------------- */ public static void openDatabase() throws Exception { rootCollection = null; String driver = "org.apache.xindice.client.xmldb.DatabaseImpl"; Class c = Class.forName(driver); database = (Database) c.newInstance(); database.setProperty("db-home","./Xindice Data for Embedded Database Tests"); database.setProperty("use-metadata","on"); database.setProperty("configuration","./server.xml"); DatabaseManager.registerDatabase(database); String uri = "xmldb:xindice-embed:///db/"; rootCollection = DatabaseManager.getCollection(uri); String collectionName = "emilea-stat-ModuleFrames"; CollectionManagementServiceImpl service = (CollectionManagementServiceImpl) rootCollection .getService("CollectionManager", "1.0"); // Build up the Collection XML configuration. String collectionConfig = "" + " " + ""; try { newCollection = service.createCollection(collectionName, DOMParser .toDocument(collectionConfig)); System.out.println("Collection " + collectionName + " created."); } catch( XMLDBException e ) { System.out.println("Konnte Collection nicht anlegen: "+e); newCollection = DatabaseManager.getCollection("xmldb:xindice-embed:///db/emilea-stat-ModuleFrames"); System.out.println("Using existing collection " + collectionName + "."); } } public static String readFileToString(String fileName) throws Exception { return new String(readFileToByteArray(fileName)); } public static byte[] readFileToByteArray(String fileName) throws Exception { File file = new File(fileName); FileInputStream insr = new FileInputStream(file); byte[] fileBuffer = new byte[(int) file.length()]; insr.read(fileBuffer); insr.close(); return fileBuffer; } }