| ///* |
| // * Licensed to the Apache Software Foundation (ASF) under one or more |
| // * contributor license agreements. See the NOTICE file distributed with |
| // * this work for additional information regarding copyright ownership. |
| // * The ASF licenses this file to You under the Apache License, Version 2.0 |
| // * (the "License"); you may not use this file except in compliance with |
| // * the License. You may obtain a copy of the License at |
| // * |
| // * http://www.apache.org/licenses/LICENSE-2.0 |
| // * |
| // * Unless required by applicable law or agreed to in writing, software |
| // * distributed under the License is distributed on an "AS IS" BASIS, |
| // * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // * See the License for the specific language governing permissions and |
| // * limitations under the License. |
| // */ |
| // |
| //package org.apache.log4j.db; |
| // |
| //import org.apache.log4j.plugins.Pauseable; |
| //import org.apache.log4j.plugins.Receiver; |
| //import org.apache.log4j.scheduler.Scheduler; |
| //import org.apache.log4j.spi.LoggerRepositoryEx; |
| //import org.apache.log4j.xml.DOMConfigurator; |
| //import org.apache.log4j.xml.UnrecognizedElementHandler; |
| //import org.w3c.dom.Element; |
| // |
| //import java.util.Properties; |
| // |
| ///** |
| // * @author Scott Deboy <sdeboy@apache.org> |
| // * @author Ceki Gülcü |
| // */ |
| //public class DBReceiver extends Receiver implements Pauseable, UnrecognizedElementHandler { |
| // /** |
| // * By default we refresh data every 1000 milliseconds. |
| // * |
| // * @see #setRefreshMillis |
| // */ |
| // static int DEFAULT_REFRESH_MILLIS = 1000; |
| // ConnectionSource connectionSource; |
| // int refreshMillis = DEFAULT_REFRESH_MILLIS; |
| // DBReceiverJob receiverJob; |
| // boolean paused = false; |
| // |
| // public void activateOptions() { |
| // |
| // if (connectionSource == null) { |
| // throw new IllegalStateException( |
| // "DBAppender cannot function without a connection source"); |
| // } |
| // |
| // receiverJob = new DBReceiverJob(this); |
| // receiverJob.setLoggerRepository(repository); |
| // |
| // if (this.repository == null) { |
| // throw new IllegalStateException( |
| // "DBAppender cannot function without a reference to its owning repository"); |
| // } |
| // |
| // if (repository instanceof LoggerRepositoryEx) { |
| // Scheduler scheduler = ((LoggerRepositoryEx) repository).getScheduler(); |
| // |
| // scheduler.schedule( |
| // receiverJob, System.currentTimeMillis() + 500, refreshMillis); |
| // } |
| // |
| // } |
| // |
| // public void setRefreshMillis(int refreshMillis) { |
| // this.refreshMillis = refreshMillis; |
| // } |
| // |
| // public int getRefreshMillis() { |
| // return refreshMillis; |
| // } |
| // |
| // |
| // /** |
| // * @return Returns the connectionSource. |
| // */ |
| // public ConnectionSource getConnectionSource() { |
| // return connectionSource; |
| // } |
| // |
| // |
| // /** |
| // * @param connectionSource The connectionSource to set. |
| // */ |
| // public void setConnectionSource(ConnectionSource connectionSource) { |
| // this.connectionSource = connectionSource; |
| // } |
| // |
| // |
| // /* (non-Javadoc) |
| // * @see org.apache.log4j.plugins.Plugin#shutdown() |
| // */ |
| // public void shutdown() { |
| // getLogger().info("removing receiverJob from the Scheduler."); |
| // |
| // if (this.repository instanceof LoggerRepositoryEx) { |
| // Scheduler scheduler = ((LoggerRepositoryEx) repository).getScheduler(); |
| // scheduler.delete(receiverJob); |
| // } |
| // } |
| // |
| // |
| // /* (non-Javadoc) |
| // * @see org.apache.log4j.plugins.Pauseable#setPaused(boolean) |
| // */ |
| // public void setPaused(boolean paused) { |
| // this.paused = paused; |
| // } |
| // |
| // /* (non-Javadoc) |
| // * @see org.apache.log4j.plugins.Pauseable#isPaused() |
| // */ |
| // public boolean isPaused() { |
| // return paused; |
| // } |
| // |
| // /** |
| // * {@inheritDoc} |
| // */ |
| // public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception { |
| // if ("connectionSource".equals(element.getNodeName())) { |
| // Object instance = |
| // DOMConfigurator.parseElement(element, props, ConnectionSource.class); |
| // if (instance instanceof ConnectionSource) { |
| // ConnectionSource source = (ConnectionSource) instance; |
| // source.activateOptions(); |
| // setConnectionSource(source); |
| // } |
| // return true; |
| // } |
| // return false; |
| // } |
| // |
| //} |