diff --git a/app/aem/core/src/main/java/com/cognifide/apm/checks/actions/permissions/CheckPermissions.java b/app/aem/core/src/main/java/com/cognifide/apm/checks/actions/permissions/CheckPermissions.java index 9a27fc673..5ff27bd4d 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/checks/actions/permissions/CheckPermissions.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/checks/actions/permissions/CheckPermissions.java @@ -27,7 +27,6 @@ import com.cognifide.apm.checks.utils.ActionUtils; import com.cognifide.apm.checks.utils.MessagingUtils; import com.day.cq.security.util.CqActions; -import com.google.common.collect.Lists; import java.security.Principal; import java.util.ArrayList; import java.util.Collection; @@ -35,6 +34,7 @@ import java.util.List; import java.util.Set; import java.util.regex.Pattern; +import java.util.stream.Collectors; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; @@ -172,6 +172,6 @@ private static Set getAuthorizablesToCheck(Authorizable authorizable, } private List preparePrivilegesToCheck() { - return Lists.transform(permissions, String::toLowerCase); + return permissions.stream().map(String::toLowerCase).collect(Collectors.toList()); } } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionMapperRegistryImpl.java b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionMapperRegistryImpl.java index 6d365ec0d..c9a34c90c 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionMapperRegistryImpl.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionMapperRegistryImpl.java @@ -25,11 +25,10 @@ import com.cognifide.apm.core.Property; import com.cognifide.apm.core.actions.scanner.AnnotatedClassRegistry; import com.cognifide.apm.core.actions.scanner.RegistryChangedListener; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -38,7 +37,6 @@ import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; -import org.osgi.service.component.annotations.Reference; import org.scribe.utils.Preconditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +75,7 @@ public void deactivate() { @Override public void registryChanged(List> registeredClasses) { - this.mappers.set(ImmutableMap.copyOf(createActionMappers(registeredClasses))); + this.mappers.set(Collections.unmodifiableMap(createActionMappers(registeredClasses))); } @Override @@ -93,7 +91,7 @@ public Collection getMappers() { private static Map createActionMappers(List> classes) { MapperDescriptorFactory mapperDescriptorFactory = new MapperDescriptorFactory(); - Map mappers = Maps.newHashMapWithExpectedSize(classes.size()); + Map mappers = new HashMap<>(classes.size()); for (Class clazz : classes) { try { MapperDescriptor mapperDescriptor = mapperDescriptorFactory.create(clazz); diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionResultImpl.java b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionResultImpl.java index 5f60540f9..b233552b8 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionResultImpl.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/ActionResultImpl.java @@ -22,8 +22,8 @@ import com.cognifide.apm.api.actions.ActionResult; import com.cognifide.apm.api.actions.Message; import com.cognifide.apm.api.status.Status; -import com.google.common.collect.Lists; import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -53,12 +53,12 @@ public void setAuthorizable(String authorizable) { @Override public ActionResult merge(ActionResult... actionResults) { - return merge(Lists.newArrayList(actionResults)); + return merge(Arrays.asList(actionResults)); } @Override public ActionResult merge(List actionResults) { - List all = Lists.newArrayList(); + List all = new ArrayList<>(); all.add(this); all.addAll(actionResults); ActionResultImpl result = new ActionResultImpl(); diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MapperDescriptorFactory.java b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MapperDescriptorFactory.java index 6d0876793..fd030cd59 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MapperDescriptorFactory.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MapperDescriptorFactory.java @@ -37,12 +37,12 @@ import com.cognifide.apm.core.grammar.ApmType.ApmList; import com.cognifide.apm.core.grammar.ApmType.ApmMap; import com.cognifide.apm.core.grammar.ApmType.ApmString; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -58,11 +58,11 @@ public MapperDescriptor create(Class mapperClass) { Object mapper = createInstance(mapperClass); String name = mapperAnnotation.value(); String group = mapperAnnotation.group(); - List mappingDescriptors = Lists.newArrayList(); + List mappingDescriptors = new ArrayList<>(); for (Method method : mapperClass.getDeclaredMethods()) { create(mapperAnnotation, method).ifPresent(mappingDescriptors::add); } - return new MapperDescriptor(mapper, name, group, ImmutableList.copyOf(mappingDescriptors)); + return new MapperDescriptor(mapper, name, group, Collections.unmodifiableList(mappingDescriptors)); } @SuppressWarnings("deprecation") @@ -85,7 +85,7 @@ private Optional create(Mapper mapper, Method method) { throw new InvalidActionMapperException("Mapping method must have return type " + Action.class.getName()); } - List parameterDescriptors = Lists.newArrayList(); + List parameterDescriptors = new ArrayList<>(); Type[] types = method.getGenericParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); int requiredIndex = 0; @@ -111,7 +111,7 @@ private Optional create(Mapper mapper, Method method) { parameterDescriptors.add(parameterDescriptor); } - return Optional.of(new MappingDescriptor(method, mapper, mapping, ImmutableList.copyOf(parameterDescriptors))); + return Optional.of(new MappingDescriptor(method, mapper, mapping, Collections.unmodifiableList(parameterDescriptors))); } private T getAnnotation(Annotation[] annotations, Class type) { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MappingDescriptor.java b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MappingDescriptor.java index f9238f640..9e138a2cd 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MappingDescriptor.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/actions/MappingDescriptor.java @@ -26,9 +26,9 @@ import com.cognifide.apm.core.actions.ParameterDescriptor.NamedParameterDescriptor; import com.cognifide.apm.core.actions.ParameterDescriptor.RequiredParameterDescriptor; import com.cognifide.apm.core.grammar.argument.Arguments; -import com.google.common.collect.ImmutableList; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -51,7 +51,7 @@ public MappingDescriptor(Method method, Mapper mapper, Mapping mapping, List> getClasses() { flattened.addAll(entry.getValue()); } - return ImmutableList.copyOf(flattened); + return Collections.unmodifiableList(flattened); } private void registerClasses(Bundle bundle) { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/endpoints/utils/RequestProcessor.java b/app/aem/core/src/main/java/com/cognifide/apm/core/endpoints/utils/RequestProcessor.java index 6d9237e06..8b87e25ad 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/endpoints/utils/RequestProcessor.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/endpoints/utils/RequestProcessor.java @@ -22,9 +22,11 @@ import com.cognifide.apm.core.endpoints.params.RequestParameter; import com.cognifide.apm.core.endpoints.response.ResponseEntity; import com.cognifide.apm.core.utils.ServletUtils; -import com.google.common.collect.ImmutableMap; import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.function.BiFunction; import java.util.stream.Collectors; @@ -52,13 +54,13 @@ public static void process(ModelFactory modelFactory, Class formClass, Sl ServletUtils.writeJson(httpResponse, response.getBody()); } catch (MissingElementsException e) { httpResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST); - ServletUtils.writeJson(httpResponse, ImmutableMap.of( - "message", "Bad request", - "errors", toErrors(e) - )); + Map params = new HashMap<>(); + params.put("message", "Bad request"); + params.put("errors", toErrors(e)); + ServletUtils.writeJson(httpResponse, params); } catch (Exception e) { httpResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); - ServletUtils.writeJson(httpResponse, ImmutableMap.of( + ServletUtils.writeJson(httpResponse, Collections.singletonMap( "message", StringUtils.defaultString(e.getMessage()) )); } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ReferenceFinder.java b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ReferenceFinder.java index 24caaea47..1385cede5 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ReferenceFinder.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ReferenceFinder.java @@ -31,8 +31,8 @@ import com.cognifide.apm.core.grammar.executioncontext.ExecutionContext; import com.cognifide.apm.core.grammar.parsedscript.ParsedScript; import com.cognifide.apm.core.progress.ProgressImpl; -import com.google.common.collect.ImmutableList; import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashSet; @@ -86,7 +86,7 @@ private void fillReferenceGraph(ReferenceGraph refGraph, Script script) { if (refGraph.getNode(script) == null) { ApmLangParser.ApmContext apmContext = ParsedScript.create(script).getApm(); ExecutionContext executionContext = ExecutionContext.create(scriptFinder, resourceResolver, dataSourceInvoker, script, new ProgressImpl(resourceResolver.getUserID())); - findReferences(refGraph, refGraph.addNode(script), ImmutableList.of(script.getPath()), executionContext, apmContext); + findReferences(refGraph, refGraph.addNode(script), Collections.singletonList(script.getPath()), executionContext, apmContext); } } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ScriptRunner.java b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ScriptRunner.java index 375230d8f..0c34d9d2c 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ScriptRunner.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/ScriptRunner.java @@ -47,7 +47,6 @@ import com.cognifide.apm.core.grammar.utils.RequiredVariablesChecker; import com.cognifide.apm.core.logger.Position; import com.cognifide.apm.core.logger.Progress; -import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -285,7 +284,7 @@ private List readValues(ForEachContext ctx) { } else if (variableValue instanceof ApmList) { values = variableValue.getList(); } else { - values = ImmutableList.of(variableValue); + values = Collections.singletonList(variableValue); } return values.stream() .map(value -> new ApmPair(key, value)) @@ -297,7 +296,7 @@ private void progress(ParserRuleContext ctx, Status status, String command, Stri } private void progress(ParserRuleContext ctx, Status status, String command, String detail, Arguments arguments) { - progress(ctx, status, command, ImmutableList.of(detail), arguments); + progress(ctx, status, command, Collections.singletonList(detail), arguments); } private void progress(ParserRuleContext ctx, Status status, String command, List details) { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/datasource/LevelsDataSource.java b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/datasource/LevelsDataSource.java index 50ee992d7..d6a791560 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/datasource/LevelsDataSource.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/datasource/LevelsDataSource.java @@ -25,7 +25,6 @@ import com.cognifide.apm.core.grammar.ApmType.ApmMap; import com.cognifide.apm.core.grammar.ApmType.ApmString; import com.day.cq.wcm.api.NameConstants; -import com.google.common.collect.ImmutableMap; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -70,10 +69,9 @@ private ApmType traverseTree(Resource root, int depth, List configs) { List list = new ArrayList<>(); for (Resource resource : root.getChildren()) { if (config.isValid(resource)) { - Map map = new HashMap<>(ImmutableMap.of( - "path", new ApmString(resource.getPath()), - "name", new ApmString(resource.getName()) - )); + Map map = new HashMap<>(); + map.put("path", new ApmString(resource.getPath())); + map.put("name", new ApmString(resource.getName())); map.putAll(config.determineParams(resource)); ApmType items = traverseTree(resource, depth + 1, configs); if (items instanceof ApmList) { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/parsedscript/InvalidSyntaxMessageFactory.java b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/parsedscript/InvalidSyntaxMessageFactory.java index 865d2eb8f..d6f88fd6d 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/parsedscript/InvalidSyntaxMessageFactory.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/parsedscript/InvalidSyntaxMessageFactory.java @@ -20,7 +20,8 @@ package com.cognifide.apm.core.grammar.parsedscript; -import com.google.common.collect.ImmutableList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Optional; import org.antlr.v4.runtime.CharStream; @@ -45,9 +46,9 @@ private static List underlineError(Recognizer recognizer, Token of String errorLine = getErrorLine(recognizer, line); String invalidLine = String.format("Invalid line [%d:%d]: %s", line, charPositionInLine, errorLine); if (offendingToken != null && StringUtils.isNotBlank(offendingToken.getText())) { - return ImmutableList.of(invalidLine, String.format("Invalid sequence: %s", offendingToken.getText())); + return Arrays.asList(invalidLine, String.format("Invalid sequence: %s", offendingToken.getText())); } else { - return ImmutableList.of(invalidLine); + return Collections.singletonList(invalidLine); } } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/utils/ImportScript.java b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/utils/ImportScript.java index dec6cdeb4..6e67398db 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/utils/ImportScript.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/grammar/utils/ImportScript.java @@ -31,7 +31,7 @@ import com.cognifide.apm.core.grammar.executioncontext.ExecutionContext; import com.cognifide.apm.core.grammar.executioncontext.VariableHolder; import com.cognifide.apm.core.grammar.parsedscript.ParsedScript; -import com.google.common.collect.ImmutableList; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -127,7 +127,7 @@ public VariableHolder getVariableHolder() { } public List toMessages() { - List resultMessagesPrefix = ImmutableList.of(String.format("Import from script %s. Notice, only DEFINE actions were processed!", path)); + List resultMessagesPrefix = Collections.singletonList(String.format("Import from script %s. Notice, only DEFINE actions were processed!", path)); List importedVariables = variableHolder.toMap() .entrySet() .stream() diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/jobs/JobResultsCache.java b/app/aem/core/src/main/java/com/cognifide/apm/core/jobs/JobResultsCache.java index f540f0bb5..6cc6e51e7 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/jobs/JobResultsCache.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/jobs/JobResultsCache.java @@ -21,10 +21,9 @@ import com.cognifide.apm.api.services.ExecutionResult; import com.cognifide.apm.core.Property; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; import java.io.Serializable; -import java.util.concurrent.TimeUnit; +import java.util.HashMap; +import java.util.Map; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -37,21 +36,32 @@ ) public class JobResultsCache { - private static final long DEFAULT_EXPIRATION_TIME = 10; + private static final long DEFAULT_TTL = 10 * 60 * 1000; - private Cache cache; + private Map cache; @Activate public void activate() { - cache = CacheBuilder.newBuilder().expireAfterWrite(DEFAULT_EXPIRATION_TIME, TimeUnit.MINUTES).build(); + cache = new HashMap<>(); } public void put(String id, ExecutionSummary executionSummary) { + invalidate(); cache.put(id, executionSummary); } public ExecutionSummary get(String id) { - return cache.getIfPresent(id); + invalidate(); + return cache.get(id); + } + + private void invalidate() { + long now = System.currentTimeMillis(); + cache.forEach((key, value) -> { + if (value.timestamp + DEFAULT_TTL < now) { + cache.remove(key); + } + }); } public static class ExecutionSummary implements Serializable { @@ -59,11 +69,13 @@ public static class ExecutionSummary implements Serializable { private final boolean finished; private final ExecutionResult result; private final String path; + private final long timestamp; private ExecutionSummary(boolean finished, ExecutionResult result, String path) { this.finished = finished; this.result = result; this.path = path; + this.timestamp = System.currentTimeMillis(); } public static ExecutionSummary running() { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/logger/ProgressEntry.java b/app/aem/core/src/main/java/com/cognifide/apm/core/logger/ProgressEntry.java index 3acd8cff6..b1a10ad77 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/logger/ProgressEntry.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/logger/ProgressEntry.java @@ -21,7 +21,6 @@ import com.cognifide.apm.api.services.ExecutionResult.Entry; import com.cognifide.apm.api.status.Status; -import com.google.common.collect.ImmutableList; import java.util.Collections; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -45,8 +44,8 @@ public ProgressEntry(Status status, List messages, String command, Strin this.status = status != null ? status : Status.SUCCESS; this.command = StringUtils.defaultString(command); this.position = position; - this.messages = messages != null ? ImmutableList.copyOf(messages) : Collections.emptyList(); - this.parameters = parameters != null ? ImmutableList.copyOf(parameters) : Collections.emptyList(); + this.messages = messages != null ? Collections.unmodifiableList(messages) : Collections.emptyList(); + this.parameters = parameters != null ? Collections.unmodifiableList(parameters) : Collections.emptyList(); this.authorizable = StringUtils.defaultString(authorizable); } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/progress/ProgressImpl.java b/app/aem/core/src/main/java/com/cognifide/apm/core/progress/ProgressImpl.java index 241d415a0..0765a1397 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/progress/ProgressImpl.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/progress/ProgressImpl.java @@ -27,7 +27,6 @@ import com.cognifide.apm.core.logger.Position; import com.cognifide.apm.core.logger.Progress; import com.cognifide.apm.core.logger.ProgressEntry; -import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -55,7 +54,7 @@ public ProgressImpl(String executor, List entries) { @Override public List getEntries() { - return Lists.newLinkedList(entries); + return new LinkedList<>(entries); } @Override diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/scripts/ScriptModel.java b/app/aem/core/src/main/java/com/cognifide/apm/core/scripts/ScriptModel.java index c6ae1349e..04205affa 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/scripts/ScriptModel.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/scripts/ScriptModel.java @@ -29,11 +29,10 @@ import com.cognifide.apm.core.utils.ResourceMixinUtil; import com.cognifide.apm.core.utils.RuntimeUtils; import com.day.cq.commons.jcr.JcrConstants; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import java.util.Arrays; import java.util.Calendar; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -160,7 +159,7 @@ public LaunchEnvironment getLaunchEnvironment() { @Override public Set getLaunchRunModes() { - return launchRunModes == null ? null : Sets.newHashSet(launchRunModes); + return launchRunModes == null ? null : new HashSet<>(Arrays.asList(launchRunModes)); } @Override @@ -265,7 +264,7 @@ public static boolean isScript(Resource resource) { } private static List getArrayProperty(Resource resource, String name) { - return Lists.newArrayList(resource.getValueMap().get(name, new String[]{})); + return Arrays.asList(resource.getValueMap().get(name, new String[]{})); } @Override diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/services/async/AsyncScriptExecutorImpl.java b/app/aem/core/src/main/java/com/cognifide/apm/core/services/async/AsyncScriptExecutorImpl.java index 927d521d7..33ec0c878 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/services/async/AsyncScriptExecutorImpl.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/services/async/AsyncScriptExecutorImpl.java @@ -26,8 +26,9 @@ import com.cognifide.apm.core.jobs.JobResultsCache; import com.cognifide.apm.core.jobs.JobResultsCache.ExecutionSummary; import com.cognifide.apm.core.jobs.ScriptRunnerJobConsumer; -import com.google.common.collect.ImmutableMap; import java.util.Calendar; +import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -61,15 +62,14 @@ public class AsyncScriptExecutorImpl implements AsyncScriptExecutor { @Override public String process(Script script, ExecutionMode executionMode, Map customDefinitions, String executor) { String id = UUID.randomUUID().toString(); - Map properties = ImmutableMap.of( - ID, id, - SCRIPT_PATH, script.getPath(), - EXECUTION_MODE, executionMode.toString(), - USER_ID, executor, - DEFINITIONS, customDefinitions - ); + Map properties = new HashMap<>(); + properties.put(ID, id); + properties.put(SCRIPT_PATH, script.getPath()); + properties.put(EXECUTION_MODE, executionMode.toString()); + properties.put(USER_ID, executor); + properties.put(DEFINITIONS, customDefinitions); jobResultsCache.put(id, ExecutionSummary.running()); - new Thread(() -> scriptRunnerJobConsumer.process(properties)).start(); + new Thread(() -> scriptRunnerJobConsumer.process(Collections.unmodifiableMap(properties))).start(); return id; } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/services/event/ApmEvent.java b/app/aem/core/src/main/java/com/cognifide/apm/core/services/event/ApmEvent.java index 6b0caa70c..ead6ed2b5 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/services/event/ApmEvent.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/services/event/ApmEvent.java @@ -21,7 +21,8 @@ import com.cognifide.apm.api.scripts.Script; import com.cognifide.apm.api.services.ExecutionMode; -import com.google.common.collect.ImmutableMap; +import java.util.Collections; +import java.util.HashMap; import java.util.Map; import org.osgi.service.event.Event; @@ -35,7 +36,7 @@ public abstract class ApmEvent { private final String topic; - private final Map properties; + protected final Map properties; private ApmEvent(String topic, Map properties) { this.topic = topic; @@ -49,28 +50,26 @@ public Event toOsgiEvent() { public static class ScriptLaunchedEvent extends ApmEvent { public ScriptLaunchedEvent(Script script, ExecutionMode mode) { - super(SCRIPT_LAUNCHED, ImmutableMap.of( - "script", script.getPath(), - "mode", mode.toString() - )); + super(SCRIPT_LAUNCHED, new HashMap<>()); + properties.put("script", script.getPath()); + properties.put("mode", mode.toString()); } } public static class ScriptExecutedEvent extends ApmEvent { public ScriptExecutedEvent(Script script, ExecutionMode mode, boolean success) { - super(SCRIPT_EXECUTED, ImmutableMap.of( - "script", script.getPath(), - "mode", mode.toString(), - "success", success - )); + super(SCRIPT_EXECUTED, new HashMap<>()); + properties.put("script", script.getPath()); + properties.put("mode", mode.toString()); + properties.put("success", success); } } public static class InstallHookExecuted extends ApmEvent { public InstallHookExecuted(String hookName) { - super(INSTALL_HOOK_EXECUTED, ImmutableMap.of( + super(INSTALL_HOOK_EXECUTED, Collections.singletonMap( "installHookName", hookName )); } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/ui/datasources/SimpleDataSourceBuilder.java b/app/aem/core/src/main/java/com/cognifide/apm/core/ui/datasources/SimpleDataSourceBuilder.java index ea85447d7..ca9c7068b 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/ui/datasources/SimpleDataSourceBuilder.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/ui/datasources/SimpleDataSourceBuilder.java @@ -23,9 +23,9 @@ import com.adobe.granite.ui.components.ds.SimpleDataSource; import com.adobe.granite.ui.components.ds.ValueMapResource; import com.day.cq.commons.jcr.JcrConstants; -import com.google.common.collect.ImmutableMap; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -73,10 +73,9 @@ public SimpleDataSource build() { } private Resource createDataSourceItem(ResourceResolver resolver, String name, String value) { - Map valueMap = ImmutableMap.of( - CONFIGURATION_NAME_PROP, name, - CONFIGURATION_PATH_PROP, value - ); + Map valueMap = new HashMap<>(); + valueMap.put(CONFIGURATION_NAME_PROP, name); + valueMap.put(CONFIGURATION_PATH_PROP, value); ValueMapDecorator result = new ValueMapDecorator(valueMap); return new ValueMapResource(resolver, new ResourceMetadata(), JcrConstants.NT_RESOURCE, result); } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/ui/models/ScriptsRowModel.java b/app/aem/core/src/main/java/com/cognifide/apm/core/ui/models/ScriptsRowModel.java index cd935d33c..f1fa00ea9 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/ui/models/ScriptsRowModel.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/ui/models/ScriptsRowModel.java @@ -27,9 +27,11 @@ import com.cognifide.apm.core.utils.CalendarUtils; import com.cognifide.apm.core.utils.LabelUtils; import com.day.cq.commons.jcr.JcrConstants; -import com.google.common.collect.ImmutableSet; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; @@ -47,8 +49,9 @@ @Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL) public final class ScriptsRowModel { - private static final Set FOLDER_TYPES = ImmutableSet - .of(JcrConstants.NT_FOLDER, "sling:OrderedFolder", "sling:Folder"); + private static final Set FOLDER_TYPES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList( + JcrConstants.NT_FOLDER, "sling:OrderedFolder", "sling:Folder" + ))); public static final String SCRIPTS_ROW_RESOURCE_TYPE = "apm/components/scriptsRow"; diff --git a/app/aem/core/src/main/java/com/cognifide/apm/core/utils/mocks/MockGroup.java b/app/aem/core/src/main/java/com/cognifide/apm/core/utils/mocks/MockGroup.java index 68a339911..a18408861 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/core/utils/mocks/MockGroup.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/core/utils/mocks/MockGroup.java @@ -19,7 +19,6 @@ */ package com.cognifide.apm.core.utils.mocks; -import com.google.common.collect.Iterators; import java.security.Principal; import java.util.Collections; import java.util.Iterator; @@ -54,12 +53,12 @@ public Principal getPrincipal() throws RepositoryException { @Override public Iterator declaredMemberOf() throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override public Iterator memberOf() throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override @@ -68,12 +67,12 @@ public void remove() throws RepositoryException { @Override public Iterator getPropertyNames() throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override public Iterator getPropertyNames(String relPath) throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override @@ -106,12 +105,12 @@ public String getPath() throws RepositoryException { @Override public Iterator getDeclaredMembers() throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override public Iterator getMembers() throws RepositoryException { - return Iterators.emptyIterator(); + return Collections.emptyIterator(); } @Override diff --git a/app/aem/core/src/main/java/com/cognifide/apm/main/CompositeAction.java b/app/aem/core/src/main/java/com/cognifide/apm/main/CompositeAction.java index 730339c15..0981b9007 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/main/CompositeAction.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/main/CompositeAction.java @@ -23,8 +23,9 @@ import com.cognifide.apm.api.actions.ActionResult; import com.cognifide.apm.api.actions.Context; import com.cognifide.apm.api.exceptions.ActionExecutionException; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; public class CompositeAction implements Action { @@ -32,17 +33,17 @@ public class CompositeAction implements Action { private final List actions; public CompositeAction(List actions) { - this.actions = ImmutableList.copyOf(actions); + this.actions = Collections.unmodifiableList(actions); } public CompositeAction(Action... actions) { - this.actions = ImmutableList.copyOf(actions); + this.actions = Arrays.asList(actions); } @Override public ActionResult simulate(Context context) throws ActionExecutionException { ActionResult result = context.createActionResult(); - List actionResults = Lists.newArrayListWithCapacity(actions.size()); + List actionResults = new ArrayList<>(actions.size()); for (Action action : actions) { actionResults.add(action.simulate(context)); } @@ -52,7 +53,7 @@ public ActionResult simulate(Context context) throws ActionExecutionException { @Override public ActionResult execute(Context context) throws ActionExecutionException { ActionResult result = context.createActionResult(); - List actionResults = Lists.newArrayListWithCapacity(actions.size()); + List actionResults = new ArrayList<>(actions.size()); for (Action action : actions) { actionResults.add(action.execute(context)); } diff --git a/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/PrivilegeGroup.java b/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/PrivilegeGroup.java index 58d7b62e7..5601ce4c8 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/PrivilegeGroup.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/PrivilegeGroup.java @@ -19,7 +19,6 @@ */ package com.cognifide.apm.main.permissions; -import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -73,7 +72,7 @@ public enum PrivilegeGroup { PrivilegeGroup(String title, String... privileges) { this.title = title; - this.privileges = ImmutableList.copyOf(privileges); + this.privileges = Arrays.asList(privileges); } public static Optional getFromTitle(String title) { diff --git a/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/Restrictions.java b/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/Restrictions.java index 1197e6e2f..43dc329bf 100644 --- a/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/Restrictions.java +++ b/app/aem/core/src/main/java/com/cognifide/apm/main/permissions/Restrictions.java @@ -20,9 +20,10 @@ package com.cognifide.apm.main.permissions; -import com.google.common.collect.ImmutableSet; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -45,10 +46,10 @@ public class Restrictions { private static final String REP_ITEM_NAMES_PROPERTY = "rep:itemNames"; - private static final Set MULTI_VALUE_REP_PROPERTIES = ImmutableSet.of( + private static final Set MULTI_VALUE_REP_PROPERTIES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList( REP_NT_NAMES_PROPERTY, REP_ITEM_NAMES_PROPERTY, REP_GLOBS_PROPERTY, "rep:prefixes", "rep:current", "rep:subtrees", "sling:resourceTypes", "sling:resourceTypesWithDescendants" - ); + ))); private final String glob; diff --git a/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/ArgumentResolverTest.groovy b/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/ArgumentResolverTest.groovy index 24b371b14..1c3a14e9f 100644 --- a/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/ArgumentResolverTest.groovy +++ b/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/ArgumentResolverTest.groovy @@ -28,7 +28,6 @@ import com.cognifide.apm.core.grammar.argument.ArgumentResolver import com.cognifide.apm.core.grammar.argument.ArgumentResolverException import com.cognifide.apm.core.grammar.datasource.DataSourceInvoker import com.cognifide.apm.core.grammar.executioncontext.VariableHolder -import com.google.common.collect.Lists import org.apache.sling.api.resource.ResourceResolver import spock.lang.Specification @@ -219,7 +218,7 @@ class ArgumentResolverTest extends Specification { def "resolve list parameters"() { given: - variableHolder.set("var1", new ApmList(Lists.newArrayList(new ApmString("val1")))) + variableHolder.set("var1", new ApmList(Collections.singletonList(new ApmString("val1")))) variableHolder.set("var2", new ApmString("val2")) def parameterResolver = createArgumentResolver() def parser = ApmLangParserHelper.createParserUsingScript("\$var1 [\$var2, 'FALSE']") @@ -234,7 +233,7 @@ class ArgumentResolverTest extends Specification { def "resolve optional parameters"() { given: - variableHolder.set("var1", new ApmList(Lists.newArrayList(new ApmString("val1")))) + variableHolder.set("var1", new ApmList(Collections.singletonList(new ApmString("val1")))) variableHolder.set("var2", new ApmString("val2")) def parameterResolver = createArgumentResolver() def parser = ApmLangParserHelper.createParserUsingScript("\$var1 param1=[\$var2, 'FALSE'] param2='STRICT'") @@ -249,7 +248,7 @@ class ArgumentResolverTest extends Specification { def "resolve flags"() { given: - variableHolder.set("var1", new ApmList(Lists.newArrayList(new ApmString("val1")))) + variableHolder.set("var1", new ApmList(Collections.singletonList(new ApmString("val1")))) variableHolder.set("var2", new ApmString("val2")) def parameterResolver = createArgumentResolver() def parser = ApmLangParserHelper.createParserUsingScript("\$var1 param1=[\$var2, 'FALSE'] --IF-EXISTS --DEEP") diff --git a/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/common/StackWithRootTest.groovy b/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/common/StackWithRootTest.groovy index 939772298..85c5f2880 100644 --- a/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/common/StackWithRootTest.groovy +++ b/app/aem/core/src/test/groovy/com/cognifide/apm/core/grammar/common/StackWithRootTest.groovy @@ -20,7 +20,8 @@ package com.cognifide.apm.core.grammar.common -import com.google.common.collect.Lists +import java.util.stream.Collectors +import java.util.stream.StreamSupport import spock.lang.Specification class StackWithRootTest extends Specification { @@ -32,7 +33,7 @@ class StackWithRootTest extends Specification { stack.push("2") stack.push("3") - def newList = Lists.newArrayList(stack) + def newList = StreamSupport.stream(stack.spliterator(), false).collect(Collectors.toList()) then: newList == ["3", "2", "1", "root"]