001/* 002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * Stephane Lacoin 011 */ 012 013package org.nuxeo.ecm.core.storage.sql.management; 014 015import org.nuxeo.ecm.core.storage.sql.ClusterInvalidator; 016import org.nuxeo.ecm.core.storage.sql.Mapper; 017import org.nuxeo.ecm.core.storage.sql.Model; 018import org.nuxeo.ecm.core.storage.sql.ModelSetup; 019import org.nuxeo.ecm.core.storage.sql.RepositoryBackend; 020import org.nuxeo.ecm.core.storage.sql.RepositoryImpl; 021import org.nuxeo.ecm.core.storage.sql.Session.PathResolver; 022import org.nuxeo.runtime.management.metrics.MetricInvocationHandler; 023 024public abstract class MonitoredBackend implements RepositoryBackend { 025 026 final RepositoryBackend wrapped; 027 028 protected MonitoredBackend(RepositoryBackend wrapped) { 029 this.wrapped = wrapped; 030 } 031 032 @Override 033 public Mapper newMapper(Model model, PathResolver pathResolver, boolean useInvalidations) { 034 return MetricInvocationHandler.newProxy(wrapped.newMapper(model, pathResolver, useInvalidations), Mapper.class); 035 } 036 037 @Override 038 public void initialize(RepositoryImpl repository) { 039 wrapped.initialize(repository); 040 } 041 042 @Override 043 public void initializeModel(Model model) { 044 wrapped.initializeModel(model); 045 } 046 047 @Override 048 public void initializeModelSetup(ModelSetup modelSetup) { 049 wrapped.initializeModelSetup(modelSetup); 050 } 051 052 @Override 053 public void setClusterInvalidator(ClusterInvalidator clusterInvalidator) { 054 wrapped.setClusterInvalidator(clusterInvalidator); 055 } 056 057 @Override 058 public void shutdown() { 059 wrapped.shutdown(); 060 } 061 062}