Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 1 addition & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.hubspot</groupId>
<artifactId>basepom</artifactId>
<version>56.1</version>
<version>56.2</version>
</parent>

<groupId>com.hubspot.jinjava</groupId>
Expand All @@ -14,11 +14,6 @@
<description>Jinja templating engine implemented in Java</description>

<properties>
<basepom.check.skip-prettier>false</basepom.check.skip-prettier>

<basepom.prettier.prettier-java-version>0.7.0</basepom.prettier.prettier-java-version>
<basepom.prettier.extract-to-target-directory>false</basepom.prettier.extract-to-target-directory>

<dep.javassist.version>3.24.1-GA</dep.javassist.version>
<dep.plugin.jacoco.version>0.8.3</dep.plugin.jacoco.version>
<dep.guava.version>31.1-jre</dep.guava.version>
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/Jinjava.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
* @author jstehler
*/
public class Jinjava {

private ExpressionFactory expressionFactory;
private ExpressionFactory eagerExpressionFactory;
private ResourceLocator resourceLocator;
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/com/hubspot/jinjava/JinjavaConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import javax.el.ELResolver;

public class JinjavaConfig {

private final Charset charset;
private final Locale locale;
private final ZoneId timeZone;
Expand Down Expand Up @@ -314,6 +315,7 @@ public Features getFeatures() {
}

public static class Builder {

private Charset charset = StandardCharsets.UTF_8;
private Locale locale = Locale.ENGLISH;
private ZoneId timeZone = ZoneOffset.UTC;
Expand Down Expand Up @@ -495,8 +497,8 @@ public Builder withTokenScannerSymbols(TokenScannerSymbols tokenScannerSymbols)
@Deprecated
public Builder withIterateOverMapKeys(boolean iterateOverMapKeys) {
return withLegacyOverrides(
LegacyOverrides
.Builder.from(legacyOverrides)
LegacyOverrides.Builder
.from(legacyOverrides)
.withIterateOverMapKeys(iterateOverMapKeys)
.build()
);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/hubspot/jinjava/LegacyOverrides.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* LegacyOverrides.ALL signifies that all new functionality will be used; avoid legacy "bugs".
*/
public class LegacyOverrides {

public static final LegacyOverrides NONE = new LegacyOverrides.Builder().build();
public static final LegacyOverrides ALL = new LegacyOverrides.Builder()
.withEvaluateMapKeys(true)
Expand Down Expand Up @@ -88,6 +89,7 @@ public boolean isKeepNullableLoopValues() {
}

public static class Builder {

private boolean evaluateMapKeys = false;
private boolean iterateOverMapKeys = false;
private boolean usePyishObjectMapper = false;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/doc/JinjavaDoc.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.TreeMap;

public class JinjavaDoc {

private final Map<String, JinjavaDocExpTest> expTests = new TreeMap<>();
private final Map<String, JinjavaDocFilter> filters = new TreeMap<>();
private final Map<String, JinjavaDocFunction> functions = new TreeMap<>();
Expand Down
31 changes: 13 additions & 18 deletions src/main/java/com/hubspot/jinjava/doc/JinjavaDocFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.slf4j.LoggerFactory;

public class JinjavaDocFactory {

private static final Logger LOG = LoggerFactory.getLogger(JinjavaDocFactory.class);

private static final Class JINJAVA_DOC_CLASS =
Expand Down Expand Up @@ -61,9 +62,8 @@ private void addCodeSnippets(JinjavaDoc doc) {
if (tag instanceof EndTag) {
continue;
}
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
tag.getClass()
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
getJinjavaDocAnnotation(tag.getClass());

if (docAnnotation == null) {
LOG.warn(
Expand Down Expand Up @@ -92,9 +92,8 @@ private void addCodeSnippets(JinjavaDoc doc) {

private void addExpTests(JinjavaDoc doc) {
for (ExpTest t : jinjava.getGlobalContextCopy().getAllExpTests()) {
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
t.getClass()
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
getJinjavaDocAnnotation(t.getClass());

if (docAnnotation == null) {
LOG.warn(
Expand Down Expand Up @@ -133,9 +132,8 @@ private void addExpTests(JinjavaDoc doc) {

private void addFilterDocs(JinjavaDoc doc) {
for (Filter f : jinjava.getGlobalContextCopy().getAllFilters()) {
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
f.getClass()
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
getJinjavaDocAnnotation(f.getClass());

if (docAnnotation == null) {
LOG.warn(
Expand Down Expand Up @@ -190,9 +188,8 @@ private void addFnDocs(JinjavaDoc doc) {
}
}

com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = realMethod.getAnnotation(
com.hubspot.jinjava.doc.annotations.JinjavaDoc.class
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
realMethod.getAnnotation(com.hubspot.jinjava.doc.annotations.JinjavaDoc.class);

if (docAnnotation == null) {
LOG.warn(
Expand Down Expand Up @@ -235,9 +232,8 @@ private void addTagDocs(JinjavaDoc doc) {
if (t instanceof EndTag) {
continue;
}
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
t.getClass()
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
getJinjavaDocAnnotation(t.getClass());

if (docAnnotation == null) {
LOG.warn(
Expand Down Expand Up @@ -330,9 +326,8 @@ private String getTagSnippet(Tag tag) {
if (annotation != null) {
return annotation.code();
}
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
tag.getClass()
);
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation =
getJinjavaDocAnnotation(tag.getClass());
StringBuilder snippet = new StringBuilder("{% ");
snippet.append(tag.getName());
int i = 1;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/doc/JinjavaDocItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Map;

public abstract class JinjavaDocItem {

private final String name;
private final String desc;
private final String aliasOf;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/doc/JinjavaDocParam.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.hubspot.jinjava.doc;

public class JinjavaDocParam {

private final String name;
private final String type;
private final String desc;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.hubspot.jinjava.doc;

public class JinjavaDocSnippet {

private final String desc;
private final String code;
private final String output;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/doc/JinjavaDocTag.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Map;

public class JinjavaDocTag extends JinjavaDocItem {

private final boolean empty;

public JinjavaDocTag(
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/hubspot/jinjava/el/ExpressionResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
* Resolves Jinja expressions.
*/
public class ExpressionResolver {

private final JinjavaInterpreter interpreter;
private final ExpressionFactory expressionFactory;
private final JinjavaInterpreterResolver resolver;
Expand Down Expand Up @@ -92,8 +93,8 @@ private Object resolveExpression(String expression, boolean addToResolvedExpress
if (WhitespaceUtils.isWrappedWith(expression, "[", "]")) {
Arrays
.stream(expression.substring(1, expression.length() - 1).split(","))
.forEach(
substring -> interpreter.getContext().addResolvedExpression(substring.trim())
.forEach(substring ->
interpreter.getContext().addResolvedExpression(substring.trim())
);
}
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*/
public class ExtendedSyntaxBuilder extends Builder {

private static final long serialVersionUID = 1L;

public ExtendedSyntaxBuilder() {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/el/JinjavaELContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javax.el.ELResolver;

public class JinjavaELContext extends SimpleContext {

private JinjavaInterpreter interpreter;
private MacroFunctionMapper functionMapper;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
import org.apache.commons.lang3.StringUtils;

public class JinjavaInterpreterResolver extends SimpleResolver {
public static final ELResolver DEFAULT_RESOLVER_READ_ONLY = new CompositeELResolver() {

public static final ELResolver DEFAULT_RESOLVER_READ_ONLY = new CompositeELResolver() {
{
add(new ArrayELResolver(true));
add(new JinjavaListELResolver(true));
Expand All @@ -61,7 +61,6 @@ public class JinjavaInterpreterResolver extends SimpleResolver {
};

public static final ELResolver DEFAULT_RESOLVER_READ_WRITE = new CompositeELResolver() {

{
add(new ArrayELResolver(false));
add(new JinjavaListELResolver(false));
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/hubspot/jinjava/el/JinjavaProcessors.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.function.BiConsumer;

public class JinjavaProcessors {

private final BiConsumer<Node, JinjavaInterpreter> nodePreProcessor;
private final BiConsumer<Node, JinjavaInterpreter> nodePostProcessor;

Expand All @@ -30,6 +31,7 @@ public static Builder newBuilder(JinjavaProcessors processors) {
}

public static class Builder {

private BiConsumer<Node, JinjavaInterpreter> nodePreProcessor = (n, i) -> {};
private BiConsumer<Node, JinjavaInterpreter> nodePostProcessor = (n, i) -> {};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import javax.el.FunctionMapper;

public class MacroFunctionMapper extends FunctionMapper {

private final JinjavaInterpreter interpreter;
private Map<String, Method> map = Collections.emptyMap();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import javax.el.VariableMapper;

public class NoInvokeELContext extends ELContext {

private ELContext delegate;
private NoInvokeELResolver elResolver;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* so disallows modification and invocation which may result in modification of values.
*/
public class NoInvokeELResolver extends ELResolver {

private ELResolver delegate;

public NoInvokeELResolver(ELResolver delegate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import javax.el.ELException;

public class TruthyTypeConverter extends TypeConverterImpl {

private static final long serialVersionUID = 1L;
public static final int MAX_COLLECTION_STRING_LENGTH = 1_000_000;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import javax.el.MapELResolver;

public class TypeConvertingMapELResolver extends MapELResolver {

private static final TruthyTypeConverter TYPE_CONVERTER = new TruthyTypeConverter();

public TypeConvertingMapELResolver(boolean readOnly) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/hubspot/jinjava/el/ext/AbsOperator.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import de.odysseus.el.tree.impl.ast.AstUnary.SimpleOperator;

public class AbsOperator extends SimpleOperator {

public static final ExtensionToken TOKEN = new Scanner.ExtensionToken("+");
public static final AbsOperator OP = new AbsOperator();

Expand Down Expand Up @@ -47,7 +48,6 @@ public String toString() {

public static ExtensionHandler getHandler(boolean eager) {
return new ExtensionHandler(ExtensionPoint.UNARY) {

@Override
public AstNode createAstNode(AstNode... children) {
return eager ? new EagerAstUnary(children[0], OP) : new AstUnary(children[0], OP);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*
*/
public abstract class AbstractCallableMethod {

public static final Method EVAL_METHOD;

static {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/el/ext/AstDict.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import javax.el.ELContext;

public class AstDict extends AstLiteral {

protected final Map<AstNode, AstNode> dict;

public AstDict(Map<AstNode, AstNode> dict) {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/hubspot/jinjava/el/ext/AstList.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.apache.commons.lang3.StringUtils;

public class AstList extends AstLiteral {

protected final AstParameters elements;

public AstList(AstParameters elements) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import javax.el.ELContext;

public class AstNamedParameter extends AstLiteral {

private final AstIdentifier name;
private final AstNode value;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import javax.el.PropertyNotFoundException;

public class AstRangeBracket extends AstBracket {

protected final AstNode rangeMax;

public AstRangeBracket(
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/com/hubspot/jinjava/el/ext/BeanELResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,12 @@
* @see ELResolver
*/
public class BeanELResolver extends ELResolver {
private static PropertyNotFoundException propertyNotFoundException = new PropertyNotFoundException(
"Could not find property"
);

private static PropertyNotFoundException propertyNotFoundException =
new PropertyNotFoundException("Could not find property");

protected static final class BeanProperties {

private final Map<String, BeanProperty> map = new HashMap<String, BeanProperty>();

public BeanProperties(Class<?> baseClass) {
Expand All @@ -80,6 +81,7 @@ public BeanProperty getBeanProperty(String property) {
}

protected static final class BeanProperty {

private final PropertyDescriptor descriptor;

private Method readMethod;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ public String toString() {
return TOKEN.getImage();
}

public static final CollectionMembershipOperator OP = new CollectionMembershipOperator();
public static final CollectionMembershipOperator OP =
new CollectionMembershipOperator();
public static final Scanner.ExtensionToken TOKEN = new Scanner.ExtensionToken("in");

public static final ExtensionHandler HANDLER = getHandler(false);
public static final ExtensionHandler EAGER_HANDLER = getHandler(true);

private static ExtensionHandler getHandler(boolean eager) {
return new ExtensionHandler(ExtensionPoint.CMP) {

@Override
public AstNode createAstNode(AstNode... children) {
return eager
Expand Down
Loading