KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > avalon > cornerstone > blocks > masterstore > xml > CDIXMLFilePersistentObjectRepository


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14  * implied.
15  *
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */

19
20 package org.apache.avalon.cornerstone.blocks.masterstore.xml;
21
22 import org.apache.avalon.cornerstone.blocks.masterstore.AbstractFileRepository;
23 import org.apache.avalon.cornerstone.blocks.masterstore.ExtensionFileFilter;
24 import org.apache.avalon.cornerstone.blocks.masterstore.FileRepositoryMonitor;
25 import org.apache.avalon.cornerstone.blocks.masterstore.RepositoryManager;
26 import org.apache.avalon.cornerstone.blocks.masterstore.ObjectRespositoryConfig;
27 import org.apache.avalon.cornerstone.services.store.ObjectRepository;
28
29 import java.io.File JavaDoc;
30 import java.io.IOException JavaDoc;
31
32 /**
33  * This is a simple implementation of persistent object store using
34  * XML serialization from JDK 1.4 to a file system.
35  *
36  * This implementation of ObjectRepository comes with the following warning:
37  * "XMLEncoder provides suitable persistence delegates
38  * for all public subclasses of java.awt.Component in J2SE and the types of
39  * all of their properties, recursively. All other classes will be handled
40  * with the default persistence delegate which assumes the class follows
41  * the beans conventions" (snipped from the BugParade)
42  *
43  * Basically, don't use this block for anything other than Swing component
44  * serialization. Sun will have to do a lot of work writing a
45  * "PersistenceDelegate" to handle other JDK types let alone custom classes.
46  *
47  * @author <a HREF="mailto:paul_hammant@yahoo.com">Paul Hammant</a>
48  * @author <a HREF="mailto:stefano@apache.org">Stefano Mazzocchi</a>
49  * @author <a HREF="mailto:fede@apache.org">Federico Barbieri</a>
50  */

51 public class CDIXMLFilePersistentObjectRepository
52     extends AbstractXMLFilePersistentObjectRepository
53     implements ObjectRepository
54 {
55
56     public CDIXMLFilePersistentObjectRepository(FileRepositoryMonitor monitor, ObjectRespositoryConfig config) throws IOException JavaDoc {
57         m_baseDirectory = config.getBaseDirectory();
58         this.monitor = monitor;
59
60         setDestination( config.getURL() );
61
62         monitor.initialized(CDIXMLFilePersistentObjectRepository.class);
63
64         m_name = RepositoryManager.getName();
65         m_extension = "." + m_name + getExtensionDecorator();
66         m_filter = new ExtensionFileFilter( m_extension );
67
68         final File JavaDoc directory = new File JavaDoc( m_path );
69         directory.mkdirs();
70
71         monitor.pathOpened(CDIXMLFilePersistentObjectRepository.class, m_path);
72
73     }
74
75     protected void initializeChild(AbstractFileRepository child) throws Exception JavaDoc {
76     }
77
78 }
79
Popular Tags