01: /*
02: * <copyright>
03: *
04: * Copyright 1997-2004 BBNT Solutions, LLC
05: * under sponsorship of the Defense Advanced Research Projects
06: * Agency (DARPA).
07: *
08: * You can redistribute this software and/or modify it under the
09: * terms of the Cougaar Open Source License as published on the
10: * Cougaar Open Source Website (www.cougaar.org).
11: *
12: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
13: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23: *
24: * </copyright>
25: */
26:
27: package org.cougaar.core.persist;
28:
29: import java.io.File;
30: import java.io.FileNotFoundException;
31: import java.io.InputStream;
32: import java.io.OutputStream;
33:
34: /**
35: * This {@link PersistencePlugin} saves and restores blackboard objects
36: * in files.
37: * <p>
38: * There is one optional parameter naming the persistence
39: * root directory. If the parameter is omitted, the persistence root
40: * is specified by system properties.
41: *
42: * @property org.cougaar.install.path
43: * Used by FilePersistence as the
44: * parent directory for persistence snapshots when there is no
45: * directory specified in configuration parameters and
46: * org.cougaar.core.persistence.path is a relative pathname. This
47: * property is not used if the plugin is configured with a specific
48: * parameter specifying the location of the persistence root.
49: *
50: * @property org.cougaar.core.persistence.path
51: * Specifies the directory
52: * in which persistence snapshots should be saved. If this is a
53: * relative path, it the base will be the value or
54: * org.cougaar.install.path. This property is not used if the plugin
55: * is configured with a specific parameter specifying the location of
56: * the persistence root.
57: */
58: public class BufferedFilePersistence extends FilePersistenceBase
59: implements PersistencePlugin {
60: BufferedFileSystem bfs;
61:
62: public void init(PersistencePluginSupport pps, String name,
63: String[] params, boolean deleteOldPersistence)
64: throws PersistenceException {
65: super .init(pps, name, params, deleteOldPersistence);
66: bfs = new BufferedFileSystem(pps.getLogger());
67: }
68:
69: protected OutputStream openFileOutputStream(File file)
70: throws FileNotFoundException {
71: return bfs.openOutputStream(file);
72: }
73:
74: protected InputStream openFileInputStream(File file)
75: throws FileNotFoundException {
76: return bfs.openInputStream(file);
77: }
78:
79: protected boolean rename(File from, File to) {
80: return bfs.rename(from, to);
81: }
82: }
|