/******************************************************************************* * Copyright (C) 2007 db4objects Inc. http://www.db4o.com * * All rights reserved. This program and the accompanying materials * are made available under the terms of the db4o Opensource Compatibility License (dOCL) * which accompanies this distribution, and is available at * http://www.db4o.com/about/company/legalpolicies/docl.aspx *******************************************************************************/ package com.db4o.osgi; import org.osgi.framework.*; import com.db4o.*; import com.db4o.config.*; import com.db4o.ext.*; import com.db4o.reflect.jdk.*; class Db4oServiceImpl implements Db4oService { private final Bundle _bundle; public Db4oServiceImpl(Bundle bundle) { _bundle = bundle; } public Configuration newConfiguration() { Configuration config = Db4o.newConfiguration(); configureReflector(config); return config; } public ObjectContainer openClient(String hostName, int port, String user, String password) throws Db4oException { return openClient(Db4o.cloneConfiguration(), hostName, port, user, password); } public ObjectContainer openClient(Configuration config, String hostName, int port, String user, String password) throws Db4oException { return Db4o.openClient(config(config), hostName, port, user, password); } public ObjectContainer openFile(String databaseFileName) throws Db4oException { return openFile(Db4o.cloneConfiguration(), databaseFileName); } public ObjectContainer openFile(Configuration config, String databaseFileName) throws Db4oException { return Db4o.openFile(config(config), databaseFileName); } public ObjectServer openServer(String databaseFileName, int port) throws Db4oException { return openServer(Db4o.cloneConfiguration(), databaseFileName, port); } public ObjectServer openServer(Configuration config, String databaseFileName, int port) throws Db4oException { return Db4o.openServer(config(config), databaseFileName, port); } private Configuration config(Configuration config) { if (config == null) { config = Db4o.newConfiguration(); } configureReflector(config); return config; } private void configureReflector(Configuration config) { config .reflectWith(new JdkReflector(new OSGiLoader(_bundle, new ClassLoaderJdkLoader(getClass().getClassLoader())))); } }