Files
alfresco-community-repo/source/java/org/alfresco/repo/admin/RepositoryState.java
Alan Davis 9e3ae9c8e4 Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud)
99376: BENCH-371: BM-0004: Copy Alfresco and set up build plan
    - Modify FileContentStore to service 'spoof://' URLs
    - SpoofedTextContentReader to generate consistent text for URL
    - Fix FileContentStoreTest so that tests actually execute
    - Add override for @After so that no NPEs are thrown
    - Add tests for the 'spoof://' protocol
    - Some additional checks for IllegalArgumentException on SpoofedTextContentReader construction
    - Force delete of 'spoof' to return false but not fail with an exception
      This is handled neatly by the EagerContentStoreCleaner, which accepts that the stores may protect data according to their own needs e.g. Centera
    - Add spoofing option to FileFolderPerformanceTester
      290 files/s for 1K files vs 460 files/s for spoofed text files (no binary streaming required)
    - Start FileFolderLoader component that will be used by the API  


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@99502 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2015-03-16 13:35:57 +00:00

67 lines
1.8 KiB
Java

/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.repo.admin;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* A class that maintains a thread-safe ready indicator on the current bootstrap state of the repository.
*
* @author Andy
*
*/
public class RepositoryState
{
private boolean bootstrapping;
private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
/**
* Determine if the repository is ready to use.
*
* @return <tt>true</tt> if the repository bootstrap process is still going,
* or <tt>false</tt> if the repository is ready to use
*/
public boolean isBootstrapping()
{
this.lock.readLock().lock();
try
{
return bootstrapping;
}
finally
{
this.lock.readLock().unlock();
}
}
public void setBootstrapping(boolean bootstrapping)
{
this.lock.writeLock().lock();
try
{
this.bootstrapping = bootstrapping;
}
finally
{
this.lock.writeLock().unlock();
}
}
}