/** * Ensure that the given directory exists, creating it if necessary. * @param directoryName the name of the required directory */ private void checkDirectory(String directoryName) { final File directory = new File(directoryName); if (directory.listFiles() == null) { if (readOnly.isReadOnlyRepo()) { throw new BeanCreationException("required directory " + directory + " cannot be read but repository is read-only"); } else { directory.mkdirs(); log.info("Created " + directory); } } } }
/** * @return if the changes for read-only should be made */ private boolean isTriggerConditionMet() { return isWriteDb && readOnly.isReadOnlyDb() || isWriteRepo && readOnly.isReadOnlyRepo(); }
/** * Set read-only status in the current configuration. * @param iConfig the configuration service * @param readOnly the read-only status */ public ReadOnlyConfigInit(IConfig iConfig, ReadOnlyStatus readOnly) { iConfig.setConfigValue(KEY_PREFIX + "db", Boolean.toString(readOnly.isReadOnlyDb())); iConfig.setConfigValue(KEY_PREFIX + "repo", Boolean.toString(readOnly.isReadOnlyRepo())); } }
public LegacyRepositoryI(Ice.ObjectAdapter oa, Registry reg, Executor ex, Principal p, FileMaker fileMaker, ReadOnlyStatus readOnly, PublicRepositoryI servant) { super(oa, reg, ex, p, fileMaker, readOnly, servant); this.fs = new OriginalFilesService(fileMaker.getDir(), readOnly.isReadOnlyRepo()); }
private ome.model.core.OriginalFile handleRepository(String line) throws Exception { if (line == null) { repoUuid = generateRepoUuid(); } else { repoUuid = line; } ome.model.core.OriginalFile r = sf.getQueryService() .findByString(ome.model.core.OriginalFile.class, "hash", repoUuid); if (!(readOnly.isReadOnlyDb() || readOnly.isReadOnlyRepo())) { r = handleRepoChanges(r, line); } if (r == null) { throw new NullPointerException("No repository to open!"); } log.info(String.format("Opened repository %s (uuid=%s)", r.getName(), repoUuid)); return r; }
private String handleFileMaker() throws Exception { if (fileMaker.needsInit()) { fileMaker.init(sf.getConfigService().getDatabaseUuid(), readOnly.isReadOnlyRepo()); } String line = null; try { line = fileMaker.getLine(); } catch (OverlappingFileLockException ofle) { InternalRepositoryPrx[] repos = reg.lookupRepositories(); InternalRepositoryPrx prx = null; if (repos != null) { for (int i = 0; i < repos.length; i++) { if (repos[i] != null) { if (repos[i].toString().contains(repoUuid)) { prx = repos[i]; } } } } if (prx == null) { fileMaker.close(); FileMaker newFileMaker = new FileMaker(new File( fileMaker.getDir()).getAbsolutePath()); fileMaker.init(sf.getConfigService().getDatabaseUuid(), readOnly.isReadOnlyRepo()); line = newFileMaker.getLine(); } } return line; }