A solution to fix obfuscated Java services after ProGuard has run

Overview

ProGuard Service Mapper

GitHub license Maven Package GitHub branch checks state Maven Central Sonatype Nexus (Snapshots)

This is a service mapper for the ProGuard Java bytecode obfuscator.

It fixes the issue that files in the META-INF/services directory are not renamed or adapted to the new class names.

It replaces the original Jar file with a new one that contains the renamed services.

It consists of the following modules:

ProGuard Service Mapper CLI

For convenience, the service mapper can be run from the command line. Withouth any additional arguments, it will print help information.

Usage

$ java -jar proguard-service-mapper-cli-<version>.jar -i <input-file> -m <mapping-file>

ProGuard Service Mapper Maven

This plugin is intended to be integrated into your Maven build process and run after the ProGuard Maven plugin.

Usage in Maven

<plugin>
  <groupId>com.github.gianttreelp.proguardservicesmapper</groupId>
  <artifactId>proguard-service-mapper-maven-plugin</artifactId>
  <version>1.0-SNAPSHOT</version> <!-- Update with the version you want to use, preferably the latest -->
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>map-proguard</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <input><!-- The obfuscated input file --></input>
    <mapping><!-- The mapping file from ProGuard --></mapping>
  </configuration>
</plugin>
Comments
  • Bump jvm from 1.7.22 to 1.8.0

    Bump jvm from 1.7.22 to 1.8.0

    Bumps jvm from 1.7.22 to 1.8.0.

    Release notes

    Sourced from jvm's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from jvm's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump jvm from 1.7.21 to 1.7.22

    Bump jvm from 1.7.21 to 1.7.22

    Bumps jvm from 1.7.21 to 1.7.22.

    Release notes

    Sourced from jvm's releases.

    Kotlin 1.7.22

    This is a technical release. It doesn't contain any fixes that aren't included in Kotlin 1.7.21. Version 1.7.22 of the Kotlin plugin will not be available for downloading or installing in any IDEs.

    Checksums

    File Sha256
    kotlin-compiler-1.7.22.zip 9db4b467743c1aea8a21c08e1c286bc2aeb93f14c7ba2037dbd8f48adc357d83
    kotlin-native-linux-x86_64-1.7.22.tar.gz dd004d520056aba67f2955a3bec5af75f8f2d78b179d4b5f733a77e3eef57aff
    kotlin-native-macos-x86_64-1.7.22.tar.gz 153fa411fa8c993ce2635e2504e9b102cb05362cc794b66ef9def26a78b427b5
    kotlin-native-macos-aarch64-1.7.22.tar.gz 4ffcd76c77cc824eff8addd5e2a73da4f3bbd3584fa9ef282b3f669c45426b1e
    kotlin-native-windows-x86_64-1.7.22.zip 3bccd23479848ec61c56ed5760010456d17acbe88a00a1f10fb38eae256f2e92
    Commits
    • be3c5a5 Instruction for building 1.7.21 release
    • 80eb82a Instructions for building 1.7.20 release
    • cb51803 Scripts for building Kotlin repository
    • 7784d10 Change bootstrap to 1.7.21-release-254
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump jvm from 1.7.20 to 1.7.21

    Bump jvm from 1.7.20 to 1.7.21

    Bumps jvm from 1.7.20 to 1.7.21.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump maven-plugin-plugin from 3.6.4 to 3.7.0 in /proguard-services-mapper-maven

    Bump maven-plugin-plugin from 3.6.4 to 3.7.0 in /proguard-services-mapper-maven

    Bumps maven-plugin-plugin from 3.6.4 to 3.7.0.

    Release notes

    Sourced from maven-plugin-plugin's releases.

    3.7.0

    Bug

    • [MPLUGIN-298] - The plugin descriptor generated by plugin:descriptor does not consider @ see javadoc taglets
    • [MPLUGIN-394] - Report-Mojo doesn't respect input encoding
    • [MPLUGIN-403] - Generating site reports for plugin results in NoSuchMethodError
    • [MPLUGIN-404] - JDK Requirements in plugin-info.html: Consider property "maven.compiler.release"
    • [MPLUGIN-420] - Parameters documentation inheriting @ since from Mojo can be confusing
    • [MPLUGIN-428] - Don't emit warning for missing javadoc URL of primitives
    • [MPLUGIN-429] - Don't emit warning for missing javadoc URI if no javadoc sources are configured
    • [MPLUGIN-438] - Parameter description should be taken from annotated item

    New Feature

    • [MPLUGIN-9] - Add link to javadoc in configuration description page for user defined types of Mojos.
    • [MPLUGIN-396] - Allow only @ Deprecated annotation without @ deprecated javadoc tag
    • [MPLUGIN-400] - add system requirements history section
    • [MPLUGIN-402] - report: allow to generate usage section in plugin-info.html with true
    • [MPLUGIN-419] - Allow @ Parameter on setters methods
    • [MPLUGIN-423] - Extract plugin report into its own plugin
    • [MPLUGIN-427] - report: Expose generics information of Collection and Map types

    Improvement

    • [MPLUGIN-297] - plugin-info.html should contain a better Usage section
    • [MPLUGIN-390] - Do not overwrite generate files with no content change
    • [MPLUGIN-393] - Upgrade to JUnit 5 and @ Inject annotations
    • [MPLUGIN-398] - Support for java 20 - ASM 9.4
    • [MPLUGIN-405] - Don't print empty Memory, Disk Space in System Requirements
    • [MPLUGIN-408] - simplification in helpmojo build
    • [MPLUGIN-411] - Get rid of plexus-compiler-manager from tests
    • [MPLUGIN-412] - Use Maven core artifacts in provided scope
    • [MPLUGIN-417] - report and descriptor goal need to evaluate Javadoc comments differently
    • [MPLUGIN-433] - Allow to reference aggregator javadoc from plugin report

    Task

    • [MPLUGIN-378] - Detect legacy/javadoc Mojo definitions, warn to use Java 5 annotations
    • [MPLUGIN-389] - Update level to Java 8
    • [MPLUGIN-391] - Deprecate scripting support for mojos
    • [MPLUGIN-406] - Deprecate requirements parameter in report Mojo
    • [MPLUGIN-407] - Remove duplicate code from PluginReport
    • [MPLUGIN-409] - Prepare for Doxia (Sitetools) 2.0.0
    • [MPLUGIN-430] - Fix documentation for maven-plugin-report-plugin
    • [MPLUGIN-431] - Remove deprecated items from new maven-plugin-report-plugin

    ... (truncated)

    Commits
    • 0f2c0d5 [maven-release-plugin] prepare release maven-plugin-tools-3.7.0
    • 76d99af [MPLUGIN-438] Parameter description should be taken from annotated item
    • 5b60490 [MPLUGIN-435] Revert MPLUGIN-410. Drop @​Parameter.implementation and keep it ...
    • ebdb063 [MPLUGIN-437] Fixes to the plugin descriptor generation (#167)
    • 339fc29 [MPLUGIN-433] Allow to disable link validation (#162)
    • a191579 [MPLUGIN-422] Upgrade to plexus-utils 3.5.0 (#164)
    • 664c16e [MPLUGIN-431] Remove deprecated items from new maven-plugin-report-plugin
    • 8a76400 [MPLUGIN-427] only emit simple parameter type for configuration (#163)
    • 322a9bb [MPLUGIN-434] Improve dependency management
    • a0ec0ba [MPLUGIN-427] Expose generics information of parameter types in report (#159)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump maven-plugin-annotations from 3.6.4 to 3.7.0 in /proguard-services-mapper-maven

    Bump maven-plugin-annotations from 3.6.4 to 3.7.0 in /proguard-services-mapper-maven

    Bumps maven-plugin-annotations from 3.6.4 to 3.7.0.

    Release notes

    Sourced from maven-plugin-annotations's releases.

    3.7.0

    Bug

    • [MPLUGIN-298] - The plugin descriptor generated by plugin:descriptor does not consider @ see javadoc taglets
    • [MPLUGIN-394] - Report-Mojo doesn't respect input encoding
    • [MPLUGIN-403] - Generating site reports for plugin results in NoSuchMethodError
    • [MPLUGIN-404] - JDK Requirements in plugin-info.html: Consider property "maven.compiler.release"
    • [MPLUGIN-420] - Parameters documentation inheriting @ since from Mojo can be confusing
    • [MPLUGIN-428] - Don't emit warning for missing javadoc URL of primitives
    • [MPLUGIN-429] - Don't emit warning for missing javadoc URI if no javadoc sources are configured
    • [MPLUGIN-438] - Parameter description should be taken from annotated item

    New Feature

    • [MPLUGIN-9] - Add link to javadoc in configuration description page for user defined types of Mojos.
    • [MPLUGIN-396] - Allow only @ Deprecated annotation without @ deprecated javadoc tag
    • [MPLUGIN-400] - add system requirements history section
    • [MPLUGIN-402] - report: allow to generate usage section in plugin-info.html with true
    • [MPLUGIN-419] - Allow @ Parameter on setters methods
    • [MPLUGIN-423] - Extract plugin report into its own plugin
    • [MPLUGIN-427] - report: Expose generics information of Collection and Map types

    Improvement

    • [MPLUGIN-297] - plugin-info.html should contain a better Usage section
    • [MPLUGIN-390] - Do not overwrite generate files with no content change
    • [MPLUGIN-393] - Upgrade to JUnit 5 and @ Inject annotations
    • [MPLUGIN-398] - Support for java 20 - ASM 9.4
    • [MPLUGIN-405] - Don't print empty Memory, Disk Space in System Requirements
    • [MPLUGIN-408] - simplification in helpmojo build
    • [MPLUGIN-411] - Get rid of plexus-compiler-manager from tests
    • [MPLUGIN-412] - Use Maven core artifacts in provided scope
    • [MPLUGIN-417] - report and descriptor goal need to evaluate Javadoc comments differently
    • [MPLUGIN-433] - Allow to reference aggregator javadoc from plugin report

    Task

    • [MPLUGIN-378] - Detect legacy/javadoc Mojo definitions, warn to use Java 5 annotations
    • [MPLUGIN-389] - Update level to Java 8
    • [MPLUGIN-391] - Deprecate scripting support for mojos
    • [MPLUGIN-406] - Deprecate requirements parameter in report Mojo
    • [MPLUGIN-407] - Remove duplicate code from PluginReport
    • [MPLUGIN-409] - Prepare for Doxia (Sitetools) 2.0.0
    • [MPLUGIN-430] - Fix documentation for maven-plugin-report-plugin
    • [MPLUGIN-431] - Remove deprecated items from new maven-plugin-report-plugin

    ... (truncated)

    Commits
    • 0f2c0d5 [maven-release-plugin] prepare release maven-plugin-tools-3.7.0
    • 76d99af [MPLUGIN-438] Parameter description should be taken from annotated item
    • 5b60490 [MPLUGIN-435] Revert MPLUGIN-410. Drop @​Parameter.implementation and keep it ...
    • ebdb063 [MPLUGIN-437] Fixes to the plugin descriptor generation (#167)
    • 339fc29 [MPLUGIN-433] Allow to disable link validation (#162)
    • a191579 [MPLUGIN-422] Upgrade to plexus-utils 3.5.0 (#164)
    • 664c16e [MPLUGIN-431] Remove deprecated items from new maven-plugin-report-plugin
    • 8a76400 [MPLUGIN-427] only emit simple parameter type for configuration (#163)
    • 322a9bb [MPLUGIN-434] Improve dependency management
    • a0ec0ba [MPLUGIN-427] Expose generics information of parameter types in report (#159)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump jvm from 1.7.10 to 1.7.20

    Bump jvm from 1.7.10 to 1.7.20

    Bumps jvm from 1.7.10 to 1.7.20.

    Release notes

    Sourced from jvm's releases.

    Kotlin 1.7.20

    1.7.20

    Analysis API

    • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
    • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading

    Analysis API. FE1.0

    • KT-51962 Analysis API: Finish Analysis API for FE1.0

    Analysis API. FIR

    • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
    • KT-50236 Fix OOB modification trackers for non-Kotlin code
    • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
    • KT-50868 Analysis API: decompiled type aliases are not resolved

    Compiler

    • KT-53739 Builder inference, extension hides members
    • KT-53733 Kotlin/Native: update source documentation for the new default memory manager
    • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
    • KT-53480 Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$string
    • KT-52843 Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by Long
    • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
    • KT-53475 Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"

    New Features

    • KT-52495 Support until operator in back-ends
    • KT-52420 Implement resolve of until operator
    • KT-52419 Implement until operator in the parser
      • KT-33755 Kotlin/Native: Provide a way to customize a bundle Identifier of a generated framework
    • KT-51665 FIR: implement label resolve for "typed this" case
    • KT-52361 Report warning on potentially empty intersection types

    Performance Improvements

    • KT-47816 Disable script discovery for non-script environments
    • KT-48635 JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classes
    • KT-23397 Optimize out field for property delegate when it's safe (JVM)

    Fixes

    • KT-53272 Backend Internal error: Exception during IR lowering / No such value argument slot: 2
    • KT-53124 Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variables
    • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
    • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
    • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project

    ... (truncated)

    Changelog

    Sourced from jvm's changelog.

    1.7.20

    Compiler

    New Features

    • KT-52495 Support until operator in back-ends
    • KT-52420 Implement resolve of until operator
    • KT-52419 Implement until operator in the parser

    Fixes

    • KT-53947 IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER
    • KT-51234 Context receivers can be duplicated in function declaration
    • KT-51576 Context receivers: "AssertionError: Callers must check that current token is IDENTIFIER followed with '@'" with at character
    • KT-49479 JVM / IR: "IllegalStateException: IrErrorType" during IR lowering with non-trivial recursion calls
    • KT-52270 NullPointerException caused by braces on if-else returning a method reference inside lambda
    • KT-47621 False negative INVISIBLE_MEMBER on call to inaccessible protected synthetic property setter
    • KT-37796 NI: "ISE: Error type encountered" when inferring type of a property that delegates to itself
    • KT-45430 PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression: toString()" with recursive function call in "also" block in nontrivial context
    • KT-52691 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl with intertwined functional interfaces
    • KT-52822 Fix contract for KtElement.getReference()
    • KT-50223 IndexOutOfBoundsException from ClassicTypeSystemContext$DefaultImpls.getParameter during call resolution
    • KT-51963 Change Maven version to 1.7.255
    • KT-47664 Incorrect type checking in the case of generic types
    • KT-48765 NI: Inferred type does not respect the bound of type variable
    • KT-51243 False positive error "No required context receiver" inside contextual lambda
    • KT-43541 TYPE_MISMATCH for member function which is not occur for top level function during unsafe cast
    • KT-51016 [FIR] False positive OVERLOAD_RESOLUTION_AMBIGUITY between two extensions on different supertypes
    • KT-50155 FIR: support contextual receivers
    • KT-38637 Catch NoSuchFieldException in optimized when expression over enum

    Docs & Examples

    • KT-49896 Kotlin/JS: improve -Xir-property-lazy-initialization description due to making it true by default

    IDE

    • KTIJ-22286 Kotlin JPS project created via wizard does not contain Kotlin libraries in case of not-released version
    • KTIJ-22065 IDE notification motivating Kotlin users to use EAP
    • KTIJ-22209 Configure Kotlin on 221 idea adds 1.6.10 Kotlin (despite the fact that IDE plugin is 1.7.10)
    • KTIJ-22171 Fix test BuiltInDecompilerConsistencyTest
    • KTIJ-22016 Empty .kt file and build.gradle.kts can trigger an error while searching for a facade light class

    IDE. Code Style, Formatting

    • KTIJ-21346 Incorrect formatting for functions with context receivers and visibility modifiers

    IDE. Completion

    ... (truncated)

    Commits
    • 7159702 Add changelog for 1.7.20
    • 9ca25ce Native: add more tests for Swift Set and Dictionary used in Kotlin
    • 1244679 Native: improve thread state switches for NSSet/NSDictionary adapters
    • 1abfeb9 [Gradle][MPP] MPP/AGP compatibility: Bump maxSupportedVersion to 7.3
    • b489e93 Fix lowering of receiver access in IR scripting
    • 8a8853c K1. Fix error message for BUILDER_INFERENCE_MULTI_LAMBDA_RESTRICTION
    • 608d45c Add changelog for 1.7.20-RC
    • 3a340d2 Fix kind of NoBuilderInferenceWithoutAnnotationRestriction
    • a17fc51 Fix receiver inconsistency when builder inference restriction disabled
    • f0fd2cf Put back the line with language feature to 1.7 block
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump kotlin-maven-plugin from 1.7.10 to 1.7.20 in /proguard-services-mapper-maven

    Bump kotlin-maven-plugin from 1.7.10 to 1.7.20 in /proguard-services-mapper-maven

    Bumps kotlin-maven-plugin from 1.7.10 to 1.7.20.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 in /proguard-services-mapper-maven

    Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 in /proguard-services-mapper-maven

    Bumps maven-javadoc-plugin from 3.4.0 to 3.4.1.

    Release notes

    Sourced from maven-javadoc-plugin's releases.

    3.4.1

    📦 Dependency updates

    Commits
    • a5db96e [maven-release-plugin] prepare release maven-javadoc-plugin-3.4.1
    • a10f0b1 [MJAVADOC-723] Upgrade Maven Reporting API to 3.1.1/Complete with Maven Repor...
    • c19dba2 Skip Java 9-14 in reproducible test
    • 26d84b2 Add notimestamp for reproducible builds test
    • 92ce668 Ignore Maven Core updates
    • bacc078 Add Integration Test for reproducible builds
    • 497f80f [MJAVADOC-719] - Update Maven Archiver to 3.6.0
    • 34b501d Bump assertj-core from 3.21.0 to 3.23.1
    • b928970 Bump spring-webmvc in /src/it/projects/MJAVADOC-434_fixcompile
    • 4306c92 Bump mockito-core from 4.1.0 to 4.4.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump jvm from 1.7.0 to 1.7.10

    Bump jvm from 1.7.0 to 1.7.10

    Bumps jvm from 1.7.0 to 1.7.10.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump kotlin-maven-plugin from 1.7.0 to 1.7.10 in /proguard-services-mapper-maven

    Bump kotlin-maven-plugin from 1.7.0 to 1.7.10 in /proguard-services-mapper-maven

    Bumps kotlin-maven-plugin from 1.7.0 to 1.7.10.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump maven-plugin-api from 3.8.5 to 3.8.6 in /proguard-services-mapper-maven

    Bump maven-plugin-api from 3.8.5 to 3.8.6 in /proguard-services-mapper-maven

    Bumps maven-plugin-api from 3.8.5 to 3.8.6.

    Commits
    • 84538c9 [maven-release-plugin] prepare release maven-3.8.6
    • a2ad4f2 deploy master, 3.8.x and 3.9.x
    • 9a8c4a4 [MNG-7490] Upgrade Plexus Utils to 3.3.1
    • 8b157e7 [MNG-7489] Upgrade JUnit to 4.13.2
    • afc0155 [MNG-7488] Upgrade SLF4J to 1.7.36
    • 5c0d6b9 [MNG-7476] Display a warning when an aggregator mojo is locking other mojos e...
    • 0b79a9e [MNG-7487] Fix deadlock during forked lifecycle executions
    • 88a03f8 [MNG-7486] Create a multiline message helper for boxed log messages
    • 23cc863 [MNG-7448] Don't ignore bin/ otherwise bin/ in apache-maven module cannot be ...
    • 7ae663f Revert "[MNG-7347] SessionScoped beans should be singletons for a given sessi...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
Releases(v1.1)
  • v1.1(Jan 29, 2022)

    What's Changed

    • Add a brand-new Gradle plugin comprised of a task to automate calling the mapper via gradle.

    • Bump build-helper-maven-plugin from 3.2.0 to 3.3.0 in /proguard-services-mapper-maven by @dependabot in https://github.com/GiantTreeLP/proguard-services-mapper/pull/1

    • Bump maven-compiler-plugin from 3.8.1 to 3.9.0 in /proguard-services-mapper-maven by @dependabot in https://github.com/GiantTreeLP/proguard-services-mapper/pull/2

    • Bump maven-plugin-annotations from 3.6.2 to 3.6.4 in /proguard-services-mapper-maven by @dependabot in https://github.com/GiantTreeLP/proguard-services-mapper/pull/4

    • Bump maven-plugin-plugin from 3.6.2 to 3.6.4 in /proguard-services-mapper-maven by @dependabot in https://github.com/GiantTreeLP/proguard-services-mapper/pull/3

    Full Changelog: https://github.com/GiantTreeLP/proguard-services-mapper/compare/v1.0...v1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Dec 23, 2021)

    This is the first release version of the ProGuard Services Mapper. Refer to the README.md for help regarding usage.

    Full Changelog: https://github.com/GiantTreeLP/proguard-services-mapper/commits/v1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Marvin
Marvin
eventbus-intellij-plugin 3.8 0.0 L1 Java Plugin to navigate between events posted by EventBus.

eventbus-intellij-plugin Plugin to navigate between events posted by EventBus. Post to onEvent and onEvent to Post Install There are two ways. Prefere

Shinnosuke Kugimiya 315 Aug 8, 2022
Helper to upload Gradle Android Artifacts, Gradle Java Artifacts and Gradle Kotlin Artifacts to Maven repositories (JCenter, Maven Central, Corporate staging/snapshot servers and local Maven repositories).

GradleMavenPush Helper to upload Gradle Android Artifacts, Gradle Java Artifacts and Gradle Kotlin Artifacts to Maven repositories (JCenter, Maven Cen

 Vorlonsoft LLC 21 Oct 3, 2022
This plugin helps tp build GraphQL applications in Java using the DGS framework

dgs-intellij-plugin This plugin helps tp build GraphQL applications in Java using the DGS framework. The DGS Framework is open sourced by Netflix and

Netflix, Inc. 16 Nov 3, 2022
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.

Tinker Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstalling apk. Getting started Add t

Tencent 16.6k Dec 29, 2022
This tool patches the CVE-2021-44228 Log4J vulnerability present in all minecraft versions NOTE THIS TOOL MUST BE RE-RUN after downloading or updating versions of minecraft as its not a perminent patch

WARNING THIS EXPLOIT EFFECTS BOTH CLIENTS AND SERVERS There is currently a exploit going around that affects all versions of Minecraft this exploit ab

Jacobtread 6 Aug 23, 2022
Proguard configurations for common Android libraries

android-proguard-snippets Example Proguard configurations for common Android libraries. This project assumes that your ProGuard configuration is based

Kevin Schultz 4.6k Dec 18, 2022
proguard resource for Android by wechat team

AndResGuard Read this in other languages: English, 简体中文. AndResGuard is a tooling for reducing your apk size, it works like the ProGuard for Java sour

shwenzhang 8.1k Jan 9, 2023
Proguard configurations for common Android libraries

android-proguard-snippets Example Proguard configurations for common Android libraries. This project assumes that your ProGuard configuration is based

Kevin Schultz 4.6k Dec 30, 2022
AndFix is a library that offer hot-fix for Android App.

AndFix AndFix is a solution to fix the bugs online instead of redistributing Android App. It is distributed as Android Library. Andfix is an acronym f

Alibaba 6.9k Dec 29, 2022
Reproducible sample with Fix for Memory Leak in RecyclerView Adapter

Memory Leak RecyclerView Adapter Reproducible Sample with Fix Video Instructions: https://www.youtube.com/c/awesomedevnotes Code Only the relevant and

Awesome Dev Notes | Android Dev Notes YouTube 7 Jun 7, 2022
Fix for HotSpot deep stack problem

Fix for HotSpot deep stack problem Java HotSpot C2 compiler has a problem with deeply recursive functions. For a discussion of the problem see https:/

Roman Elizarov 4 Nov 14, 2022
MIUINativeNotifyIcon - Fix the native notification bar icon function abandoned by the MIUI development team

MIUI 原生通知图标 Fix the native notification bar icon function abandoned by the MIUI

Fankesyooni 189 Jan 4, 2023
ImmutablePendingIntent provides mutability safe methods and quick fix

ImmutablePendingIntent Overview ImmutablePendingIntent provides methods that create immutability-safe PendingIntent lint to make an error when using m

wada811 5 Nov 25, 2022
Remoter - An alternative to Android AIDL for Android Remote IPC services using plain java interfaces

Remoter Remoter - An alternative to Android AIDL for Android Remote IPC services using plain java interfaces Remoter makes developing android remote s

Joseph Samuel 68 Dec 16, 2022
Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

EventBus EventBus is a publish/subscribe event bus for Android and Java. EventBus... simplifies the communication between components decouples event s

Markus Junginger 24.2k Jan 7, 2023
Render After Effects animations natively on Android and iOS, Web, and React Native

Lottie for Android, iOS, React Native, Web, and Windows Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations expo

Airbnb 33.5k Jan 4, 2023