/******************************************************************************* * Copyright 2011 André Rouél * * Licensed 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 net.sf.jacclog.service.repository.commands.internal; import net.sf.jacclog.api.LogEntryService; import net.sf.jacclog.api.domain.ReadableLogEntry; import net.sf.jacclog.api.domain.http.ReadableHttpRequestHeaderField; import net.sf.jacclog.api.domain.http.ReadableHttpResponseHeaderField; import org.apache.felix.gogo.commands.Command; import org.apache.karaf.shell.console.OsgiCommandSupport; /** * Command to show statistics of the recently finished imports. * * @author André Rouél */ @Command(scope = "jacclog", name = "repo-stats", description = "Shows statistics of the log entry repository.") @SuppressWarnings("PMD.SystemPrintln") public class RepositoryStatsShellCommand extends OsgiCommandSupport { private LogEntryService<ReadableLogEntry<ReadableHttpRequestHeaderField, ReadableHttpResponseHeaderField>> service; @Override protected Object doExecute() throws Exception { if (service != null) { renderEntries(); } else { log.warn("No log entry repository available."); } return null; } public LogEntryService<ReadableLogEntry<ReadableHttpRequestHeaderField, ReadableHttpResponseHeaderField>> getService() { return service; } private void renderEntries() { if (service != null) { System.out.println("Log entries in repository: " + service.countAll()); } } public void setService( final LogEntryService<ReadableLogEntry<ReadableHttpRequestHeaderField, ReadableHttpResponseHeaderField>> service) { this.service = service; } }