File tempDir = new File(pathManager.getPathEntry(TEMP_DIR).resolvePath(), deploymentName); tempDir.mkdirs(); warMetaData.setTempDir(tempDir);
final void changeRelativePath(String pathName, String relativePath, boolean check) throws OperationFailedException { PathEntry pathEntry = findPathEntry(pathName); synchronized (pathEntries) { if (pathEntry.getRelativeTo() != null) { Set<String> dependents = dependenctRelativePaths.get(pathEntry.getRelativeTo()); dependents.remove(pathEntry.getName()); } if (check && relativePath != null && pathEntries.get(relativePath) == null) { throw MESSAGES.pathEntryNotFound(pathName); } pathEntry.setRelativeTo(relativePath); pathEntry.setPathResolver(relativePath == null ? absoluteResolver : relativeResolver); addDependent(pathEntry.getName(), pathEntry.getRelativeTo()); } triggerCallbacksForEvent(pathEntry, Event.UPDATED); }
final void changeRelativePathServices(final OperationContext operationContext, String pathName, String relativeTo) { PathEntry pathEntry = findPathEntry(pathName); removePathService(operationContext, pathEntry.getName()); if (relativeTo == null) { addAbsolutePathService(operationContext.getServiceTarget(), pathEntry.getName(), pathEntry.getPath()); } else { addRelativePathService(operationContext.getServiceTarget(), pathEntry.getName(), pathEntry.getPath(), false, relativeTo); } }
final void removePathEntry(final String pathName, boolean check) throws OperationFailedException{ synchronized (pathEntries) { PathEntry pathEntry = pathEntries.get(pathName); if (pathEntry.isReadOnly()) { throw MESSAGES.pathEntryIsReadOnly(pathName); } Set<String> dependents = dependenctRelativePaths.get(pathName); if (check && dependents != null) { throw MESSAGES.cannotRemovePathWithDependencies(pathName, dependents); } pathEntries.remove(pathName); triggerCallbacksForEvent(pathEntry, Event.REMOVED); if (pathEntry.getRelativeTo() != null) { dependents = dependenctRelativePaths.get(pathEntry.getRelativeTo()); if (dependents != null) { dependents.remove(pathEntry.getName()); if (dependents.size() == 0) { dependenctRelativePaths.remove(pathEntry.getRelativeTo()); } } } } }
final void changePathServices(final OperationContext operationContext, String pathName, String path) { PathEntry pathEntry = findPathEntry(pathName); removePathService(operationContext, pathName); if (pathEntry.getRelativeTo() == null) { addAbsolutePathService(operationContext.getServiceTarget(), pathEntry.getName(), path); } else { addRelativePathService(operationContext.getServiceTarget(), pathEntry.getName(), path, false, pathEntry.getRelativeTo()); } }
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, PathUpdate handback) throws OperationFailedException { final String pathName = context.getCurrentAddressValue(); final PathEntry backup = handback.backup; final PathEventContextImpl pathEventContext = handback.context; if (pathEventContext.isInstallServices()) { if (attributeName.equals(PATH)) { pathManager.changePath(pathName, backup.getPath()); pathManager.changePathServices(context, pathName, valueToRestore.asString()); } else if (attributeName.equals(RELATIVE_TO)) { try { pathManager.changeRelativePath(pathName, backup.getRelativeTo(), false); } catch (OperationFailedException e) { //Should not happen since false passed in for the 'check' parameter throw new RuntimeException(e); } pathManager.changeRelativePathServices(context, pathName, valueToRestore.isDefined() ? valueToRestore.asString() : null); } } else { pathEventContext.revert(); } }
public HardcodedPathResource(String type, PathEntry entry) { super(type, entry.getName()); this.entry = entry; }
final PathEntry addPathEntry(final String pathName, final String path, final String relativeTo, final boolean readOnly) { PathEntry pathEntry; synchronized (pathEntries) { if (pathEntries.containsKey(pathName)) { throw MESSAGES.pathEntryAlreadyExists(pathName); } pathEntry = new PathEntry(pathName, path, relativeTo, readOnly, relativeTo == null ? absoluteResolver : relativeResolver); pathEntries.put(pathName, pathEntry); if (relativeTo != null) { addDependent(pathName, relativeTo); } } triggerCallbacksForEvent(pathEntry, Event.ADDED); return pathEntry; }
final void changePath(String pathName, String path) { PathEntry pathEntry = findPathEntry(pathName); pathEntry.setPath(path); triggerCallbacksForEvent(pathEntry, Event.UPDATED); }
@Override public ModelNode getModel() { return entry.toModel(); }
@Override protected void finishModelStage(OperationContext context, ModelNode operation, String attributeName, ModelNode newValue, ModelNode oldValue, Resource model) throws OperationFailedException { // Guard against updates to read-only paths final String pathName = context.getCurrentAddressValue(); if (model.getModel().get(READ_ONLY.getName()).asBoolean(false)) { throw ControllerLogger.ROOT_LOGGER.cannotModifyReadOnlyPath(pathName); } if (pathManager != null) { final PathEntry pathEntry = pathManager.getPathEntry(pathName); if (pathEntry.isReadOnly()) { throw ControllerLogger.ROOT_LOGGER.pathEntryIsReadOnly(operation.require(OP_ADDR).asString()); } } }
final void removePathEntry(final String pathName, boolean check) throws OperationFailedException{ synchronized (pathEntries) { PathEntry pathEntry = pathEntries.get(pathName); if (pathEntry.isReadOnly()) { throw MESSAGES.pathEntryIsReadOnly(pathName); } Set<String> dependents = dependenctRelativePaths.get(pathName); if (check && dependents != null) { throw MESSAGES.cannotRemovePathWithDependencies(pathName, dependents); } pathEntries.remove(pathName); triggerCallbacksForEvent(pathEntry, Event.REMOVED); if (pathEntry.getRelativeTo() != null) { dependents = dependenctRelativePaths.get(pathEntry.getRelativeTo()); if (dependents != null) { dependents.remove(pathEntry.getName()); if (dependents.size() == 0) { dependenctRelativePaths.remove(pathEntry.getRelativeTo()); } } } } }
final void changePathServices(final OperationContext operationContext, String pathName, String path) { PathEntry pathEntry = findPathEntry(pathName); removePathService(operationContext, pathName); if (pathEntry.getRelativeTo() == null) { addAbsolutePathService(operationContext.getServiceTarget(), pathEntry.getName(), path); } else { addRelativePathService(operationContext.getServiceTarget(), pathEntry.getName(), path, false, pathEntry.getRelativeTo()); } }
@Override protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode valueToRestore, ModelNode valueToRevert, PathUpdate handback) throws OperationFailedException { final String pathName = context.getCurrentAddressValue(); final PathEntry backup = handback.backup; final PathEventContextImpl pathEventContext = handback.context; if (pathEventContext.isInstallServices()) { if (attributeName.equals(PATH)) { pathManager.changePath(pathName, backup.getPath()); pathManager.changePathServices(context, pathName, valueToRestore.asString()); } else if (attributeName.equals(RELATIVE_TO)) { try { pathManager.changeRelativePath(pathName, backup.getRelativeTo(), false); } catch (OperationFailedException e) { //Should not happen since false passed in for the 'check' parameter throw new RuntimeException(e); } pathManager.changeRelativePathServices(context, pathName, valueToRestore.isDefined() ? valueToRestore.asString() : null); } } else { pathEventContext.revert(); } }
public HardcodedPathResource(String type, PathEntry entry) { super(type, entry.getName()); this.entry = entry; }
final PathEntry addPathEntry(final String pathName, final String path, final String relativeTo, final boolean readOnly) { PathEntry pathEntry; synchronized (pathEntries) { if (pathEntries.containsKey(pathName)) { throw MESSAGES.pathEntryAlreadyExists(pathName); } pathEntry = new PathEntry(pathName, path, relativeTo, readOnly, relativeTo == null ? absoluteResolver : relativeResolver); pathEntries.put(pathName, pathEntry); if (relativeTo != null) { addDependent(pathName, relativeTo); } } triggerCallbacksForEvent(pathEntry, Event.ADDED); return pathEntry; }
final void changePath(String pathName, String path) { PathEntry pathEntry = findPathEntry(pathName); pathEntry.setPath(path); triggerCallbacksForEvent(pathEntry, Event.UPDATED); }
@Override public ModelNode getModel() { return entry.toModel(); }
@Override protected void finishModelStage(OperationContext context, ModelNode operation, String attributeName, ModelNode newValue, ModelNode oldValue, Resource model) throws OperationFailedException { // Guard against updates to read-only paths final String pathName = context.getCurrentAddressValue(); if (model.getModel().get(READ_ONLY.getName()).asBoolean(false)) { throw ControllerLogger.ROOT_LOGGER.cannotModifyReadOnlyPath(pathName); } if (pathManager != null) { final PathEntry pathEntry = pathManager.getPathEntry(pathName); if (pathEntry.isReadOnly()) { throw ControllerLogger.ROOT_LOGGER.pathEntryIsReadOnly(operation.require(OP_ADDR).asString()); } } }
@Override public String resolvePath(String name, String path, String relativeTo, PathResolver resolver) { PathEntry relativeEntry; synchronized (pathEntries) { relativeEntry = pathEntries.get(relativeTo); if (relativeEntry == null) { throw new IllegalStateException("Could not find relativeTo path '" + relativeTo + "' for relative path '" + name); } } return RelativePathService.doResolve(relativeEntry.resolvePath(), path); }