Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .jules/bolt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Bolt's Journal

## 2025-01-05 - [Initial Setup]
**Learning:** The journal file was missing. I am initializing it to track future performance learnings.
**Action:** Ensure this file exists and is populated with critical learnings as they arise.
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
package net.evendanan.bazel.mvn.merger;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Nonnull;

public abstract class GraphMemoizator<T> {
private final Map<String, T> cache = new HashMap<>();
private final Map<String, T> cache = new ConcurrentHashMap<>();

@Nonnull
protected abstract T calculate(@Nonnull T original);

@Nonnull
public T map(@Nonnull T original) {
final String key = getKeyForObject(original);
if (cache.containsKey(key)) {
return cache.get(key);
} else {
final T revised = calculate(original);
cache.put(key, revised);
return revised;
}
return cache.computeIfAbsent(key, k -> calculate(original));
}

protected abstract String getKeyForObject(final T object);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Collection;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import net.evendanan.bazel.mvn.api.DependencyTools;
Expand All @@ -18,7 +18,7 @@ public class SourcesJarLocator {
private static final String SOURCES_CLASSIFIER = "sources";

private final ConnectionFactory mConnectionFactory;
private final Map<String, String> mURLCache = new HashMap<>();
private final Map<String, String> mURLCache = new ConcurrentHashMap<>();

public SourcesJarLocator() {
this(url -> (HttpURLConnection) url.openConnection());
Expand All @@ -31,7 +31,7 @@ public SourcesJarLocator() {

private static Collection<Dependency> fillSourcesAttribute(
Collection<Dependency> dependencies, DependencyMemoizator memoizator) {
return dependencies.stream().map(memoizator::map).collect(Collectors.toList());
return dependencies.parallelStream().map(memoizator::map).collect(Collectors.toList());
}

public Collection<Dependency> fillSourcesAttribute(Collection<Dependency> dependencies) {
Expand Down