Skip to content

Commit cb98485

Browse files
committed
Use Map and Set instead of ImmutableMap and ImmutableSet for less churn
1 parent c13edd4 commit cb98485

8 files changed

Lines changed: 23 additions & 50 deletions

File tree

pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,6 @@
104104
<artifactId>immutables-exceptions</artifactId>
105105
<version>${dep.hubspot-immutables.version}</version>
106106
</dependency>
107-
<dependency>
108-
<groupId>com.hubspot.immutables</groupId>
109-
<artifactId>immutable-collection-encodings</artifactId>
110-
<version>${dep.hubspot-immutables.version}</version>
111-
</dependency>
112107
<dependency>
113108
<groupId>com.hubspot</groupId>
114109
<artifactId>algebra</artifactId>

src/main/java/com/hubspot/jinjava/JinjavaConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
import java.time.ZoneId;
4646
import java.time.ZoneOffset;
4747
import java.util.Locale;
48+
import java.util.Map;
49+
import java.util.Set;
4850
import java.util.function.BiConsumer;
4951
import javax.el.ELResolver;
5052
import org.immutables.value.Value;
@@ -98,8 +100,6 @@ default int getMaxMacroRecursionDepth() {
98100
}
99101

100102
Map<Library, Set<String>> getDisabled();
101-
Set<String> getRestrictedMethods();
102-
Set<String> getRestrictedProperties();
103103

