Licence Management
We’ve tried to make licence management as simple as possible.
Arcmutate licences are plain text files tied to one or more root packages (e.g. com.example
). They will work for any code in those packages until the date on which they expire.
Licences are delivered by e-mail on payment for a subscription.
When you purchase an arcmutate subscription online, you will also be assigned a unique licence id. The latest version of the licence for the subscription can be downloaded from
https://subscriptions.arcmutate.com/AAFFDEMOAAFF/arcmutate-licence.txt
Using your licence id in place of AAFFDEMOAAFF
.
The licence at your unique url will reflect any updates made to the subscription after purchase (e.g a change in the subscription type). When a subscription renews, the licence will automatically update with a new expiry date.
This url is provided as a convenience without any availability guarantees.
Licence locations
Arcmutate will look for licence files in two locations.
- The root of the repository
- The pitest reports directory
The simplest way to apply the licence is to check it into the root of the source repository and update it with a commit when the subscription renews.
If you have a large number of repositories, or your subscription updates monthly, you may wish to automate retrieval of the licence file from a known location in your infrastructure.
Updating the Licence in Maven Builds
Although we recommend storing the licence files within your own infrastructure, we provide the arcmutate-maven-plugin
as a convenience for teams where reliance on a url with no guarantee of availability is an acceptable risk.
This is offered without support and should not be used within critical pipelines.
The refresh-licence
goal automatically downloads licences into the target\pitest\arcmutate-licences
directory of a project each time it is run.
To minimise the build’s reliance on the network, licence files are cached within the standard maven .m2/repository
directory. By default, the plugin will update the cached copy of the licence if it is more than 7 days old. If the arcmutate.forceLicenceUpdate
parameter is set to true, the latest version of the licence will always be downloaded.
<plugin>
<groupId>com.arcmutate</groupId>
<artifactId>arcmutate-maven-plugin</artifactId>
<configuration>
<licenceId>AAFFDEMOAAFF</licenceId>
</configuration>
<executions>
<execution>
<goals>
<goal>refresh-licence</goal>
</goals>
</execution>
</executions>
</plugin>
Updating the Licence in Gradle Builds
For gradle builds we suggest using the gradle download task or a similar solution.
tasks.register<Download>("arcmutateLicence") {
src("https://subscriptions.arcmutate.com/AAFFDEMOAAFF/arcmutate-licence.txt")
dest("$buildDir/reports/pitest/arcmutate-licences/arcmutate-licence.txt")
onlyIfModified(true)
overwrite(true)
}
To work correctly with gradle’s caching mechanism, the pitest task must depend upon the licence task.