001/*
002 * Copyright (c) 2006-2014 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 *     Florent Guillaume
011 */
012package org.nuxeo.ecm.core.repository;
013
014import java.util.concurrent.Callable;
015
016/**
017 * Low-level Repository factory.
018 * <p>
019 * The repository factory to use is usually specified in the MBean configuration file.
020 */
021public interface RepositoryFactory extends Callable<Object> {
022
023    void init(String repositoryName);
024
025    /**
026     * Constructs the low-level repository with the name previously passed to {@link #init}.
027     *
028     * @return a low-level Repository
029     */
030    @Override
031    public Object call();
032
033}