Skip to content

Commit

Permalink
feat: logging abstraction
Browse files Browse the repository at this point in the history
  • Loading branch information
zlataovce committed Jul 18, 2024
1 parent fc02d3a commit 9ef0354
Show file tree
Hide file tree
Showing 35 changed files with 228 additions and 173 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Build and publish

on:
push:
branches:
- master

permissions:
packages: write

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v2
with:
java-version: 11
cache: gradle
- name: Build and publish
run: ./gradlew publishAllPublicationsToGithubRepository
env:
PROGUARD_GITHUB_USERNAME: ${{ github.repository_owner }}
PROGUARD_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6 changes: 1 addition & 5 deletions base/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,8 @@ dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion}"
api "org.jetbrains.kotlin:kotlin-metadata-jvm:${kotlinVersion}"


implementation 'org.jetbrains:annotations:24.0.0'

implementation 'org.apache.logging.log4j:log4j-api:2.23.1'
implementation 'org.apache.logging.log4j:log4j-core:2.23.1'

testImplementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}"
testImplementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
testFixturesImplementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
Expand Down Expand Up @@ -137,7 +133,7 @@ publishing {
repositories {
maven {
name = 'Github'
url = uri('https://maven.pkg.github.com/guardsquare/proguard-core')
url = uri('https://maven.pkg.github.com/run-slicer/proguard-core')
credentials {
username = project.findProperty('PROGUARD_GITHUB_USERNAME')
password = project.findProperty('PROGUARD_GITHUB_TOKEN')
Expand Down
5 changes: 2 additions & 3 deletions base/src/main/java/proguard/analysis/CallResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.Metrics.MetricType;
import proguard.analysis.datastructure.CodeLocation;
import proguard.analysis.datastructure.Location;
Expand Down Expand Up @@ -76,6 +74,7 @@
import proguard.evaluation.value.TypedReferenceValue;
import proguard.evaluation.value.Value;
import proguard.evaluation.value.ValueFactory;
import proguard.util.Logger;
import proguard.util.PartialEvaluatorUtils;

/**
Expand Down Expand Up @@ -103,7 +102,7 @@
*/
public class CallResolver implements AttributeVisitor, ClassVisitor, InstructionVisitor {

private static final Logger log = LogManager.getLogger(CallResolver.class);
private static final Logger log = Logger.getLogger(CallResolver.class);
/** Used to fill the {@link Call#controlFlowDependent} flag. */
private final DominatorCalculator dominatorCalculator;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@

import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.defaults.PrecisionAdjustmentResult;
import proguard.analysis.cpa.interfaces.AbortOperator;
import proguard.analysis.cpa.interfaces.AbstractState;
Expand All @@ -34,6 +32,7 @@
import proguard.analysis.cpa.interfaces.StopOperator;
import proguard.analysis.cpa.interfaces.TransferRelation;
import proguard.analysis.cpa.interfaces.Waitlist;
import proguard.util.Logger;

/**
* This is the <a
Expand All @@ -45,7 +44,7 @@
*/
public class CpaAlgorithm implements Algorithm {

private static final Logger log = LogManager.getLogger(CpaAlgorithm.class);
private static final Logger log = Logger.getLogger(CpaAlgorithm.class);
private final TransferRelation transferRelation;
private final MergeOperator mergeOperator;
private final StopOperator stopOperator;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,10 @@
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.interfaces.AbstractState;
import proguard.analysis.cpa.interfaces.Precision;
import proguard.classfile.Signature;
import proguard.util.Logger;

/**
* A simple implementation of {@link BamCache} where the cache is implemented as a {@link HashMap}.
Expand All @@ -39,7 +38,7 @@
*/
public class BamCacheImpl<SignatureT extends Signature> implements BamCache<SignatureT> {

private static final Logger log = LogManager.getLogger(BamCacheImpl.class);
private static final Logger log = Logger.getLogger(BamCacheImpl.class);

private final Map<SignatureT, Map<HashKey, BlockAbstraction>> cache = new HashMap<>();
private int size = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
import java.util.Set;
import java.util.Stack;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.algorithms.CpaAlgorithm;
import proguard.analysis.cpa.defaults.BreadthFirstWaitlist;
import proguard.analysis.cpa.defaults.Cfa;
Expand All @@ -49,6 +47,7 @@
import proguard.analysis.datastructure.callgraph.Call;
import proguard.analysis.datastructure.callgraph.SymbolicCall;
import proguard.classfile.Signature;
import proguard.util.Logger;

/**
* This {@link TransferRelation} extends an analysis inter-procedurally. The transfer relation
Expand All @@ -67,7 +66,7 @@ public class BamTransferRelation<
SignatureT extends Signature>
implements TransferRelation {

private static final Logger log = LogManager.getLogger(BamTransferRelation.class);
private static final Logger log = Logger.getLogger(BamTransferRelation.class);
private final CpaWithBamOperators<CfaNodeT, CfaEdgeT, SignatureT> wrappedCpa;
// TODO: maybe we don't need the cfa
private final Cfa<CfaNodeT, CfaEdgeT, SignatureT> cfa;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.jvm.cfa.JvmCfa;
import proguard.analysis.cpa.jvm.cfa.edges.JvmAssumeCaseCfaEdge;
import proguard.analysis.cpa.jvm.cfa.edges.JvmAssumeCfaEdge;
Expand All @@ -51,6 +49,7 @@
import proguard.classfile.instruction.TableSwitchInstruction;
import proguard.classfile.instruction.VariableInstruction;
import proguard.classfile.instruction.visitor.InstructionVisitor;
import proguard.util.Logger;

/**
* This {@link AttributeVisitor} visits the {@link CodeAttribute} of a {@link Method} and performs
Expand Down Expand Up @@ -79,7 +78,7 @@ public class JvmIntraproceduralCfaFillerAllInstructionVisitor implements Attribu

private final JvmCfa cfa;
private static final Logger log =
LogManager.getLogger(JvmIntraproceduralCfaFillerAllInstructionVisitor.class);
Logger.getLogger(JvmIntraproceduralCfaFillerAllInstructionVisitor.class);

public JvmIntraproceduralCfaFillerAllInstructionVisitor(JvmCfa cfa) {
this.cfa = cfa;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.bam.BamCache;
import proguard.analysis.cpa.bam.BamCpa;
import proguard.analysis.cpa.bam.BlockAbstraction;
Expand Down Expand Up @@ -74,6 +72,7 @@
import proguard.classfile.instruction.VariableInstruction;
import proguard.classfile.instruction.visitor.InstructionVisitor;
import proguard.classfile.util.ClassUtil;
import proguard.util.Logger;

/**
* The {@link JvmMemoryLocationTransferRelation} computes the backward successors of an {@link
Expand Down Expand Up @@ -119,7 +118,7 @@ public class JvmMemoryLocationTransferRelation<
AbstractStateT extends LatticeAbstractState<AbstractStateT>>
implements TransferRelation {

private static final Logger log = LogManager.getLogger(JvmMemoryLocationTransferRelation.class);
private static final Logger log = Logger.getLogger(JvmMemoryLocationTransferRelation.class);
private final AbstractStateT threshold;
private final JvmCfa cfa;
private final BamCache<MethodSignature> cache;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
import static proguard.classfile.util.ClassUtil.internalTypeFromClassName;
import static proguard.classfile.util.ClassUtil.isExtendable;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.defaults.MapAbstractState;
import proguard.analysis.cpa.jvm.cfa.nodes.JvmCfaNode;
import proguard.analysis.cpa.jvm.state.JvmAbstractState;
Expand All @@ -37,10 +35,11 @@
import proguard.evaluation.value.Value;
import proguard.evaluation.value.ValueFactory;
import proguard.evaluation.value.object.AnalyzedObjectFactory;
import proguard.util.Logger;

/** */
public class JvmValueAbstractState extends JvmAbstractState<ValueAbstractState> {
private static final Logger logger = LogManager.getLogger(JvmValueAbstractState.class);
private static final Logger logger = Logger.getLogger(JvmValueAbstractState.class);

private final ValueFactory valueFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,12 @@
import static proguard.evaluation.value.BasicValueFactory.UNKNOWN_VALUE;

import java.util.Objects;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.defaults.LatticeAbstractState;
import proguard.analysis.cpa.interfaces.AbstractState;
import proguard.evaluation.value.IdentifiedReferenceValue;
import proguard.evaluation.value.TypedReferenceValue;
import proguard.evaluation.value.Value;
import proguard.util.Logger;

/**
* An {@link AbstractState} for tracking JVM values.
Expand All @@ -39,7 +38,7 @@
*/
public class ValueAbstractState implements LatticeAbstractState<ValueAbstractState> {

private static final Logger logger = LogManager.getLogger(ValueAbstractState.class);
private static final Logger logger = Logger.getLogger(ValueAbstractState.class);
public static final ValueAbstractState UNKNOWN = new ValueAbstractState(UNKNOWN_VALUE);
private Value value;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@
import java.util.List;
import java.util.Objects;
import java.util.Set;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.cpa.defaults.LatticeAbstractState;
import proguard.analysis.cpa.defaults.MapAbstractState;
import proguard.analysis.cpa.jvm.cfa.nodes.JvmCfaNode;
import proguard.analysis.cpa.jvm.state.heap.JvmHeapAbstractState;
import proguard.util.Logger;

/**
* A shallow heap models objects as atomic abstract states thus having only one level of depth.
Expand All @@ -36,7 +35,7 @@
*/
public class JvmShallowHeapAbstractState<ReferenceT, StateT extends LatticeAbstractState<StateT>>
implements JvmHeapAbstractState<StateT> {
private static final Logger logger = LogManager.getLogger(JvmShallowHeapAbstractState.class);
private static final Logger logger = Logger.getLogger(JvmShallowHeapAbstractState.class);

public final MapAbstractState<ReferenceT, StateT> referenceToObject;
protected final Class<ReferenceT> referenceClass;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.analysis.CallResolver;
import proguard.analysis.CallVisitor;
import proguard.analysis.datastructure.CodeLocation;
Expand All @@ -34,6 +32,7 @@
import proguard.classfile.visitor.MemberVisitor;
import proguard.evaluation.value.IdentifiedReferenceValue;
import proguard.evaluation.value.Value;
import proguard.util.Logger;

/**
* Represents a method call. If the call target is a {@link Method} that is present in the class
Expand All @@ -44,7 +43,7 @@
*/
public abstract class Call {

private static final Logger log = LogManager.getLogger(Call.class);
private static final Logger log = Logger.getLogger(Call.class);
/** The location where the call was invoked. */
public final CodeLocation caller;
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,11 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.classfile.ClassPool;
import proguard.classfile.Clazz;
import proguard.classfile.MethodSignature;
import proguard.util.CallGraphWalker;
import proguard.util.Logger;

/**
* Collection of all {@link Call}s in a program, optimized for retrieval of incoming and outgoing
Expand All @@ -37,7 +36,7 @@
*/
public class CallGraph {

private static final transient Logger log = LogManager.getLogger(CallGraph.class);
private static final transient Logger log = Logger.getLogger(CallGraph.class);
public final Map<MethodSignature, Set<Call>> incoming;
public final Map<MethodSignature, Set<Call>> outgoing;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
*/
package proguard.classfile.attribute.visitor;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.classfile.Clazz;
import proguard.classfile.Method;
import proguard.classfile.attribute.Attribute;
Expand All @@ -40,6 +38,7 @@
import proguard.exception.ProguardCoreException;
import proguard.util.ArrayUtil;
import proguard.util.CircularIntBuffer;
import proguard.util.Logger;

/**
* This {@link AttributeVisitor} computes the maximum stack size of the code attributes that it
Expand All @@ -58,7 +57,7 @@ public class MaxStackSizeComputer
private static boolean DEBUG = System.getProperty("ssc") != null;
//*/

private static final Logger logger = LogManager.getLogger(MaxStackSizeComputer.class);
private static final Logger logger = Logger.getLogger(MaxStackSizeComputer.class);
private final StackSizeConsumer stackSizeConsumer;

protected boolean[] evaluated = new boolean[ClassEstimates.TYPICAL_CODE_LENGTH];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import static proguard.classfile.kotlin.KotlinConstants.TYPE_KOTLIN_JVM_JVMNAME;
import static proguard.classfile.util.ClassUtil.internalSimpleClassName;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.classfile.ClassConstants;
import proguard.classfile.Clazz;
import proguard.classfile.Field;
Expand Down Expand Up @@ -113,6 +111,7 @@
import proguard.classfile.visitor.MemberVisitor;
import proguard.exception.ErrorId;
import proguard.exception.ProguardCoreException;
import proguard.util.Logger;

/**
* This {@link ClassVisitor} fixes references of constant pool entries, fields, methods, attributes
Expand All @@ -135,7 +134,7 @@ public class ClassReferenceFixer
LocalVariableTypeInfoVisitor,
AnnotationVisitor,
ElementValueVisitor {
private static final Logger logger = LogManager.getLogger(ClassReferenceFixer.class);
private static final Logger logger = Logger.getLogger(ClassReferenceFixer.class);

private NameGenerationStrategy newNameStrategy;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import proguard.classfile.Clazz;
import proguard.classfile.Method;
import proguard.classfile.ProgramClass;
Expand Down Expand Up @@ -74,6 +72,7 @@
import proguard.exception.ErrorId;
import proguard.exception.ProguardCoreException;
import proguard.util.ArrayUtil;
import proguard.util.Logger;

/**
* This {@link AttributeVisitor} accumulates specified changes to code, and then applies these
Expand Down Expand Up @@ -149,7 +148,7 @@ public class CodeAttributeEditor

private static final int LABEL_FLAG = 0x20000000;

private static final Logger logger = LogManager.getLogger(CodeAttributeEditor.class);
private static final Logger logger = Logger.getLogger(CodeAttributeEditor.class);

private final boolean updateFrameSizes;
private final boolean shrinkInstructions;
Expand Down
Loading

0 comments on commit 9ef0354

Please sign in to comment.