104104
@Value.Default
105105
default boolean isFailOnUnknownTokens() {
Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
11
package com.hubspot.jinjava;
22

3-
import com.hubspot.immutable.collection.encoding.ImmutableListEncodingEnabled;
4-
import com.hubspot.immutable.collection.encoding.ImmutableMapEncodingEnabled;
5-
import com.hubspot.immutable.collection.encoding.ImmutableSetEncodingEnabled;
63
import org.immutables.value.Value;
74

85
@Value.Style(
96
init = "set*",
107
get = { "is*", "get*" } // Detect 'get' and 'is' prefixes in accessor methods
118
)
12-
@ImmutableSetEncodingEnabled
13-
@ImmutableListEncodingEnabled
14-
@ImmutableMapEncodingEnabled
159
public @interface JinjavaImmutableStyle {
1610
@Value.Style(
1711
init = "with*",
1812
get = { "is*", "get*" } // Detect 'get' and 'is' prefixes in accessor methods
1913
)
20-
@ImmutableSetEncodingEnabled
21-
@ImmutableListEncodingEnabled
22-
@ImmutableMapEncodingEnabled
2314
@interface WithStyle {
2415
}
2516
}

src/main/java/com/hubspot/jinjava/LegacyOverrides.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* LegacyOverrides.ALL signifies that all new functionality will be used; avoid legacy "bugs".
99
*/
1010
@Value.Immutable(singleton = true)
11-
@JinjavaImmutableStyle
11+
@JinjavaImmutableStyle.WithStyle
1212
public interface LegacyOverrides extends WithLegacyOverrides {
1313
LegacyOverrides NONE = new Builder().build();
1414
LegacyOverrides THREE_POINT_0 = new Builder()

src/main/java/com/hubspot/jinjava/interpret/Context.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.google.common.collect.SetMultimap;
2424
import com.google.common.collect.Sets;
2525
import com.hubspot.jinjava.interpret.AutoCloseableSupplier.AutoCloseableImpl;
26-
import com.hubspot.jinjava.interpret.ErrorHandlingStrategy.TemplateErrorTypeHandlingStrategy;
2726
import com.hubspot.jinjava.lib.Importable;
2827
import com.hubspot.jinjava.lib.expression.ExpressionStrategy;
2928
import com.hubspot.jinjava.lib.exptest.ExpTest;
@@ -63,7 +62,7 @@ public class Context extends ScopeMap<String, Object> {
6362
public static final String IMPORT_RESOURCE_ALIAS_KEY = "import_resource_alias";
6463

6564
private SetMultimap<String, String> dependencies = HashMultimap.create();
66-
private ImmutableMap<Library, ImmutableSet<String>> disabled;
65+
private Map<Library, Set<String>> disabled;
6766

6867
public boolean isValidationMode() {
6968
return contextConfiguration.isValidationMode();
@@ -129,15 +128,15 @@ public Context(Context parent, Map<String, ?> bindings) {
129128
public Context(
130129
Context parent,
131130
Map<String, ?> bindings,
132-
ImmutableMap<Library, ImmutableSet<String>> disabled
131+
Map<Library, Set<String>> disabled
133132
) {
134133
this(parent, bindings, disabled, true);
135134
}
136135

137136
public Context(
138137
Context parent,
139138
Map<String, ?> bindings,
140-
ImmutableMap<Library, ImmutableSet<String>> disabled,
139+
Map<Library, Set<String>> disabled,
141140
boolean makeNewCallStacks
142141
) {
143142
super(parent);
@@ -587,7 +586,7 @@ public boolean isFunctionDisabled(String name) {
587586
if (disabled == null) {
588587
return false;
589588
}
590-
ImmutableSet<String> disabledFunctions = disabled.get(Library.FUNCTION);
589+
Set<String> disabledFunctions = disabled.get(Library.FUNCTION);
591590
return disabledFunctions != null && disabledFunctions.contains(name);
592591
}
593592

@@ -611,7 +610,7 @@ public Collection<ELFunctionDefinition> getAllFunctions() {
611610
if (disabled == null) {
612611
return fns;
613612
}
614-
ImmutableSet<String> disabledFunctions = disabled.get(Library.FUNCTION);
613+
Set<String> disabledFunctions = disabled.get(Library.FUNCTION);
615614
if (disabledFunctions == null) {
616615
return fns;
617616
}

src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.google.common.base.Strings;
2222
import com.google.common.collect.ArrayListMultimap;
2323
import com.google.common.collect.ImmutableMap;
24-
import com.google.common.collect.ImmutableSet;
2524
import com.google.common.collect.Iterables;
2625
import com.google.common.collect.Lists;
2726
import com.google.common.collect.Multimap;
@@ -34,7 +33,6 @@
3433
import com.hubspot.jinjava.features.BuiltInFeatures;
3534
import com.hubspot.jinjava.interpret.AutoCloseableSupplier.AutoCloseableImpl;
3635
import com.hubspot.jinjava.interpret.Context.TemporaryValueClosable;
37-
import com.hubspot.jinjava.interpret.ErrorHandlingStrategy.TemplateErrorTypeHandlingStrategy;
3836
import com.hubspot.jinjava.interpret.TemplateError.ErrorItem;
3937
import com.hubspot.jinjava.interpret.TemplateError.ErrorReason;
4038
import com.hubspot.jinjava.interpret.TemplateError.ErrorType;
@@ -197,9 +195,7 @@ public InterpreterScopeClosable enterScope() {
197195
return enterScope(null);
198196
}
199197

200-
public InterpreterScopeClosable enterScope(
201-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled
202-
) {
198+
public InterpreterScopeClosable enterScope(Map<Context.Library, Set<String>> disabled) {
203199
context = new Context(context, null, disabled);
204200
scopeDepth++;
205201
return new InterpreterScopeClosable();

src/main/java/com/hubspot/jinjava/util/EagerReconstructionUtils.java

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.google.common.annotations.Beta;
44
import com.google.common.collect.ImmutableMap;
5-
import com.google.common.collect.ImmutableSet;
65
import com.hubspot.jinjava.el.ext.AbstractCallableMethod;
76
import com.hubspot.jinjava.interpret.Context;
87
import com.hubspot.jinjava.interpret.Context.Library;
@@ -466,11 +465,9 @@ public static String buildSetTag(
466465
if (deferredValuesToSet.isEmpty()) {
467466
return "";
468467
}
469-
ImmutableMap<Library, ImmutableSet<String>> disabled = interpreter
470-
.getConfig()
471-
.getDisabled();
468+
Map<Library, Set<String>> disabled = interpreter.getConfig().getDisabled();
472469
if (disabled != null) {
473-
ImmutableSet<String> disabledTags = disabled.get(Library.TAG);
470+
Set<String> disabledTags = disabled.get(Library.TAG);
474471
if (disabledTags != null && disabledTags.contains(SetTag.TAG_NAME)) {
475472
throw new DisabledException("set tag disabled");
476473
}
@@ -539,11 +536,9 @@ public static String buildBlockSetTag(
539536
JinjavaInterpreter interpreter,
540537
boolean registerDeferredToken
541538
) {
542-
ImmutableMap<Library, ImmutableSet<String>> disabled = interpreter
543-
.getConfig()
544-
.getDisabled();
539+
Map<Library, Set<String>> disabled = interpreter.getConfig().getDisabled();
545540
if (disabled != null) {
546-
ImmutableSet<String> disabledTags = disabled.get(Library.TAG);
541+
Set<String> disabledTags = disabled.get(Library.TAG);
547542
if (disabledTags != null && disabledTags.contains(SetTag.TAG_NAME)) {
548543
throw new DisabledException("set tag disabled");
549544
}
@@ -595,11 +590,9 @@ public static String buildDoUpdateTag(
595590
String updateString,
596591
JinjavaInterpreter interpreter
597592
) {
598-
ImmutableMap<Library, ImmutableSet<String>> disabled = interpreter
599-
.getConfig()
600-
.getDisabled();
593+
Map<Library, Set<String>> disabled = interpreter.getConfig().getDisabled();
601594
if (disabled != null) {
602-
ImmutableSet<String> disabledTags = disabled.get(Library.TAG);
595+
Set<String> disabledTags = disabled.get(Library.TAG);
603596
if (disabledTags != null && disabledTags.contains(DoTag.TAG_NAME)) {
604597
throw new DisabledException("do tag disabled");
605598
}
@@ -670,11 +663,9 @@ public static String wrapInTag(
670663
JinjavaInterpreter interpreter,
671664
boolean registerDeferredToken
672665
) {
673-
ImmutableMap<Library, ImmutableSet<String>> disabled = interpreter
674-
.getConfig()
675-
.getDisabled();
666+
Map<Library, Set<String>> disabled = interpreter.getConfig().getDisabled();
676667
if (disabled != null) {
677-
ImmutableSet<String> disabledTags = disabled.get(Library.TAG);
668+
Set<String> disabledTags = disabled.get(Library.TAG);
678669
if (disabledTags != null && disabledTags.contains(tagNameToWrap)) {
679670
throw new DisabledException(String.format("%s tag disabled", tagNameToWrap));
680671
}

src/test/java/com/hubspot/jinjava/el/ExpressionResolverTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.List;
2626
import java.util.Map;
2727
import java.util.Objects;
28+
import java.util.Set;
2829
import java.util.function.Supplier;
2930
import org.junit.After;
3031
import org.junit.Before;
@@ -335,7 +336,7 @@ public void itWillNotReturnClassObjects() {
335336

336337
@Test
337338
public void itBlocksDisabledTags() {
338-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled = ImmutableMap.of(
339+
Map<Context.Library, Set<String>> disabled = ImmutableMap.of(
339340
Context.Library.TAG,
340341
ImmutableSet.of("raw")
341342
);
@@ -357,7 +358,7 @@ public void itBlocksDisabledTags() {
357358
public void itBlocksDisabledTagsInIncludes() {
358359
final String jinja = "top {% include \"tags/includetag/raw.html\" %}";
359360

360-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled = ImmutableMap.of(
361+
Map<Context.Library, Set<String>> disabled = ImmutableMap.of(
361362
Context.Library.TAG,
362363
ImmutableSet.of("raw")
363364
);
@@ -376,7 +377,7 @@ public void itBlocksDisabledTagsInIncludes() {
376377

377378
@Test
378379
public void itBlocksDisabledFilters() {
379-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled = ImmutableMap.of(
380+
Map<Context.Library, Set<String>> disabled = ImmutableMap.of(
380381
Context.Library.FILTER,
381382
ImmutableSet.of("truncate")
382383
);
@@ -396,7 +397,7 @@ public void itBlocksDisabledFilters() {
396397

397398
@Test
398399
public void itBlocksDisabledFunctions() {
399-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled = ImmutableMap.of(
400+
Map<Context.Library, Set<String>> disabled = ImmutableMap.of(
400401
Library.FUNCTION,
401402
ImmutableSet.of(":range")
402403
);
@@ -422,7 +423,7 @@ public void itBlocksDisabledFunctions() {
422423

423424
@Test
424425
public void itBlocksDisabledExpTests() {
425-
ImmutableMap<Context.Library, ImmutableSet<String>> disabled = ImmutableMap.of(
426+
Map<Context.Library, Set<String>> disabled = ImmutableMap.of(
426427
Context.Library.EXP_TEST,
427428
ImmutableSet.of("even")
428429
);

0 commit comments

Comments
 (0)