├── integration-tests
└── src
│ └── test
│ ├── projects
│ ├── input-stream
│ │ └── .mvn
│ │ │ └── .gitkeep
│ ├── raw-streams
│ │ └── .mvn
│ │ │ └── maven.config
│ ├── upgrades-in-bom
│ │ ├── parent
│ │ │ ├── .mvn
│ │ │ │ └── .gitkeep
│ │ │ ├── module
│ │ │ │ └── src
│ │ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── upgrades
│ │ │ │ │ └── bom
│ │ │ │ │ └── module
│ │ │ │ │ └── UseHello.java
│ │ │ └── bom
│ │ │ │ └── pom.xml
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── hello-0.0.1
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── upgrades
│ │ │ │ └── bom
│ │ │ │ └── hello
│ │ │ │ └── Hello.java
│ │ └── hello-0.0.2-SNAPSHOT
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── upgrades
│ │ │ └── bom
│ │ │ └── hello
│ │ │ └── Hello.java
│ ├── new-managed-module
│ │ ├── parent
│ │ │ ├── .mvn
│ │ │ │ └── .gitkeep
│ │ │ ├── module
│ │ │ │ ├── src
│ │ │ │ │ └── main
│ │ │ │ │ │ └── java
│ │ │ │ │ │ └── org
│ │ │ │ │ │ └── mvndaemon
│ │ │ │ │ │ └── mvnd
│ │ │ │ │ │ └── test
│ │ │ │ │ │ └── upgrades
│ │ │ │ │ │ └── bom
│ │ │ │ │ │ └── module
│ │ │ │ │ │ └── UseHello.java
│ │ │ │ └── pom.xml
│ │ │ └── bom
│ │ │ │ └── pom.xml
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── changes
│ │ │ ├── new-module
│ │ │ ├── src
│ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── upgrades
│ │ │ │ │ └── nw
│ │ │ │ │ └── module
│ │ │ │ │ └── Hello.java
│ │ │ └── pom.xml
│ │ │ └── module
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── upgrades
│ │ │ └── bom
│ │ │ └── module
│ │ │ └── UseHello.java
│ ├── parent-with-property
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── child
│ │ │ └── pom.xml
│ │ └── pom.xml
│ ├── max-heap
│ │ ├── jvm-config
│ │ │ ├── .mvn
│ │ │ │ ├── jvm.config
│ │ │ │ └── maven.config
│ │ │ └── pom.xml
│ │ ├── mvnd-props
│ │ │ ├── .mvn
│ │ │ │ ├── maven.config
│ │ │ │ └── mvnd.properties
│ │ │ └── pom.xml
│ │ └── default-heap
│ │ │ ├── .mvn
│ │ │ └── maven.config
│ │ │ └── pom.xml
│ ├── specific-file
│ │ ├── prj1
│ │ │ ├── .mvn
│ │ │ │ ├── jvm.config
│ │ │ │ └── maven.config
│ │ │ └── pom.xml
│ │ └── prj2
│ │ │ ├── .mvn
│ │ │ ├── jvm.config
│ │ │ └── maven.config
│ │ │ └── pom.xml
│ ├── maven-conf
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── pom.xml
│ ├── dup-ga
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── hi1
│ │ │ └── pom.xml
│ │ └── hi2
│ │ │ └── pom.xml
│ ├── forked
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── mod1
│ │ │ ├── src
│ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── forked
│ │ │ │ │ └── mod1
│ │ │ │ │ └── Greeting.java
│ │ │ └── pom.xml
│ │ └── mod2
│ │ │ ├── src
│ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── forked
│ │ │ │ └── mod2
│ │ │ │ └── Hi.java
│ │ │ └── pom.xml
│ ├── invoker
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── src
│ │ │ └── it
│ │ │ └── invoke-hello
│ │ │ ├── invoker.properties
│ │ │ └── verify.groovy
│ ├── daemon-crash
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── hello
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── multi
│ │ │ │ │ └── module
│ │ │ │ │ └── hello
│ │ │ │ │ └── Hello.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hello
│ │ │ │ └── HelloTest.java
│ │ └── plugin
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── module
│ │ │ └── plugin
│ │ │ └── mojo
│ │ │ └── HelloMojo.java
│ ├── delete-repo
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── single
│ │ │ │ └── module
│ │ │ │ └── Hello.java
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── single
│ │ │ └── module
│ │ │ └── HelloTest.java
│ ├── environment
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── prj1
│ │ │ └── pom.xml
│ │ └── prj2
│ │ │ └── pom.xml
│ ├── exec-output
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ ├── Greeting.java
│ │ │ └── HelloWorld.java
│ ├── extensions
│ │ ├── .mvn
│ │ │ ├── maven.config
│ │ │ └── extensions.xml
│ │ └── pom.xml
│ ├── multi-lookup
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── api
│ │ │ ├── src
│ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── multi
│ │ │ │ │ └── module
│ │ │ │ │ └── api
│ │ │ │ │ └── Greeting.java
│ │ │ └── pom.xml
│ │ ├── hi
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── multi
│ │ │ │ │ └── module
│ │ │ │ │ └── hi
│ │ │ │ │ └── Hi.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hi
│ │ │ │ └── HiTest.java
│ │ └── hello
│ │ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hello
│ │ │ │ └── Hello.java
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── multi
│ │ │ └── module
│ │ │ └── hello
│ │ │ └── HelloTest.java
│ ├── multi-module
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── api
│ │ │ ├── src
│ │ │ │ └── main
│ │ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── multi
│ │ │ │ │ └── module
│ │ │ │ │ └── api
│ │ │ │ │ └── Greeting.java
│ │ │ └── pom.xml
│ │ ├── hi
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── multi
│ │ │ │ │ └── module
│ │ │ │ │ └── hi
│ │ │ │ │ └── Hi.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hi
│ │ │ │ └── HiTest.java
│ │ └── hello
│ │ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hello
│ │ │ │ └── Hello.java
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── multi
│ │ │ └── module
│ │ │ └── hello
│ │ │ └── HelloTest.java
│ ├── single-module
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── single
│ │ │ │ └── module
│ │ │ │ └── Hello.java
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── single
│ │ │ └── module
│ │ │ └── HelloTest.java
│ ├── bootstrap-plugin
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── bootstrap
│ │ │ ├── src
│ │ │ │ └── main
│ │ │ │ │ └── resources
│ │ │ │ │ └── org
│ │ │ │ │ └── reproducer
│ │ │ │ │ └── Model.java
│ │ │ └── pom.xml
│ │ ├── startup
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── reproducer
│ │ │ │ └── MainClass.java
│ │ └── pom.xml
│ ├── extension-with-api
│ │ ├── .mvn
│ │ │ ├── maven.config
│ │ │ └── extensions.xml
│ │ ├── extension
│ │ │ ├── .mvn
│ │ │ │ └── maven.config
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── mvndaemon
│ │ │ │ │ └── mvnd
│ │ │ │ │ └── test
│ │ │ │ │ └── extension
│ │ │ │ │ └── with
│ │ │ │ │ └── api
│ │ │ │ │ └── extension
│ │ │ │ │ ├── TheApi.java
│ │ │ │ │ └── TheImpl.java
│ │ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── maven
│ │ │ │ └── extension.xml
│ │ ├── plugin
│ │ │ ├── .mvn
│ │ │ │ └── maven.config
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── extension
│ │ │ │ └── with
│ │ │ │ └── api
│ │ │ │ └── plugin
│ │ │ │ └── TheMojo.java
│ │ └── pom.xml
│ ├── module-and-plugin
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── hello
│ │ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── multi
│ │ │ │ └── module
│ │ │ │ └── hello
│ │ │ │ └── Hello.java
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── multi
│ │ │ └── module
│ │ │ └── hello
│ │ │ └── HelloTest.java
│ ├── type-description
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ └── server
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── resources
│ │ │ ├── log4j.properties
│ │ │ └── application.properties
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── type
│ │ │ └── description
│ │ │ └── server
│ │ │ ├── Main.java
│ │ │ └── domain
│ │ │ └── AbstractEntity.java
│ ├── concurrent-downloads
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── mod1
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── test
│ │ │ │ └── concurrent
│ │ │ │ └── downloads
│ │ │ │ └── mod1
│ │ │ │ └── Greeting.java
│ │ └── mod2
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── test
│ │ │ └── concurrent
│ │ │ └── downloads
│ │ │ └── mod2
│ │ │ └── Hi.java
│ ├── attached-artifact-resolution
│ │ ├── .mvn
│ │ │ └── maven.config
│ │ ├── jdt
│ │ │ └── pom.xml
│ │ ├── pom.xml
│ │ └── java-frontend
│ │ │ └── pom.xml
│ ├── resident-extensions
│ │ ├── project1
│ │ │ └── .mvn
│ │ │ │ └── maven.config
│ │ └── project2
│ │ │ └── .mvn
│ │ │ └── maven.config
│ ├── maven-conf-ignore-ext
│ │ ├── .mvn
│ │ │ └── extensions.xml
│ │ └── pom.xml
│ └── maven-conf-ignore-ext-def
│ │ ├── .mvn
│ │ └── extensions.xml
│ │ └── pom.xml
│ ├── resources
│ ├── settings-template.xml
│ └── maven.logger.properties
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ ├── it
│ ├── InvokerTest.java
│ ├── ExtensionsTest.java
│ ├── MavenConfTest.java
│ ├── DeleteRepoTest.java
│ ├── InputStreamTest.java
│ ├── ThreadOptionTest.java
│ ├── UpgradesInBomTest.java
│ ├── ModuleAndPluginTest.java
│ ├── NewManagedModuleTest.java
│ ├── MavenConfIgnoreExtTest.java
│ ├── CompletionTest.java
│ ├── MavenConfIgnoreExtDefNativeIT.java
│ ├── VersionTest.java
│ ├── MavenConfIgnoreExtDefTest.java
│ ├── AlpineLinuxTest.java
│ ├── MaxHeapTest.java
│ ├── MavenConfIgnoreExtNativeIT.java
│ ├── AttachedArtifactResolutionTest.java
│ ├── DupGATest.java
│ └── TypeDescriptionTest.java
│ └── junit
│ ├── ClientFactory.java
│ └── MvndTest.java
├── src
└── main
│ └── images
│ ├── console-output.png
│ └── mvnd-logo-256x256.png
├── logging
├── src
│ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ ├── services
│ │ │ └── org.apache.maven.slf4j.MavenLoggerFactory
│ │ │ └── maven
│ │ │ └── slf4j-configuration.properties
│ │ └── java
│ │ └── org
│ │ └── mvndaemon
│ │ └── mvnd
│ │ └── logging
│ │ └── slf4j
│ │ └── MvndLoggerFactory.java
└── pom.xml
├── native
└── src
│ ├── main
│ ├── resources
│ │ ├── META-INF
│ │ │ └── native-image
│ │ │ │ └── mvndnative
│ │ │ │ └── resource-config.json
│ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── nativ
│ │ │ ├── Linux
│ │ │ ├── arm
│ │ │ │ └── libmvndnative.so
│ │ │ ├── x86
│ │ │ │ └── libmvndnative.so
│ │ │ ├── arm64
│ │ │ │ └── libmvndnative.so
│ │ │ ├── armv6
│ │ │ │ └── libmvndnative.so
│ │ │ ├── armv7
│ │ │ │ └── libmvndnative.so
│ │ │ ├── ppc64
│ │ │ │ └── libmvndnative.so
│ │ │ └── x86_64
│ │ │ │ └── libmvndnative.so
│ │ │ ├── Windows
│ │ │ ├── x86
│ │ │ │ └── mvndnative.dll
│ │ │ └── x86_64
│ │ │ │ └── mvndnative.dll
│ │ │ ├── FreeBSD
│ │ │ ├── x86
│ │ │ │ └── libmvndnative.so
│ │ │ └── x86_64
│ │ │ │ └── libmvndnative.so
│ │ │ ├── Mac
│ │ │ ├── x86
│ │ │ │ └── libmvndnative.jnilib
│ │ │ ├── arm64
│ │ │ │ └── libmvndnative.jnilib
│ │ │ └── x86_64
│ │ │ │ └── libmvndnative.jnilib
│ │ │ └── mvndnative.properties
│ └── java
│ │ └── org
│ │ └── mvndaemon
│ │ └── mvnd
│ │ └── nativ
│ │ └── CLibrary.java
│ └── test
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ └── nativ
│ └── MvndNativeLoaderTest.java
├── .mvn
├── extensions.xml
├── wrapper
│ └── maven-wrapper.properties
├── gradle-enterprise.xml
└── release-settings.xml
├── NOTICE.txt
├── .gitignore
├── dist
└── src
│ └── main
│ ├── resources
│ ├── platform-linux-amd64
│ ├── platform-darwin-aarch64
│ ├── platform-darwin-amd64
│ └── platform-windows-amd64
│ └── distro
│ ├── mvn
│ ├── conf
│ │ └── logging
│ │ │ └── java.util.logging.properties
│ └── bin
│ │ └── m2.conf
│ └── bin
│ ├── mvnd-daemon.conf
│ └── mvnd-client.conf
├── .git-blame-ignore-revs
├── .github
├── ci-mimir-daemon.properties
├── ci-extensions.xml
├── workflows
│ ├── stale.yml
│ └── pr-automation.yml
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── FEATURE.yml
│ └── BUG.yml
└── dependabot.yml
├── client
└── src
│ ├── main
│ ├── resources
│ │ ├── org
│ │ │ └── mvndaemon
│ │ │ │ └── mvnd
│ │ │ │ └── client
│ │ │ │ └── build.properties
│ │ └── glibc
│ │ │ ├── gcc
│ │ │ └── glibc.redef
│ ├── java
│ │ └── org
│ │ │ └── mvndaemon
│ │ │ └── mvnd
│ │ │ └── client
│ │ │ ├── Client.java
│ │ │ └── ExecutionResult.java
│ └── java-fallback
│ │ └── org
│ │ └── mvndaemon
│ │ └── mvnd
│ │ └── client
│ │ └── DefaultClient.java
│ └── test
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ └── client
│ ├── DaemonConnectorTest.java
│ └── OsUtilsTest.java
├── common
└── src
│ └── main
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ └── common
│ ├── ProcessHelper.java
│ ├── DaemonState.java
│ ├── JavaVersion.java
│ ├── SignalHelper.java
│ ├── DaemonExpirationStatus.java
│ ├── logging
│ └── ClientOutput.java
│ ├── BufferCaster.java
│ └── SocketHelper.java
├── .asf.yaml
├── daemon
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ ├── mvndaemon
│ │ └── mvnd
│ │ │ ├── cache
│ │ │ ├── CacheFactory.java
│ │ │ └── CacheRecord.java
│ │ │ └── daemon
│ │ │ └── Connection.java
│ │ └── apache
│ │ └── maven
│ │ └── cli
│ │ ├── DaemonCli.java
│ │ └── DaemonMessageBuilderFactory.java
│ └── test
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ └── daemon
│ ├── DaemonMemoryStatusTest.java
│ └── ClientDispatcherTest.java
├── helper
├── pom.xml
└── src
│ └── main
│ └── java
│ └── org
│ └── mvndaemon
│ └── mvnd
│ └── pump
│ └── AgentHelper.java
└── RELEASING.adoc
/integration-tests/src/test/projects/input-stream/.mvn/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/raw-streams/.mvn/maven.config:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/parent/.mvn/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/parent/.mvn/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/parent-with-property/.mvn/maven.config:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/jvm-config/.mvn/jvm.config:
--------------------------------------------------------------------------------
1 | -Xmx140M
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj1/.mvn/jvm.config:
--------------------------------------------------------------------------------
1 | -Dfoo-bar=xx-prj1-xx
2 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj2/.mvn/jvm.config:
--------------------------------------------------------------------------------
1 | -Dfoo-bar=xx-prj2-xx
2 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dsomething=${session.rootDirectory}
2 |
--------------------------------------------------------------------------------
/src/main/images/console-output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/src/main/images/console-output.png
--------------------------------------------------------------------------------
/src/main/images/mvnd-logo-256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/src/main/images/mvnd-logo-256x256.png
--------------------------------------------------------------------------------
/logging/src/main/resources/META-INF/services/org.apache.maven.slf4j.MavenLoggerFactory:
--------------------------------------------------------------------------------
1 | org.mvndaemon.mvnd.logging.slf4j.MvndLoggerFactory
--------------------------------------------------------------------------------
/native/src/main/resources/META-INF/native-image/mvndnative/resource-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "resources": [
3 | {"pattern": "org/mvndaemon/mvnd/nativ/.*"}
4 | ]
5 | }
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/arm/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/arm/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/x86/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/x86/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Windows/x86/mvndnative.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Windows/x86/mvndnative.dll
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/FreeBSD/x86/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/FreeBSD/x86/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/arm64/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/arm64/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/armv6/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/armv6/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/armv7/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/armv7/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/ppc64/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/ppc64/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/x86_64/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Linux/x86_64/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/x86/libmvndnative.jnilib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/x86/libmvndnative.jnilib
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Windows/x86_64/mvndnative.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Windows/x86_64/mvndnative.dll
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/FreeBSD/x86_64/libmvndnative.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/FreeBSD/x86_64/libmvndnative.so
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/arm64/libmvndnative.jnilib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/arm64/libmvndnative.jnilib
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/x86_64/libmvndnative.jnilib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/maven-mvnd/HEAD/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/x86_64/libmvndnative.jnilib
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/dup-ga/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/forked/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/invoker/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/daemon-crash/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/delete-repo/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/environment/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/exec-output/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extensions/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/jvm-config/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/single-module/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/bootstrap-plugin/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/mvnd-props/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/module-and-plugin/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj1/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj2/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/type-description/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/concurrent-downloads/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/default-heap/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/attached-artifact-resolution/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/extension/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/plugin/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/resident-extensions/project1/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/resident-extensions/project2/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
2 | -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
3 | -Dmaven.wagon.http.retryHandler.count=10
4 |
--------------------------------------------------------------------------------
/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | eu.maveniverse.maven.nisse
6 | extension
7 | 0.6.2
8 |
9 |
10 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf-ignore-ext/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | foo
6 | bar
7 | 1.0.0
8 |
9 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf-ignore-ext-def/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | io.takari.maven
6 | takari-smart-builder
7 | 0.6.4
8 |
9 |
--------------------------------------------------------------------------------
/NOTICE.txt:
--------------------------------------------------------------------------------
1 | This project contains code coming from other projects
2 | licensed under the Apache Software License 2.0:
3 |
4 | - Apache Maven project (https://maven.apache.org)
5 | - Takari Smart Builder (https://github.com/takari/takari-smart-builder)
6 | - maven-buildtime-extension (https://github.com/timgifford/maven-buildtime-extension)
7 | - Apache Karaf (https://karaf.apache.org)
8 | - Gradle Launcher (https://github.com/gradle/gradle/tree/master/subprojects/launcher)
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Maven
2 | target/
3 | pom.xml.tag
4 | pom.xml.releaseBackup
5 | pom.xml.versionsBackup
6 | pom.xml.next
7 | release.properties
8 | dependency-reduced-pom.xml
9 |
10 | # Eclipse
11 | .project
12 | .classpath
13 | .settings/
14 |
15 | # IDEA
16 | .idea
17 | *.ipr
18 | *.iml
19 | *.iws
20 |
21 | # NetBeans
22 | nb-configuration.xml
23 |
24 | # OSX
25 | .DS_Store
26 |
27 | # VS Code
28 | .vscode/
29 |
30 | # formatter-maven-plugin
31 | .cache/
32 |
33 | # https://ge.apache.org
34 | .mvn/.gradle-enterprise
--------------------------------------------------------------------------------
/dist/src/main/resources/platform-linux-amd64:
--------------------------------------------------------------------------------
1 | Copyright 2019-2021 the original author or authors.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/dist/src/main/resources/platform-darwin-aarch64:
--------------------------------------------------------------------------------
1 | Copyright 2019-2021 the original author or authors.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/dist/src/main/resources/platform-darwin-amd64:
--------------------------------------------------------------------------------
1 | Copyright 2019-2021 the original author or authors.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/dist/src/main/resources/platform-windows-amd64:
--------------------------------------------------------------------------------
1 | Copyright 2019-2021 the original author or authors.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/invoker/src/it/invoke-hello/invoker.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2017 Decipher Technology Studios LLC
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | invoker.goals=validate
16 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/mvnd-props/.mvn/mvnd.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2019 the original author or authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | mvnd.maxHeapSize=130M
--------------------------------------------------------------------------------
/native/src/main/resources/org/mvndaemon/mvnd/nativ/mvndnative.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2019 the original author or authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | version=${project.version}
18 |
--------------------------------------------------------------------------------
/integration-tests/src/test/resources/settings-template.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/dist/src/main/distro/mvn/conf/logging/java.util.logging.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/forked/mod1/src/main/java/org/mvndaemon/mvnd/test/forked/mod1/Greeting.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.forked.mod1;
17 |
18 | public interface Greeting {
19 |
20 | public String greet();
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/bootstrap-plugin/bootstrap/src/main/resources/org/reproducer/Model.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2020 Red Hat, Inc. and/or its affiliates.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.reproducer;
18 |
19 | public class Model {
20 |
21 | public static final String hello = "REPLACETHIS";
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/api/src/main/java/org/mvndaemon/mvnd/test/multi/module/api/Greeting.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.api;
17 |
18 | public interface Greeting {
19 |
20 | public String greet();
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/api/src/main/java/org/mvndaemon/mvnd/test/multi/module/api/Greeting.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.api;
17 |
18 | public interface Greeting {
19 |
20 | public String greet();
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/forked/mod2/src/main/java/org/mvndaemon/mvnd/test/forked/mod2/Hi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.forked.mod2;
17 |
18 | public class Hi {
19 |
20 | public String greet() {
21 | return "Hi";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/extension/src/main/java/org/mvndaemon/mvnd/test/extension/with/api/extension/TheApi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.extension.with.api.extension;
17 |
18 |
19 | public interface TheApi {
20 | void sayHello();
21 | }
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/delete-repo/src/main/java/org/mvndaemon/mvnd/test/single/module/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.single.module;
17 |
18 | public class Hello {
19 |
20 | public String sayHello() {
21 | return "Hello";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/single-module/src/main/java/org/mvndaemon/mvnd/test/single/module/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.single.module;
17 |
18 | public class Hello {
19 |
20 | public String sayHello() {
21 | return "Hello";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one
3 | # or more contributor license agreements. See the NOTICE file
4 | # distributed with this work for additional information
5 | # regarding copyright ownership. The ASF licenses this file
6 | # to you under the Apache License, Version 2.0 (the
7 | # "License"); you may not use this file except in compliance
8 | # with the License. You may obtain a copy of the License at
9 | #
10 | # http://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing,
13 | # software distributed under the License is distributed on an
14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | # KIND, either express or implied. See the License for the
16 | # specific language governing permissions and limitations
17 | # under the License.
18 | #
19 |
20 | # Change maven code style
21 | a14a1eb80f53d9e3b5cbf89ac9f21ab094591fd9
22 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/concurrent-downloads/mod1/src/main/java/org/mvndaemon/mvnd/test/concurrent/downloads/mod1/Greeting.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.concurrent.downloads.mod1;
17 |
18 | public interface Greeting {
19 |
20 | public String greet();
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/exec-output/src/main/java/org/mvndaemon/mvnd/test/Greeting.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test;
17 |
18 | public class Greeting {
19 |
20 | public static void main(String[] args) {
21 | System.out.println("Hello world!");
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/daemon-crash/hello/src/main/java/org/mvndaemon/mvnd/test/multi/module/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | public class Hello {
19 |
20 | public String greet() {
21 | return "Hello";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/exec-output/src/main/java/org/mvndaemon/mvnd/test/HelloWorld.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test;
17 |
18 | public class HelloWorld {
19 |
20 | public static void main(String[] args) {
21 | System.out.println("From test");
22 | }
23 |
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/module-and-plugin/hello/src/main/java/org/mvndaemon/mvnd/test/multi/module/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | public class Hello {
19 |
20 | public String greet() {
21 | return "Hello";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/concurrent-downloads/mod2/src/main/java/org/mvndaemon/mvnd/test/concurrent/downloads/mod2/Hi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.concurrent.downloads.mod2;
17 |
18 | public class Hi {
19 |
20 | public String greet() {
21 | return "Hi";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/changes/new-module/src/main/java/org/mvndaemon/mvnd/test/upgrades/nw/module/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.nw.module;
17 |
18 | public class Hello {
19 |
20 | public String hi() {
21 | return "Hi";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/hello-0.0.1/src/main/java/org/mvndaemon/mvnd/test/upgrades/bom/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.bom.hello;
17 |
18 | public class Hello {
19 |
20 | public String sayHello() {
21 | return "Hello";
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/hello-0.0.2-SNAPSHOT/src/main/java/org/mvndaemon/mvnd/test/upgrades/bom/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.bom.hello;
17 |
18 | public class Hello {
19 |
20 | public int sayWisdom() {
21 | return 42;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/parent/module/src/main/java/org/mvndaemon/mvnd/test/upgrades/bom/module/UseHello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.bom.module;
17 |
18 | public class UseHello {
19 |
20 | public void use() {
21 | System.out.println("Hello");
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extensions/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | fr.jcgay.maven
22 | maven-profiler
23 | 3.0
24 |
25 |
26 |
--------------------------------------------------------------------------------
/.github/ci-mimir-daemon.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one or more
3 | # contributor license agreements. See the NOTICE file distributed with
4 | # this work for additional information regarding copyright ownership.
5 | # The ASF licenses this file to You under the Apache License, Version 2.0
6 | # (the "License"); you may not use this file except in compliance with
7 | # the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | # Mimir Daemon properties
19 |
20 | # Disable JGroups; we don't want/use LAN cache sharing
21 | mimir.jgroups.enabled=false
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/invoker/src/it/invoke-hello/verify.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import java.nio.file.Path;
17 | import java.nio.file.Files;
18 |
19 | Path basePath = basedir.toPath()
20 | Path helloPath = basePath.resolve('target/hello.txt')
21 |
22 | assert Files.exists(helloPath)
23 |
24 | assert Files.readString(helloPath).equals('Hello')
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/type-description/server/src/main/resources/log4j.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2021 the original author or authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | log4j.rootLogger=INFO, consoleAppender
18 |
19 | log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
20 | log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
21 | log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n
22 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/bootstrap-plugin/startup/src/main/java/org/reproducer/MainClass.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2020 Red Hat, Inc. and/or its affiliates.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.reproducer;
18 |
19 | public class MainClass {
20 |
21 | public static void main(String[] args) {
22 | String helloWorld = org.reproducer.Model.hello;
23 | System.out.println(helloWorld);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/hi/src/main/java/org/mvndaemon/mvnd/test/multi/module/hi/Hi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hi;
17 |
18 | import org.mvndaemon.mvnd.test.multi.module.api.Greeting;
19 |
20 | public class Hi implements Greeting {
21 |
22 | public String greet() {
23 | return "Hi";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/hi/src/main/java/org/mvndaemon/mvnd/test/multi/module/hi/Hi.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hi;
17 |
18 | import org.mvndaemon.mvnd.test.multi.module.api.Greeting;
19 |
20 | public class Hi implements Greeting {
21 |
22 | public String greet() {
23 | return "Hi";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | org.mvndaemon.mvnd.test.extension.with.api
22 | extension
23 | 0.0.1-SNAPSHOT
24 |
25 |
26 |
--------------------------------------------------------------------------------
/client/src/main/resources/org/mvndaemon/mvnd/client/build.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
18 | revision=${nisse.jgit.commit}
19 | version=${project.version}
20 | os.detected.name=${os.detected.name}
21 | os.detected.arch=${os.detected.arch}
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/hello/src/main/java/org/mvndaemon/mvnd/test/multi/module/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import org.mvndaemon.mvnd.test.multi.module.api.Greeting;
19 |
20 | public class Hello implements Greeting {
21 |
22 | public String greet() {
23 | return "Hello";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/hello/src/main/java/org/mvndaemon/mvnd/test/multi/module/hello/Hello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import org.mvndaemon.mvnd.test.multi.module.api.Greeting;
19 |
20 | public class Hello implements Greeting {
21 |
22 | public String greet() {
23 | return "Hello";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | wrapperVersion=3.3.2
18 | distributionType=only-script
19 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/4.0.0-rc-5/apache-maven-4.0.0-rc-5-bin.zip
20 |
--------------------------------------------------------------------------------
/.mvn/gradle-enterprise.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 | https://ge.apache.org
8 |
9 |
10 |
11 | true
12 |
13 |
14 | 0.0.0.0
15 |
16 | ALWAYS
17 | true
18 | #{isFalse(env['GITHUB_ACTIONS'])}
19 |
20 |
21 |
22 | #{isFalse(env['GITHUB_ACTIONS'])}
23 |
24 |
25 | false
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/.mvn/release-settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 | maven-staging
7 |
8 |
9 | maven-staging-rc1
10 | https://repository.apache.org/content/repositories/maven-2247/
11 |
12 | true
13 |
14 |
15 | false
16 |
17 |
18 |
19 |
20 |
21 |
22 | maven-staging
23 |
24 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/changes/module/src/main/java/org/mvndaemon/mvnd/test/upgrades/bom/module/UseHello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.bom.module;
17 |
18 | import org.mvndaemon.mvnd.test.upgrades.nw.module.Hello;
19 |
20 | public class UseHello {
21 |
22 | public void use() {
23 | System.out.println(new Hello().hi());
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/type-description/server/src/main/java/org/mvndaemon/mvnd/test/type/description/server/Main.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.type.description.server;
17 |
18 | import io.quarkus.runtime.Quarkus;
19 |
20 | /**
21 | * @author Ales Justin
22 | */
23 | public class Main {
24 | public static void main(String[] args) {
25 | Quarkus.run(args);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/parent/module/src/main/java/org/mvndaemon/mvnd/test/upgrades/bom/module/UseHello.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.upgrades.bom.module;
17 |
18 | import org.mvndaemon.mvnd.test.upgrades.bom.hello.Hello;
19 |
20 | public class UseHello {
21 |
22 | public void use() {
23 | System.out.println(new Hello().sayHello());
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/.github/ci-extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
20 | eu.maveniverse.maven.mimir
21 | extension
22 | 0.7.0
23 |
24 |
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/parent-with-property/child/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 | 4.0.0
21 |
22 |
23 | org.mvndaemon.mvnd.test.parent-with-property
24 | parent
25 | ${revision}
26 | ..
27 |
28 |
29 | child
30 |
31 |
--------------------------------------------------------------------------------
/client/src/main/resources/glibc/gcc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Licensed to the Apache Software Foundation (ASF) under one
4 | # or more contributor license agreements. See the NOTICE file
5 | # distributed with this work for additional information
6 | # regarding copyright ownership. The ASF licenses this file
7 | # to you under the Apache License, Version 2.0 (the
8 | # "License"); you may not use this file except in compliance
9 | # with the License. You may obtain a copy of the License at
10 | #
11 | # http://www.apache.org/licenses/LICENSE-2.0
12 | #
13 | # Unless required by applicable law or agreed to in writing,
14 | # software distributed under the License is distributed on an
15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 | # KIND, either express or implied. See the License for the
17 | # specific language governing permissions and limitations
18 | # under the License.
19 |
20 | set -euf
21 |
22 | base=$(dirname -- "$0")
23 |
24 | # fix glibc api version on the fly
25 | find . -name '*.o' -print0 | xargs -0rn 1 objcopy --redefine-syms="$base/glibc.redef"
26 |
27 | exec gcc "$@"
28 |
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
18 | name: Stale
19 |
20 | on:
21 | schedule:
22 | - cron: '55 2 * * *'
23 | issue_comment:
24 | types: [ 'created' ]
25 |
26 | jobs:
27 | stale:
28 | uses: 'apache/maven-gh-actions-shared/.github/workflows/stale.yml@v4'
29 |
--------------------------------------------------------------------------------
/.github/workflows/pr-automation.yml:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
18 | name: PR Automation
19 | on:
20 | pull_request_target:
21 | types:
22 | - closed
23 |
24 | jobs:
25 | pr-automation:
26 | name: PR Automation
27 | uses: apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml@v4
28 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/InvokerTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/invoker")
24 | class InvokerTest extends InvokerNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/ExtensionsTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/extensions")
24 | class ExtensionsTest extends ExtensionsNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/maven-conf")
24 | class MavenConfTest extends MavenConfNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DeleteRepoTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/delete-repo")
24 | class DeleteRepoTest extends DeleteRepoNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/InputStreamTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/input-stream")
24 | class InputStreamTest extends InputStreamNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/type-description/server/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2021 the original author or authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | quarkus.datasource.db-kind=h2
18 | quarkus.datasource.jdbc.url=jdbc:h2:file:/tmp/h2/database.db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
19 | quarkus.datasource.jdbc.driver=org.h2.Driver
20 | quarkus.datasource.username=sa
21 | quarkus.datasource.password=sa
22 | quarkus.datasource.jdbc.max-size=10
23 | quarkus.hibernate-orm.database.generation=create-drop
24 | quarkus.hibernate-orm.log.sql=true
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/ThreadOptionTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/multi-module")
24 | class ThreadOptionTest extends ThreadOptionNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/parent-with-property/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.parent-with-property
23 | parent
24 | ${revision}
25 | pom
26 |
27 |
28 | 1
29 |
30 |
31 |
32 | child
33 |
34 |
35 |
--------------------------------------------------------------------------------
/logging/src/main/resources/META-INF/maven/slf4j-configuration.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
18 | # key = Slf4j effective logger factory implementation
19 | # value = corresponding o.a.m.cli.logging.Slf4jConfiguration class
20 | org.mvndaemon.mvnd.logging.slf4j.MvndLoggerFactory=org.apache.maven.cling.logging.impl.MavenSimpleConfiguration
21 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/UpgradesInBomTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/upgrades-in-bom")
24 | class UpgradesInBomTest extends UpgradesInBomNativeIT {}
25 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/ProcessHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | public class ProcessHelper {
22 |
23 | public static void killChildrenProcesses() {
24 | ProcessHandle.current().descendants().forEach(ProcessHandle::destroy);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/ModuleAndPluginTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/module-and-plugin")
24 | class ModuleAndPluginTest extends ModuleAndPluginNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/NewManagedModuleTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/new-managed-module")
24 | class NewManagedModuleTest extends NewManagedModuleNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfIgnoreExtTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | @MvndTest(projectDir = "src/test/projects/maven-conf-ignore-ext")
24 | class MavenConfIgnoreExtTest extends MavenConfIgnoreExtNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/extension/src/main/resources/META-INF/maven/extension.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | org.mvndaemon.mvnd.test.extension.with.api.extension
22 |
23 |
24 | org.mvndaemon.mvnd.test.extension.with.api:extension
25 |
26 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/junit/ClientFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.junit;
20 |
21 | import org.mvndaemon.mvnd.client.Client;
22 | import org.mvndaemon.mvnd.client.DaemonParameters;
23 |
24 | public interface ClientFactory {
25 | Client newClient(DaemonParameters parameters);
26 | }
27 |
--------------------------------------------------------------------------------
/native/src/test/java/org/mvndaemon/mvnd/nativ/MvndNativeLoaderTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.nativ;
20 |
21 | import org.junit.jupiter.api.Test;
22 |
23 | public class MvndNativeLoaderTest {
24 |
25 | @Test
26 | public void testLoadJansi() {
27 | MvndNativeLoader.initialize();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extensions/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.extensions
23 | extensions
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/CompletionTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 | import org.mvndaemon.mvnd.junit.MvndTestExtension;
23 |
24 | @MvndTest(projectDir = MvndTestExtension.TEMP_EXTERNAL)
25 | class CompletionTest extends CompletionNativeIT {}
26 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfIgnoreExtDefNativeIT.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndNativeTest;
22 |
23 | @MvndNativeTest(projectDir = "src/test/projects/maven-conf-ignore-ext-def")
24 | class MavenConfIgnoreExtDefNativeIT extends MavenConfNativeIT {}
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.maven-conf
23 | maven-conf
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/environment/prj1/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.environment
23 | environment-prj1
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/environment/prj2/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.environment
23 | environment-prj2
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/default-heap/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.max-heap
23 | max-heap-default-heap
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/jvm-config/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.max-heap
23 | max-heap-jvm-config
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/max-heap/mvnd-props/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.max-heap
23 | max-heap-jvm-config
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj1/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.specific-file
23 | specific-file-prj1
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/specific-file/prj2/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 |
21 | 4.0.0
22 | org.mvndaemon.mvnd.test.specific-file
23 | specific-file-prj2
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf-ignore-ext/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.maven-conf
23 | maven-conf-ignore-ext
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/maven-conf-ignore-ext-def/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.maven-conf
23 | maven-conf-ignore-ext-def
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
--------------------------------------------------------------------------------
/.asf.yaml:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright 2021-2024 the original author or authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | # see https://s.apache.org/asfyaml
18 | github:
19 | description: "Apache Maven Daemon"
20 | homepage: https://maven.apache.org/
21 | labels:
22 | - java
23 | - build-management
24 | - apache-maven
25 | - maven
26 | protected_branches:
27 | master: { }
28 | pull_requests:
29 | del_branch_on_merge: true
30 | enabled_merge_buttons:
31 | squash: true
32 | merge: false
33 | rebase: true
34 |
35 | notifications:
36 | commits: commits@maven.apache.org
37 | issues: issues@maven.apache.org
38 | pullrequests: issues@maven.apache.org
39 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/VersionTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 | import org.mvndaemon.mvnd.junit.MvndTestExtension;
23 |
24 | @MvndTest(projectDir = MvndTestExtension.TEMP_EXTERNAL)
25 | class VersionTest extends VersionNativeIT {
26 | protected boolean isNative() {
27 | return false;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one or more
3 | # contributor license agreements. See the NOTICE file distributed with
4 | # this work for additional information regarding copyright ownership.
5 | # The ASF licenses this file to You under the Apache License, Version 2.0
6 | # (the "License"); you may not use this file except in compliance with
7 | # the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
19 |
20 | blank_issues_enabled: false
21 |
22 | contact_links:
23 |
24 | - name: Project Mailing Lists
25 | url: https://maven.apache.org/mailing-lists.html
26 | about: Please ask a question or discuss here
27 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/attached-artifact-resolution/jdt/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
21 | 4.0.0
22 |
23 |
24 | org.example
25 | java
26 | 1.0-SNAPSHOT
27 |
28 |
29 | jdt
30 |
31 |
32 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/DaemonState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | /**
22 | * File origin
23 | * https://github.com/gradle/gradle/blob/v5.6.2/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/server/api/DaemonStateControl.java
24 | */
25 | public enum DaemonState {
26 | Idle,
27 | Busy,
28 | Canceled,
29 | StopRequested,
30 | Stopped,
31 | Broken
32 | }
33 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/JavaVersion.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | public class JavaVersion {
22 |
23 | private static float javaSpec = 0.0f;
24 |
25 | public static float getJavaSpec() {
26 | if (javaSpec <= 0.0f) {
27 | javaSpec = Float.parseFloat(System.getProperty("java.specification.version"));
28 | }
29 | return javaSpec;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/forked/mod1/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.forked
23 | forked
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | forked-mod1
29 |
30 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/forked/mod2/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.forked
23 | forked
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | forked-mod2
29 |
30 |
--------------------------------------------------------------------------------
/daemon/src/main/java/org/mvndaemon/mvnd/cache/CacheFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.cache;
20 |
21 | /**
22 | * A factory for cache objects
23 | */
24 | public interface CacheFactory {
25 |
26 | /**
27 | * @param the type of {@link Cache} keys
28 | * @param the type of {@link Cache} values
29 | * @return a new {@link Cache}
30 | */
31 | Cache newCache();
32 | }
33 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/bootstrap-plugin/bootstrap/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
21 | 4.0.0
22 | org.reproducer
23 | bootstrap
24 | 1.0.0-SNAPSHOT
25 |
26 |
27 |
28 | 11
29 | 11
30 |
31 |
32 |
--------------------------------------------------------------------------------
/helper/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | 4.0.0
22 |
23 | org.apache.maven.daemon
24 | mvnd
25 | 2.0.0-rc-4-SNAPSHOT
26 |
27 |
28 | mvnd-helper-agent
29 |
30 | jar
31 | Maven Daemon - Helper Agent
32 |
33 |
34 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfIgnoreExtDefTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.junit.jupiter.api.condition.DisabledOnOs;
22 | import org.junit.jupiter.api.condition.OS;
23 | import org.mvndaemon.mvnd.junit.MvndTest;
24 |
25 | @DisabledOnOs(OS.LINUX)
26 | @MvndTest(projectDir = "src/test/projects/maven-conf-ignore-ext-def")
27 | class MavenConfIgnoreExtDefTest extends MavenConfIgnoreExtDefNativeIT {}
28 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/api/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.multi-lookup
23 | multi-lookup
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | multi-lookup-api
29 |
30 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/api/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.multi-module
23 | multi-module
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | multi-module-api
29 |
30 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/dup-ga/hi1/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.dup-ga
23 | dup-ga
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | dup-ga-hi
29 | 1.0-SNAPSHOT
30 |
31 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/dup-ga/hi2/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.dup-ga
23 | dup-ga
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | dup-ga-hi
29 | 2.0-SNAPSHOT
30 |
31 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/AlpineLinuxTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.junit.jupiter.api.TestInstance;
22 | import org.testcontainers.junit.jupiter.Testcontainers;
23 |
24 | @TestInstance(TestInstance.Lifecycle.PER_CLASS)
25 | @Testcontainers(disabledWithoutDocker = true)
26 | class AlpineLinuxTest extends AlpineLinuxNativeIT {
27 |
28 | @Override
29 | protected boolean isNative() {
30 | return false;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/changes/new-module/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.new-managed-module
23 | new-managed-module-parent
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | new-managed-module-new-module
29 |
30 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/plugin/src/main/java/org/mvndaemon/mvnd/test/extension/with/api/plugin/TheMojo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.mvndaemon.mvnd.test.extension.with.api.plugin;
18 |
19 | import org.apache.maven.plugin.AbstractMojo;
20 | import org.apache.maven.plugin.MojoExecutionException;
21 | import org.apache.maven.plugins.annotations.Mojo;
22 |
23 | import javax.inject.Inject;
24 |
25 | import org.mvndaemon.mvnd.test.extension.with.api.extension.TheApi;
26 |
27 | @Mojo( name = "mojo")
28 | public class TheMojo extends AbstractMojo {
29 | @Inject
30 | TheApi api;
31 |
32 | public void execute() throws MojoExecutionException {
33 | api.sayHello();
34 | }
35 | }
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/delete-repo/src/test/java/org/mvndaemon/mvnd/test/single/module/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.single.module;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 | @Test
28 | void hello() throws IOException {
29 | final String actual = new Hello().sayHello();
30 | Files.write(Paths.get("target/hello.txt"), actual.getBytes(StandardCharsets.UTF_8));
31 | Assertions.assertEquals("Hello", actual);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/single-module/src/test/java/org/mvndaemon/mvnd/test/single/module/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.single.module;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 | @Test
28 | void hello() throws IOException {
29 | final String actual = new Hello().sayHello();
30 | Files.write(Paths.get("target/hello.txt"), actual.getBytes(StandardCharsets.UTF_8));
31 | Assertions.assertEquals("Hello", actual);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/client/src/test/java/org/mvndaemon/mvnd/client/DaemonConnectorTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.client;
20 |
21 | import org.junit.jupiter.api.Test;
22 |
23 | import static org.junit.jupiter.api.Assertions.assertEquals;
24 | import static org.junit.jupiter.api.Assertions.assertNotNull;
25 |
26 | public class DaemonConnectorTest {
27 |
28 | @Test
29 | public void newId() {
30 | String id = DaemonConnector.newId();
31 | assertNotNull(id);
32 | assertEquals(8, id.length());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/client/src/main/java/org/mvndaemon/mvnd/client/Client.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.client;
20 |
21 | import java.util.Arrays;
22 | import java.util.List;
23 |
24 | import org.mvndaemon.mvnd.common.logging.ClientOutput;
25 |
26 | public interface Client {
27 |
28 | ExecutionResult execute(ClientOutput output, List args) throws InterruptedException;
29 |
30 | default ExecutionResult execute(ClientOutput output, String... args) throws InterruptedException {
31 | return execute(output, Arrays.asList(args));
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/helper/src/main/java/org/mvndaemon/mvnd/pump/AgentHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.pump;
20 |
21 | import java.io.BufferedReader;
22 | import java.io.InputStream;
23 | import java.io.InputStreamReader;
24 | import java.io.PrintStream;
25 |
26 | public class AgentHelper {
27 |
28 | public static void pump(InputStream stream, PrintStream out) {
29 | new Thread(() -> new BufferedReader(new InputStreamReader(stream))
30 | .lines()
31 | .forEach(out::println))
32 | .start();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/SignalHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | public class SignalHelper {
22 |
23 | /**
24 | * Ignore signals to that stopping the mvnd client won't stop the daemon
25 | */
26 | public static void ignoreStopSignals() throws Exception {
27 | sun.misc.Signal.handle(new sun.misc.Signal("INT"), sun.misc.SignalHandler.SIG_IGN);
28 | if (Os.current() != Os.WINDOWS) {
29 | sun.misc.Signal.handle(new sun.misc.Signal("TSTP"), sun.misc.SignalHandler.SIG_IGN);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/client/src/test/java/org/mvndaemon/mvnd/client/OsUtilsTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.client;
20 |
21 | import org.assertj.core.api.Assertions;
22 | import org.junit.jupiter.api.Test;
23 | import org.mvndaemon.mvnd.common.OsUtils;
24 |
25 | public class OsUtilsTest {
26 |
27 | /**
28 | * This test needs to be in the client module as long as the common module is on Java 8
29 | */
30 | @Test
31 | void findProcessRssInKb() {
32 | long rss = OsUtils.findProcessRssInKb(ProcessHandle.current().pid());
33 | Assertions.assertThat(rss).isGreaterThan(0);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/FEATURE.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one or more
3 | # contributor license agreements. See the NOTICE file distributed with
4 | # this work for additional information regarding copyright ownership.
5 | # The ASF licenses this file to You under the Apache License, Version 2.0
6 | # (the "License"); you may not use this file except in compliance with
7 | # the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
19 |
20 | name: Feature request
21 | description: File a proposal for new feature, improvement
22 | labels: ["enhancement"]
23 |
24 | body:
25 | - type: markdown
26 | attributes:
27 | value: |
28 | Thanks for taking the time to fill out this new feature, improvement proposal.
29 |
30 | - type: textarea
31 | id: massage
32 | attributes:
33 | label: New feature, improvement proposal
34 | validations:
35 | required: true
36 |
--------------------------------------------------------------------------------
/client/src/main/java-fallback/org/mvndaemon/mvnd/client/DefaultClient.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.client;
20 |
21 | import org.apache.maven.cling.MavenCling;
22 | import org.slf4j.Logger;
23 | import org.slf4j.LoggerFactory;
24 |
25 | public class DefaultClient {
26 | public static void main(String[] argv) throws Exception {
27 | final Logger LOGGER = LoggerFactory.getLogger(DefaultClient.class);
28 | LOGGER.warn("Found old JDK, fallback to the embedded maven!");
29 | LOGGER.warn("Use JDK 17+ to run maven-mvnd client!");
30 |
31 | MavenCling.main(argv);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/attached-artifact-resolution/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
21 | 4.0.0
22 |
23 | org.example
24 | java
25 | 1.0-SNAPSHOT
26 | pom
27 |
28 |
29 | jdt
30 | java-frontend
31 |
32 |
33 |
34 | UTF-8
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/logging/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | 4.0.0
22 |
23 | org.apache.maven.daemon
24 | mvnd
25 | 2.0.0-rc-4-SNAPSHOT
26 |
27 |
28 | mvnd-logging
29 |
30 | jar
31 | Maven Daemon - Logging
32 |
33 |
34 |
35 | org.apache.maven
36 | maven-logging
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/dist/src/main/distro/bin/mvnd-daemon.conf:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | main is org.mvndaemon.mvnd.daemon.Server from plexus.core
18 |
19 | set maven.home default ${mvnd.home}/mvn
20 | set maven.conf default ${maven.home}/conf
21 |
22 | set java.util.logging.config.file default ${maven.conf}/logging/java.util.logging.properties
23 |
24 | [plexus.core]
25 | load ${maven.conf}/logging
26 | load ${maven.home}/lib/mvnd/*.jar
27 | optionally ${maven.home}/lib/ext/redisson/*.jar
28 | optionally ${maven.home}/lib/ext/hazelcast/*.jar
29 | optionally ${maven.home}/lib/ext/*.jar
30 | load ${maven.home}/lib/maven-*.jar
31 | load ${maven.home}/lib/*.jar
32 |
--------------------------------------------------------------------------------
/dist/src/main/distro/bin/mvnd-client.conf:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | main is org.mvndaemon.mvnd.client.DefaultClient from plexus.core
18 |
19 | set maven.home default ${mvnd.home}/mvn
20 | set maven.conf default ${maven.home}/conf
21 |
22 | set java.util.logging.config.file default ${maven.conf}/logging/java.util.logging.properties
23 |
24 | [plexus.core]
25 | load ${maven.conf}/logging
26 | load ${maven.home}/lib/mvnd/*.jar
27 | optionally ${maven.home}/lib/ext/redisson/*.jar
28 | optionally ${maven.home}/lib/ext/hazelcast/*.jar
29 | optionally ${maven.home}/lib/ext/*.jar
30 | load ${maven.home}/lib/maven-*.jar
31 | load ${maven.home}/lib/*.jar
32 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/bootstrap-plugin/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
22 | 4.0.0
23 |
24 | org.example
25 | mvn-bootstrap-plugin-reproducer
26 | 1.0-SNAPSHOT
27 |
28 | pom
29 |
30 |
31 | 11
32 | 11
33 |
34 |
35 |
36 | bootstrap
37 | startup
38 |
39 |
40 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MaxHeapTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import org.mvndaemon.mvnd.junit.MvndTest;
22 |
23 | class MaxHeapTest extends MaxHeapNativeIT {
24 |
25 | @MvndTest(projectDir = "src/test/projects/max-heap/default-heap")
26 | static class DefaultConfig extends MaxHeapNativeIT.DefaultConfig {}
27 |
28 | @MvndTest(projectDir = "src/test/projects/max-heap/jvm-config")
29 | static class JvmConfig extends MaxHeapNativeIT.JvmConfig {}
30 |
31 | @MvndTest(projectDir = "src/test/projects/max-heap/mvnd-props")
32 | static class MvndProps extends MaxHeapNativeIT.MvndProps {}
33 | }
34 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/DaemonExpirationStatus.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | /**
22 | * Expiration status for daemon expiration check results.
23 | * Note that order here is important, higher ordinal statuses
24 | * take precedent over lower ordinal statuses when aggregating
25 | * results.
26 | *
27 | * File origin:
28 | * https://github.com/gradle/gradle/blob/v6.5.1/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/server/expiry/DaemonExpirationStatus.java
29 | */
30 | public enum DaemonExpirationStatus {
31 | DO_NOT_EXPIRE,
32 | QUIET_EXPIRE,
33 | GRACEFUL_EXPIRE,
34 | IMMEDIATE_EXPIRE;
35 | }
36 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.extension.with.api
23 | plugin-user
24 | 0.0.1-SNAPSHOT
25 | pom
26 |
27 |
28 |
29 |
30 | org.mvndaemon.mvnd.test.extension.with.api
31 | plugin
32 | 0.0.1-SNAPSHOT
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/type-description/server/src/main/java/org/mvndaemon/mvnd/test/type/description/server/domain/AbstractEntity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.type.description.server.domain;
17 |
18 | import jakarta.persistence.GeneratedValue;
19 | import jakarta.persistence.GenerationType;
20 | import jakarta.persistence.Id;
21 | import jakarta.persistence.MappedSuperclass;
22 | import java.io.Serializable;
23 |
24 | /**
25 | * @author Ales Justin
26 | */
27 | @MappedSuperclass
28 | public abstract class AbstractEntity implements Serializable {
29 | private static final long serialVersionUID = 1L;
30 |
31 | @Id
32 | @GeneratedValue(strategy = GenerationType.IDENTITY)
33 | private Long id;
34 |
35 | public Long getId() {
36 | return id;
37 | }
38 |
39 | public void setId(Long id) {
40 | this.id = id;
41 | }
42 | }
--------------------------------------------------------------------------------
/client/src/main/java/org/mvndaemon/mvnd/client/ExecutionResult.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.client;
20 |
21 | import java.util.List;
22 |
23 | /**
24 | * A result of a {@code mvnd} build.
25 | */
26 | public interface ExecutionResult {
27 |
28 | boolean isSuccess();
29 |
30 | ExecutionResult assertFailure();
31 |
32 | ExecutionResult assertSuccess();
33 |
34 | int getExitCode();
35 |
36 | public static StringBuilder appendCommand(StringBuilder sb, List args) {
37 | sb.append("mvnd");
38 | for (String arg : args) {
39 | sb.append(" \"").append(arg).append('"');
40 | }
41 | return sb;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/daemon/src/main/java/org/mvndaemon/mvnd/daemon/Connection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.daemon;
20 |
21 | import java.util.function.Predicate;
22 |
23 | import org.mvndaemon.mvnd.common.Message;
24 |
25 | public interface Connection {
26 |
27 | static Connection getCurrent() {
28 | return Holder.CURRENT;
29 | }
30 |
31 | static void setCurrent(Connection connection) {
32 | Holder.CURRENT = connection;
33 | }
34 |
35 | void dispatch(Message message);
36 |
37 | T request(Message request, Class responseType, Predicate matcher);
38 |
39 | class Holder {
40 | static Connection CURRENT;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/dist/src/main/distro/mvn/bin/m2.conf:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | main is ${maven.mainClass} from plexus.core
18 |
19 | set maven.conf default ${maven.home}/conf
20 |
21 | set java.util.logging.config.file default ${maven.conf}/logging/java.util.logging.properties
22 | set logback.configurationFile default ${maven.conf}/logging/logback-mvn.xml
23 | set logback.configurationFile.fallback default ${maven.conf}/logging/logback.xml
24 |
25 | [plexus.core]
26 | load ${maven.conf}/logging
27 | optionally ${maven.home}/lib/ext/redisson/*.jar
28 | optionally ${maven.home}/lib/ext/hazelcast/*.jar
29 | optionally ${maven.home}/lib/ext/*.jar
30 | load ${maven.home}/lib/maven-*.jar
31 | load ${maven.home}/lib/*.jar
32 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one or more
3 | # contributor license agreements. See the NOTICE file distributed with
4 | # this work for additional information regarding copyright ownership.
5 | # The ASF licenses this file to You under the Apache License, Version 2.0
6 | # (the "License"); you may not use this file except in compliance with
7 | # the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | version: 2
18 | updates:
19 |
20 | - package-ecosystem: "maven"
21 | directory: "/"
22 | schedule:
23 | interval: "daily"
24 |
25 | - package-ecosystem: "github-actions"
26 | directory: "/"
27 | schedule:
28 | interval: "daily"
29 |
30 | - package-ecosystem: "maven"
31 | directory: "/"
32 | schedule:
33 | interval: "daily"
34 | target-branch: "mvnd-1.x"
35 | labels:
36 | - "backport"
37 | - "dependencies"
38 |
39 | - package-ecosystem: "github-actions"
40 | directory: "/"
41 | schedule:
42 | interval: "daily"
43 | target-branch: "mvnd-1.x"
44 | labels:
45 | - "backport"
46 | - "dependencies"
47 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfIgnoreExtNativeIT.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import java.util.ArrayList;
22 | import java.util.List;
23 |
24 | import org.mvndaemon.mvnd.junit.MvndNativeTest;
25 |
26 | @MvndNativeTest(projectDir = "src/test/projects/maven-conf-ignore-ext")
27 | class MavenConfIgnoreExtNativeIT extends MavenConfNativeIT {
28 | @Override
29 | protected List mvndParams(String expression) {
30 | ArrayList result = new ArrayList<>(super.mvndParams(expression));
31 | result.add("-Dmvnd.coreExtensionsExclude=foo:bar,io.takari.maven:takari-smart-builder");
32 | return result;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/daemon-crash/hello/src/test/java/org/mvndaemon/mvnd/test/multi/module/hello/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hello().greet();
31 | Assertions.assertEquals("Hello", actual);
32 |
33 | /* Make sure the plugin was run before this test */
34 | final String content = new String(Files.readAllBytes(Paths.get("target/hello.txt")), StandardCharsets.UTF_8);
35 | Assertions.assertTrue("Hi".equals(content) || "Hello".equals(content));
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/integration-tests/src/test/resources/maven.logger.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 |
18 | maven.logger.defaultLogLevel=info
19 | maven.logger.showDateTime=false
20 | maven.logger.showThreadName=false
21 | maven.logger.showLogName=false
22 | maven.logger.logFile=System.out
23 | maven.logger.cacheOutputStream=true
24 | maven.logger.levelInBrackets=true
25 | maven.logger.log.Sisu=info
26 | maven.logger.warnLevelString=WARNING
27 |
28 | # MNG-6181: mvn -X also prints all debug logging from HttpClient
29 | # Be aware that the shaded packages are used
30 | # org.apache.http -> org.apache.maven.wagon.providers.http.httpclient
31 | maven.logger.log.org.apache.maven.wagon.providers.http.httpclient=off
32 | maven.logger.log.org.apache.maven.wagon.providers.http.httpclient.wire=off
33 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/module-and-plugin/hello/src/test/java/org/mvndaemon/mvnd/test/multi/module/hello/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hello().greet();
31 | Assertions.assertEquals("Hello", actual);
32 |
33 | /* Make sure the plugin was run before this test */
34 | final String content = new String(Files.readAllBytes(Paths.get("target/hello.txt")), StandardCharsets.UTF_8);
35 | Assertions.assertTrue("Hi".equals(content) || "Hello".equals(content));
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/daemon/src/main/java/org/mvndaemon/mvnd/cache/CacheRecord.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.cache;
20 |
21 | import java.nio.file.Path;
22 | import java.util.stream.Stream;
23 |
24 | /**
25 | * Data stored in a {@link Cache} depending on the state of a collection of files.
26 | */
27 | public interface CacheRecord {
28 |
29 | /**
30 | * @return a {@link Stream} of file (not directory) {@link Path}s whose modification or deletion causes invalidation
31 | * of this {@link CacheRecord}.
32 | */
33 | Stream getDependencyPaths();
34 |
35 | /**
36 | * Callback called by the cache when this {@link CacheRecord} is removed from the cache.
37 | */
38 | void invalidate();
39 | }
40 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/logging/ClientOutput.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common.logging;
20 |
21 | import java.util.List;
22 | import java.util.function.Consumer;
23 |
24 | import org.mvndaemon.mvnd.common.Message;
25 |
26 | /**
27 | * A sink for various kinds of events sent by the daemon.
28 | */
29 | public interface ClientOutput extends AutoCloseable {
30 |
31 | void setDaemonId(String daemonId);
32 |
33 | void setDaemonDispatch(Consumer sink);
34 |
35 | void setDaemonReceive(Consumer sink);
36 |
37 | void accept(Message message);
38 |
39 | void accept(List messages);
40 |
41 | void describeTerminal();
42 |
43 | int getTerminalWidth();
44 | }
45 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/BufferCaster.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | import java.nio.Buffer;
22 |
23 | /**
24 | * File origin:
25 | * https://github.com/gradle/gradle/blob/v5.6.2/subprojects/base-services/src/main/java/org/gradle/internal/io/BufferCaster.java
26 | */
27 | public class BufferCaster {
28 | /**
29 | * Without this cast, when the code compiled by Java 9+ is executed on Java 8, it will throw
30 | * java.lang.NoSuchMethodError: Method flip()Ljava/nio/ByteBuffer; does not exist in class java.nio.ByteBuffer
31 | */
32 | @SuppressWarnings("RedundantCast")
33 | public static Buffer cast(T byteBuffer) {
34 | return (Buffer) byteBuffer;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/attached-artifact-resolution/java-frontend/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
21 | 4.0.0
22 |
23 |
24 | org.example
25 | java
26 | 1.0-SNAPSHOT
27 |
28 |
29 | java-frontend
30 |
31 |
32 |
33 | ${project.groupId}
34 | jdt
35 | ${project.version}
36 | shaded
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/logging/src/main/java/org/mvndaemon/mvnd/logging/slf4j/MvndLoggerFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.logging.slf4j;
20 |
21 | import org.apache.maven.slf4j.MavenLoggerFactory;
22 | import org.slf4j.Logger;
23 |
24 | /**
25 | * LogFactory for Maven which can create a simple logger or one which, if set, fails the build on a severity threshold.
26 | */
27 | public class MvndLoggerFactory extends MavenLoggerFactory {
28 |
29 | public MvndLoggerFactory() {}
30 |
31 | protected Logger getNewLoggingInstance(String name) {
32 | if (name.startsWith("org.mvndaemon.mvnd.daemon")) {
33 | return new MvndDaemonLogger(name);
34 | } else {
35 | return super.getNewLoggingInstance(name);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/daemon-crash/plugin/src/main/java/org/mvndaemon/mvnd/test/module/plugin/mojo/HelloMojo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.module.plugin.mojo;
17 |
18 | import java.io.File;
19 | import java.io.IOException;
20 | import java.nio.charset.StandardCharsets;
21 | import java.nio.file.Files;
22 | import java.nio.file.Path;
23 |
24 | import org.apache.maven.plugin.AbstractMojo;
25 | import org.apache.maven.plugin.MojoExecutionException;
26 | import org.apache.maven.plugin.MojoFailureException;
27 | import org.apache.maven.plugins.annotations.Mojo;
28 | import org.apache.maven.plugins.annotations.Parameter;
29 |
30 | /**
31 | */
32 | @Mojo(name = "hello", requiresProject = true)
33 | public class HelloMojo extends AbstractMojo {
34 |
35 | @Parameter
36 | File file;
37 |
38 | @Override
39 | public void execute() throws MojoExecutionException, MojoFailureException {
40 | System.exit(-1);
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/daemon/src/test/java/org/mvndaemon/mvnd/daemon/DaemonMemoryStatusTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.daemon;
20 |
21 | import java.util.concurrent.Executors;
22 | import java.util.concurrent.ScheduledExecutorService;
23 |
24 | import org.junit.jupiter.api.Test;
25 |
26 | import static org.junit.jupiter.api.Assertions.assertNotNull;
27 |
28 | public class DaemonMemoryStatusTest {
29 |
30 | @Test
31 | void testStrategy() {
32 | ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
33 | try {
34 | DaemonMemoryStatus status = new DaemonMemoryStatus(executor);
35 | assertNotNull(status.strategy);
36 | } finally {
37 | executor.shutdownNow();
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/native/src/main/java/org/mvndaemon/mvnd/nativ/CLibrary.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.nativ;
20 |
21 | /**
22 | * Interface to access some low level POSIX functions, loaded by
23 | * HawtJNI Runtime
24 | * as jansi library.
25 | *
26 | * @author Hiram Chirino
27 | * @see MvndNativeLoader
28 | */
29 | @SuppressWarnings("unused")
30 | public class CLibrary {
31 |
32 | static {
33 | MvndNativeLoader.initialize();
34 | }
35 |
36 | public static native int setenv(String name, String value);
37 |
38 | public static native int chdir(String path);
39 |
40 | public static native int getOsxMemoryInfo(long[] totalAndAvailMem);
41 | }
42 |
--------------------------------------------------------------------------------
/daemon/src/main/java/org/apache/maven/cli/DaemonCli.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.apache.maven.cli;
20 |
21 | import java.io.InputStream;
22 | import java.io.OutputStream;
23 | import java.util.List;
24 | import java.util.Map;
25 |
26 | import org.apache.maven.logging.BuildEventListener;
27 |
28 | /**
29 | * Simple interface to bridge maven 3.9.x and 4.0.x CLI
30 | */
31 | public interface DaemonCli extends AutoCloseable {
32 | int main(
33 | List args,
34 | String workingDir,
35 | String projectDir,
36 | Map env,
37 | BuildEventListener buildEventListener,
38 | InputStream in,
39 | OutputStream out,
40 | OutputStream err)
41 | throws Exception;
42 | }
43 |
--------------------------------------------------------------------------------
/RELEASING.adoc:
--------------------------------------------------------------------------------
1 | = How to release `mvnd`
2 |
3 | * Run the https://raw.githubusercontent.com/apache/maven-mvnd/master/build/release-build.sh[release script] which will update the versions, the native binaries and will tag the new git commit. This new tag will trigger the https://raw.githubusercontent.com/apache/maven-mvnd/master/.github/workflows/release.yaml[release workflow] on this newly created tag.
4 | [source,shell]
5 | ----
6 | ./build/release-build.sh
7 | ----
8 |
9 | Warning for Fedora users: The RedHat `podman` is usually preinstalled and happily coexisting with `Docker`. Make sure Docker is being used, usually by setting `OCI_EXE=docker` env variable.
10 |
11 | * Once the workflow completes, run the https://raw.githubusercontent.com/apache/maven-mvnd/master/build/release-candidate.sh[release-candidate script] which will download the built assemblies, compute the checksums and signatures, commit them to the https://dist.apache.org/repos/dist/dev/maven/mvnd/[dev distribution repository]
12 | https://github.com/apache/maven-mvnd/releases[releases] and also upload them as assets to the staging area for the github draft release.
13 | [source,shell]
14 | ----
15 | ./build/release-candidate.sh
16 | ----
17 | You can now call a vote on the mailto:dev@maven.apache.org[dev mailing list] pointing to that release candidate.
18 |
19 | * Once the vote passes, publish the release using the following command:
20 | [source,shell]
21 | ----
22 | ./build/release-publish.sh
23 | ----
24 | WARNING: *TODO*: document the publication process (move to the final svn area, homebrew, sdkman, choco updates...)
25 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/AttachedArtifactResolutionTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import javax.inject.Inject;
22 |
23 | import org.junit.jupiter.api.Test;
24 | import org.mvndaemon.mvnd.assertj.TestClientOutput;
25 | import org.mvndaemon.mvnd.client.Client;
26 | import org.mvndaemon.mvnd.junit.MvndTest;
27 |
28 | @MvndTest(projectDir = "src/test/projects/attached-artifact-resolution")
29 | class AttachedArtifactResolutionTest {
30 |
31 | @Inject
32 | Client client;
33 |
34 | @Test
35 | void cleanCompile() throws Exception {
36 | final TestClientOutput output = new TestClientOutput();
37 | client.execute(output, "clean", "compile", "-e", "-Dmvnd.log.level=DEBUG")
38 | .assertSuccess();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/extension-with-api/extension/src/main/java/org/mvndaemon/mvnd/test/extension/with/api/extension/TheImpl.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2021 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.extension.with.api.extension;
17 |
18 | import org.apache.maven.eventspy.EventSpy;
19 | import org.apache.maven.eventspy.AbstractEventSpy;
20 | import javax.inject.Named;
21 | import javax.inject.Singleton;
22 | import org.eclipse.sisu.Typed;
23 |
24 | @Named
25 | @Typed({EventSpy.class, TheApi.class})
26 | @Singleton
27 | public class TheImpl extends AbstractEventSpy implements TheApi {
28 | private boolean init;
29 |
30 | @Override
31 | public void init(Context context) throws Exception {
32 | System.out.println("Api extension is initialized");
33 | init = true;
34 | }
35 |
36 | @Override
37 | public void sayHello() {
38 | if (init) {
39 | System.out.println("Hello World!");
40 | } else {
41 | throw new IllegalStateException("Not initialized");
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/BUG.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Licensed to the Apache Software Foundation (ASF) under one or more
3 | # contributor license agreements. See the NOTICE file distributed with
4 | # this work for additional information regarding copyright ownership.
5 | # The ASF licenses this file to You under the Apache License, Version 2.0
6 | # (the "License"); you may not use this file except in compliance with
7 | # the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 |
18 | # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
19 |
20 | name: Bug Report
21 | description: File a bug report
22 | labels: ["bug"]
23 |
24 | body:
25 | - type: markdown
26 | attributes:
27 | value: |
28 | Thanks for taking the time to fill out this bug report.
29 |
30 | Simple fixes in single PRs do not require issues.
31 |
32 | **Do you use the latest project version?**
33 |
34 | - type: input
35 | id: version
36 | attributes:
37 | label: Affected version
38 | validations:
39 | required: true
40 |
41 | - type: textarea
42 | id: massage
43 | attributes:
44 | label: Bug description
45 | validations:
46 | required: true
47 |
48 |
49 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/junit/MvndTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.junit;
20 |
21 | import java.lang.annotation.ElementType;
22 | import java.lang.annotation.Retention;
23 | import java.lang.annotation.RetentionPolicy;
24 | import java.lang.annotation.Target;
25 |
26 | import org.junit.jupiter.api.extension.ExtendWith;
27 |
28 | @ExtendWith(MvndTestExtension.class)
29 | @Retention(RetentionPolicy.RUNTIME)
30 | @Target(ElementType.TYPE)
31 | public @interface MvndTest {
32 | /**
33 | * The path to the root directory of a test project relative to the current maven module directory. E.g.
34 | * @MvndTest(projectDir = "src/test/projects/my-project")
35 | */
36 | String projectDir();
37 |
38 | String keepAlive() default "";
39 |
40 | String maxLostKeepAlive() default "";
41 | }
42 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DupGATest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import javax.inject.Inject;
22 |
23 | import java.io.IOException;
24 |
25 | import org.junit.jupiter.api.Test;
26 | import org.mvndaemon.mvnd.assertj.TestClientOutput;
27 | import org.mvndaemon.mvnd.client.Client;
28 | import org.mvndaemon.mvnd.client.DaemonParameters;
29 | import org.mvndaemon.mvnd.junit.MvndTest;
30 |
31 | @MvndTest(projectDir = "src/test/projects/dup-ga")
32 | class DupGATest {
33 |
34 | @Inject
35 | Client client;
36 |
37 | @Inject
38 | DaemonParameters parameters;
39 |
40 | @Test
41 | void cleanInstall() throws IOException, InterruptedException {
42 | final TestClientOutput output = new TestClientOutput();
43 | client.execute(output, "clean", "install", "-e").assertSuccess();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/common/src/main/java/org/mvndaemon/mvnd/common/SocketHelper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.common;
20 |
21 | import java.io.IOException;
22 | import java.net.SocketAddress;
23 | import java.net.StandardProtocolFamily;
24 | import java.net.UnixDomainSocketAddress;
25 | import java.nio.channels.ServerSocketChannel;
26 | import java.nio.channels.SocketChannel;
27 |
28 | public class SocketHelper {
29 |
30 | public static SocketChannel openUnixSocket() throws IOException {
31 | return SocketChannel.open(StandardProtocolFamily.UNIX);
32 | }
33 |
34 | public static ServerSocketChannel openUnixServerSocket() throws IOException {
35 | return ServerSocketChannel.open(StandardProtocolFamily.UNIX).bind(null, 0);
36 | }
37 |
38 | public static SocketAddress unixSocketAddressOf(String s) {
39 | return UnixDomainSocketAddress.of(s);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/daemon/src/main/java/org/apache/maven/cli/DaemonMessageBuilderFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.apache.maven.cli;
20 |
21 | import org.apache.maven.api.annotations.Experimental;
22 | import org.apache.maven.api.di.Named;
23 | import org.apache.maven.api.di.Priority;
24 | import org.apache.maven.api.di.Singleton;
25 | import org.apache.maven.jline.JLineMessageBuilderFactory;
26 | import org.mvndaemon.mvnd.common.Environment;
27 |
28 | @Named
29 | @Singleton
30 | @Priority(20)
31 | @Experimental
32 | public class DaemonMessageBuilderFactory extends JLineMessageBuilderFactory {
33 |
34 | @Override
35 | public int getTerminalWidth() {
36 | int terminalWidth;
37 | try {
38 | terminalWidth = Environment.MVND_TERMINAL_WIDTH.asInt();
39 | } catch (Exception e) {
40 | terminalWidth = 80;
41 | }
42 | return terminalWidth;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/integration-tests/src/test/java/org/mvndaemon/mvnd/it/TypeDescriptionTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.it;
20 |
21 | import javax.inject.Inject;
22 |
23 | import java.io.IOException;
24 |
25 | import org.junit.jupiter.api.Test;
26 | import org.mvndaemon.mvnd.assertj.TestClientOutput;
27 | import org.mvndaemon.mvnd.client.Client;
28 | import org.mvndaemon.mvnd.client.DaemonParameters;
29 | import org.mvndaemon.mvnd.junit.MvndTest;
30 |
31 | @MvndTest(projectDir = "src/test/projects/type-description")
32 | class TypeDescriptionTest {
33 |
34 | @Inject
35 | Client client;
36 |
37 | @Inject
38 | DaemonParameters parameters;
39 |
40 | @Test
41 | void cleanInstall() throws IOException, InterruptedException {
42 | final TestClientOutput output = new TestClientOutput();
43 | client.execute(output, "clean", "install", "-e").assertSuccess();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/upgrades-in-bom/parent/bom/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.upgrades-in-bom
23 | upgrades-in-bom-parent
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | upgrades-in-bom-bom
29 | pom
30 |
31 |
32 |
33 |
34 | org.mvndaemon.mvnd.test.upgrades-in-bom
35 | upgrades-in-bom-hello
36 | ${hello.version}
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/hi/src/test/java/org/mvndaemon/mvnd/test/multi/module/hi/HiTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hi;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HiTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hi().greet();
31 | Files.write(Paths.get("target/hi.txt"), actual.getBytes(StandardCharsets.UTF_8));
32 | Assertions.assertEquals("Hi", actual);
33 |
34 | /* Have some random delay so that hi and hello may finish in random order */
35 | if (Math.random() >= 0.5) {
36 | try {
37 | System.out.println("HiTest sleeps for 500 ms");
38 | Thread.sleep(500);
39 | } catch (InterruptedException e) {
40 | Thread.currentThread().interrupt();
41 | }
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/hi/src/test/java/org/mvndaemon/mvnd/test/multi/module/hi/HiTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hi;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HiTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hi().greet();
31 | Files.write(Paths.get("target/hi.txt"), actual.getBytes(StandardCharsets.UTF_8));
32 | Assertions.assertEquals("Hi", actual);
33 |
34 | /* Have some random delay so that hi and hello may finish in random order */
35 | if (Math.random() >= 0.5) {
36 | try {
37 | System.out.println("HiTest sleeps for 500 ms");
38 | Thread.sleep(500);
39 | } catch (InterruptedException e) {
40 | Thread.currentThread().interrupt();
41 | }
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/parent/bom/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.new-managed-module
23 | new-managed-module-parent
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | new-managed-module-bom
29 | pom
30 |
31 |
32 |
33 |
34 | org.mvndaemon.mvnd.test.new-managed-module
35 | new-managed-module-module
36 | ${project.version}
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/client/src/main/resources/glibc/glibc.redef:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | __libc_start_main __dynamic_libc_start_main
18 | clock_gettime clock_gettime@GLIBC_2.2.5
19 | dlopen dlopen@GLIBC_2.2.5
20 | dlsym dlsym@GLIBC_2.2.5
21 | memcpy memcpy@GLIBC_2.2.5
22 | posix_spawn posix_spawn@GLIBC_2.2.5
23 | pthread_attr_getguardsize pthread_attr_getguardsize@GLIBC_2.2.5
24 | pthread_attr_getstack pthread_attr_getstack@GLIBC_2.2.5
25 | pthread_attr_setstacksize pthread_attr_setstacksize@GLIBC_2.2.5
26 | pthread_condattr_setclock pthread_condattr_setclock@GLIBC_2.3.3
27 | pthread_create pthread_create@GLIBC_2.2.5
28 | pthread_getattr_np pthread_getattr_np@GLIBC_2.2.5
29 | pthread_join pthread_join@GLIBC_2.2.5
30 | pthread_kill pthread_kill@GLIBC_2.2.5
31 | pthread_mutex_trylock pthread_mutex_trylock@GLIBC_2.2.5
32 | pthread_setname_np pthread_setname_np@GLIBC_2.12
33 | sem_destroy sem_destroy@GLIBC_2.2.5
34 | sem_init sem_init@GLIBC_2.2.5
35 | sem_post sem_post@GLIBC_2.2.5
36 | sem_wait sem_wait@GLIBC_2.2.5
37 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-lookup/hello/src/test/java/org/mvndaemon/mvnd/test/multi/module/hello/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hello().greet();
31 | Files.write(Paths.get("target/hello.txt"), actual.getBytes(StandardCharsets.UTF_8));
32 | Assertions.assertEquals("Hello", actual);
33 |
34 | /* Have some random delay so that hi and hello may finish in random order */
35 | if (Math.random() >= 0.5) {
36 | try {
37 | System.out.println("HelloTest sleeps for 500 ms");
38 | Thread.sleep(500);
39 | } catch (InterruptedException e) {
40 | Thread.currentThread().interrupt();
41 | }
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/multi-module/hello/src/test/java/org/mvndaemon/mvnd/test/multi/module/hello/HelloTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package org.mvndaemon.mvnd.test.multi.module.hello;
17 |
18 | import java.io.IOException;
19 | import java.nio.charset.StandardCharsets;
20 | import java.nio.file.Files;
21 | import java.nio.file.Paths;
22 |
23 | import org.junit.jupiter.api.Assertions;
24 | import org.junit.jupiter.api.Test;
25 |
26 | public class HelloTest {
27 |
28 | @Test
29 | void greet() throws IOException {
30 | final String actual = new Hello().greet();
31 | Files.write(Paths.get("target/hello.txt"), actual.getBytes(StandardCharsets.UTF_8));
32 | Assertions.assertEquals("Hello", actual);
33 |
34 | /* Have some random delay so that hi and hello may finish in random order */
35 | if (Math.random() >= 0.5) {
36 | try {
37 | System.out.println("HelloTest sleeps for 500 ms");
38 | Thread.sleep(500);
39 | } catch (InterruptedException e) {
40 | Thread.currentThread().interrupt();
41 | }
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/daemon/src/test/java/org/mvndaemon/mvnd/daemon/ClientDispatcherTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Licensed to the Apache Software Foundation (ASF) under one
3 | * or more contributor license agreements. See the NOTICE file
4 | * distributed with this work for additional information
5 | * regarding copyright ownership. The ASF licenses this file
6 | * to you under the Apache License, Version 2.0 (the
7 | * "License"); you may not use this file except in compliance
8 | * with the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing,
13 | * software distributed under the License is distributed on an
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | * KIND, either express or implied. See the License for the
16 | * specific language governing permissions and limitations
17 | * under the License.
18 | */
19 | package org.mvndaemon.mvnd.daemon;
20 |
21 | import org.junit.jupiter.api.Assertions;
22 | import org.junit.jupiter.api.Test;
23 |
24 | public class ClientDispatcherTest {
25 | @Test
26 | void trimTrailingEols() {
27 | Assertions.assertEquals(null, ClientDispatcher.trimTrailingEols(null));
28 | Assertions.assertEquals("foo", ClientDispatcher.trimTrailingEols("foo"));
29 | Assertions.assertEquals("foo\nbar", ClientDispatcher.trimTrailingEols("foo\nbar"));
30 | Assertions.assertEquals("foo\nbar", ClientDispatcher.trimTrailingEols("foo\nbar\n"));
31 | Assertions.assertEquals("foo\nbar", ClientDispatcher.trimTrailingEols("foo\nbar\r\n"));
32 | Assertions.assertEquals("foo\nbar", ClientDispatcher.trimTrailingEols("foo\nbar\n\r\n"));
33 | Assertions.assertEquals("", ClientDispatcher.trimTrailingEols("\n"));
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/integration-tests/src/test/projects/new-managed-module/parent/module/pom.xml:
--------------------------------------------------------------------------------
1 |
18 |
20 | 4.0.0
21 |
22 | org.mvndaemon.mvnd.test.new-managed-module
23 | new-managed-module-parent
24 | 0.0.1-SNAPSHOT
25 | ../pom.xml
26 |
27 |
28 | new-managed-module-module
29 |
30 |
31 |
32 |
33 | org.mvndaemon.mvnd.test.new-managed-module
34 | new-managed-module-bom
35 | 0.0.1-SNAPSHOT
36 | pom
37 | import
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------