001 /**
002 *
003 * Copyright 2006 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.geronimo.transaction.log;
018
019 import java.io.IOException;
020
021 import org.apache.geronimo.gbean.GBeanInfo;
022 import org.apache.geronimo.gbean.GBeanInfoBuilder;
023 import org.apache.geronimo.gbean.GBeanLifecycle;
024 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
025 import org.apache.geronimo.system.serverinfo.ServerInfo;
026 import org.apache.geronimo.transaction.manager.TransactionLog;
027 import org.apache.geronimo.transaction.manager.XidFactory;
028 import org.objectweb.howl.log.LogConfigurationException;
029
030 /**
031 * @version $Rev: 472646 $ $Date: 2006-11-08 13:11:28 -0800 (Wed, 08 Nov 2006) $
032 */
033 public class HOWLLogGBean extends HOWLLog implements GBeanLifecycle {
034 public HOWLLogGBean(String bufferClassName, int bufferSize, boolean checksumEnabled, boolean adler32Checksum, int flushSleepTimeMilliseconds, String logFileDir, String logFileExt, String logFileName, int maxBlocksPerFile, int maxBuffers, int maxLogFiles, int minBuffers, int threadsWaitingForceThreshold, XidFactory xidFactory, ServerInfo serverInfo) throws IOException, LogConfigurationException {
035 super(bufferClassName, bufferSize, checksumEnabled, adler32Checksum, flushSleepTimeMilliseconds, logFileDir, logFileExt, logFileName, maxBlocksPerFile, maxBuffers, maxLogFiles, minBuffers, threadsWaitingForceThreshold, xidFactory, serverInfo.resolveServer("."));
036 }
037
038 public static final GBeanInfo GBEAN_INFO;
039
040 static {
041 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(HOWLLogGBean.class, NameFactory.TRANSACTION_LOG);
042 infoFactory.addAttribute("bufferClassName", String.class, true);
043 infoFactory.addAttribute("bufferSizeKBytes", Integer.TYPE, true);
044 infoFactory.addAttribute("checksumEnabled", Boolean.TYPE, true);
045 infoFactory.addAttribute("adler32Checksum", Boolean.TYPE, true);
046 infoFactory.addAttribute("flushSleepTimeMilliseconds", Integer.TYPE, true);
047 infoFactory.addAttribute("logFileDir", String.class, true);
048 infoFactory.addAttribute("logFileExt", String.class, true);
049 infoFactory.addAttribute("logFileName", String.class, true);
050 infoFactory.addAttribute("maxBlocksPerFile", Integer.TYPE, true);
051 infoFactory.addAttribute("maxBuffers", Integer.TYPE, true);
052 infoFactory.addAttribute("maxLogFiles", Integer.TYPE, true);
053 infoFactory.addAttribute("minBuffers", Integer.TYPE, true);
054 infoFactory.addAttribute("threadsWaitingForceThreshold", Integer.TYPE, true);
055
056 infoFactory.addReference("XidFactory", XidFactory.class, NameFactory.XID_FACTORY);
057 infoFactory.addReference("ServerInfo", ServerInfo.class, NameFactory.GERONIMO_SERVICE);
058
059 infoFactory.addInterface(TransactionLog.class);
060
061 infoFactory.setConstructor(new String[]{
062 "bufferClassName",
063 "bufferSizeKBytes",
064 "checksumEnabled",
065 "adler32ChecksumEnabled",
066 "flushSleepTimeMilliseconds",
067 "logFileDir",
068 "logFileExt",
069 "logFileName",
070 "maxBlocksPerFile",
071 "maxBuffers",
072 "maxLogFiles",
073 "minBuffers",
074 "threadsWaitingForceThreshold",
075 "XidFactory",
076 "ServerInfo"});
077 GBEAN_INFO = infoFactory.getBeanInfo();
078 }
079
080 public static GBeanInfo getGBeanInfo() {
081 return HOWLLogGBean.GBEAN_INFO;
082 }
083
084 }