This is an automated email from the ASF dual-hosted git repository.
sdedic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 0b93c06c85 Micronaut 4 build plugin recognized.
new f3bbe32159 Merge pull request #6424 from
sdedic/micronaut/plugin-upgrade
0b93c06c85 is described below
commit 0b93c06c8566661295b28d55207b80173c2d67ea
Author: Svata Dedic <[email protected]>
AuthorDate: Fri Sep 8 08:44:48 2023 +0200
Micronaut 4 build plugin recognized.
---
.../netbeans/modules/micronaut/resources/layer.xml | 15 +++
.../unit/data/maven/micronaut4/simple/.gitignore | 15 +++
.../unit/data/maven/micronaut4/simple/README.md | 24 +++++
.../maven/micronaut4/simple/aot-jar.properties | 34 +++++++
.../data/maven/micronaut4/simple/micronaut-cli.yml | 6 ++
.../test/unit/data/maven/micronaut4/simple/pom.xml | 112 +++++++++++++++++++++
.../src/main/java/com/example/Application.java | 10 ++
.../src/main/resources/application.properties | 2 +
.../simple/src/main/resources/logback.xml | 14 +++
.../java/com/example/DemoTestForSvataTest.java | 21 ++++
.../maven/MicronautPackagingArtifactImplTest.java | 63 +++++++++++-
11 files changed, 312 insertions(+), 4 deletions(-)
diff --git
a/enterprise/micronaut/src/org/netbeans/modules/micronaut/resources/layer.xml
b/enterprise/micronaut/src/org/netbeans/modules/micronaut/resources/layer.xml
index 444894eeb1..19c7090f7d 100644
---
a/enterprise/micronaut/src/org/netbeans/modules/micronaut/resources/layer.xml
+++
b/enterprise/micronaut/src/org/netbeans/modules/micronaut/resources/layer.xml
@@ -67,6 +67,7 @@
</folder>
</folder>
<folder name="org-netbeans-modules-maven">
+ <!-- For Micornaut 3.x -->
<folder name="io.micronaut.build:micronaut-maven-plugin">
<folder name="Lookup">
<file name="maven-project-actions.instance">
@@ -80,6 +81,20 @@
</file>
</folder>
</folder>
+ <!-- Micronaut 4.x -->
+ <folder name="io.micronaut.maven:micronaut-maven-plugin">
+ <folder name="Lookup">
+ <file name="maven-project-actions.instance">
+ <attr name="instanceOf"
stringvalue="org.netbeans.spi.project.LookupProvider"/>
+ <attr name="instanceCreate"
methodvalue="org.netbeans.api.maven.MavenActions.forProjectLayer"/>
+ <attr name="resource"
stringvalue="nbres:/org/netbeans/modules/micronaut/resources/micronaut-actions-maven.xml"/>
+ </file>
+ <file name="native-image-artifacts.instance">
+ <attr name="instanceOf"
stringvalue="org.netbeans.spi.project.LookupProvider"/>
+ <attr name="instanceCreate"
methodvalue="org.netbeans.modules.micronaut.maven.MicronautPackagingArtifactsImpl.projectLookup"/>
+ </file>
+ </folder>
+ </folder>
<folder name="org.springframework.boot:spring-boot-maven-plugin">
<folder name="Lookup">
<file name="maven-project-actions.instance">
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/.gitignore
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/.gitignore
new file mode 100644
index 0000000000..5a03bc30a4
--- /dev/null
+++ b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/.gitignore
@@ -0,0 +1,15 @@
+Thumbs.db
+.DS_Store
+.gradle
+build/
+target/
+out/
+.micronaut/
+.idea
+*.iml
+*.ipr
+*.iws
+.project
+.settings
+.classpath
+.factorypath
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/README.md
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/README.md
new file mode 100644
index 0000000000..7b92946326
--- /dev/null
+++ b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/README.md
@@ -0,0 +1,24 @@
+## Micronaut 4.1.0 Documentation
+
+- [User Guide](https://docs.micronaut.io/4.1.0/guide/index.html)
+- [API Reference](https://docs.micronaut.io/4.1.0/api/index.html)
+- [Configuration
Reference](https://docs.micronaut.io/4.1.0/guide/configurationreference.html)
+- [Micronaut Guides](https://guides.micronaut.io/index.html)
+---
+
+- [Micronaut Maven Plugin
documentation](https://micronaut-projects.github.io/micronaut-maven-plugin/latest/)
+## Feature maven-enforcer-plugin documentation
+
+-
[https://maven.apache.org/enforcer/maven-enforcer-plugin/](https://maven.apache.org/enforcer/maven-enforcer-plugin/)
+
+
+## Feature micronaut-aot documentation
+
+- [Micronaut AOT
documentation](https://micronaut-projects.github.io/micronaut-aot/latest/guide/)
+
+
+## Feature serialization-jackson documentation
+
+- [Micronaut Serialization Jackson Core
documentation](https://micronaut-projects.github.io/micronaut-serialization/latest/guide/)
+
+
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/aot-jar.properties
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/aot-jar.properties
new file mode 100644
index 0000000000..336112c638
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/aot-jar.properties
@@ -0,0 +1,34 @@
+# AOT configuration properties for jar packaging
+# Please review carefully the optimizations enabled below
+# Check https://micronaut-projects.github.io/micronaut-aot/latest/guide/ for
more details
+
+# Caches environment property values: environment properties will be deemed
immutable after application startup.
+cached.environment.enabled=true
+
+# Precomputes Micronaut configuration property keys from the current
environment variables
+precompute.environment.properties.enabled=true
+
+# Converts YAML configuration files to Java configuration
+yaml.to.java.config.enabled=true
+
+# Scans for service types ahead-of-time, avoiding classpath scanning at startup
+serviceloading.jit.enabled=true
+
+# Scans reactive types at build time instead of runtime
+scan.reactive.types.enabled=true
+
+# Deduces the environment at build time instead of runtime
+deduce.environment.enabled=true
+
+# Checks of existence of some types at build time instead of runtime
+known.missing.types.enabled=true
+
+# Precomputes property sources at build time
+sealed.property.source.enabled=true
+
+# The list of service types to be scanned (comma separated)
+service.types=io.micronaut.context.env.PropertySourceLoader,io.micronaut.inject.BeanConfiguration,io.micronaut.inject.BeanDefinitionReference,io.micronaut.http.HttpRequestFactory,io.micronaut.http.HttpResponseFactory,io.micronaut.core.beans.BeanIntrospectionReference
+
+# A list of types that the AOT analyzer needs to check for existence (comma
separated)
+known.missing.types.list=io.reactivex.Observable,reactor.core.publisher.Flux,kotlinx.coroutines.flow.Flow,io.reactivex.rxjava3.core.Flowable,io.reactivex.rxjava3.core.Observable,io.reactivex.Single,reactor.core.publisher.Mono,io.reactivex.Maybe,io.reactivex.rxjava3.core.Single,io.reactivex.rxjava3.core.Maybe,io.reactivex.Completable,io.reactivex.rxjava3.core.Completable,io.methvin.watchservice.MacOSXListeningWatchService,io.micronaut.core.async.publisher.CompletableFuturePublisher,io.mic
[...]
+
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/micronaut-cli.yml
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/micronaut-cli.yml
new file mode 100644
index 0000000000..8e931992b7
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/micronaut-cli.yml
@@ -0,0 +1,6 @@
+applicationType: default
+defaultPackage: com.example
+testFramework: junit
+sourceLanguage: java
+buildTool: maven
+features: [app-name, http-client-test, java, java-application, junit, logback,
maven, maven-enforcer-plugin, micronaut-aot, netty-server, properties, readme,
serialization-jackson, shade]
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/pom.xml
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/pom.xml
new file mode 100644
index 0000000000..4427fd6260
--- /dev/null
+++ b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/pom.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.example</groupId>
+ <artifactId>micronaut4test</artifactId>
+ <version>0.1</version>
+ <packaging>${packaging}</packaging>
+
+ <parent>
+ <groupId>io.micronaut.platform</groupId>
+ <artifactId>micronaut-parent</artifactId>
+ <version>4.1.0</version>
+ </parent>
+ <properties>
+ <packaging>jar</packaging>
+ <jdk.version>17</jdk.version>
+ <release.version>17</release.version>
+ <micronaut.version>4.1.0</micronaut.version>
+ <micronaut.aot.enabled>false</micronaut.aot.enabled>
+
<micronaut.aot.packageName>com.example.aot.generated</micronaut.aot.packageName>
+ <micronaut.runtime>netty</micronaut.runtime>
+ <exec.mainClass>com.example.Application</exec.mainClass>
+ </properties>
+
+ <repositories>
+ <repository>
+ <id>central</id>
+ <url>https://repo.maven.apache.org/maven2</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.micronaut</groupId>
+ <artifactId>micronaut-http-server-netty</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.micronaut.serde</groupId>
+ <artifactId>micronaut-serde-jackson</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.micronaut</groupId>
+ <artifactId>micronaut-http-client</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.micronaut.test</groupId>
+ <artifactId>micronaut-test-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.micronaut.maven</groupId>
+ <artifactId>micronaut-maven-plugin</artifactId>
+ <configuration>
+ <configFile>aot-${packaging}.properties</configFile>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <!-- Uncomment to enable incremental compilation -->
+ <!-- <useIncrementalCompilation>false</useIncrementalCompilation> -->
+
+ <annotationProcessorPaths combine.children="append">
+ <path>
+ <groupId>io.micronaut.serde</groupId>
+ <artifactId>micronaut-serde-processor</artifactId>
+ <version>${micronaut.serialization.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.micronaut</groupId>
+ <artifactId>micronaut-inject</artifactId>
+ </exclusion>
+ </exclusions>
+ </path>
+ </annotationProcessorPaths>
+ <compilerArgs>
+ <arg>-Amicronaut.processing.group=com.example</arg>
+ <arg>-Amicronaut.processing.module=demoTestForSvata</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/java/com/example/Application.java
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/java/com/example/Application.java
new file mode 100644
index 0000000000..5b4df1d02d
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/java/com/example/Application.java
@@ -0,0 +1,10 @@
+package com.example;
+
+import io.micronaut.runtime.Micronaut;
+
+public class Application {
+
+ public static void main(String[] args) {
+ Micronaut.run(Application.class, args);
+ }
+}
\ No newline at end of file
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/application.properties
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/application.properties
new file mode 100644
index 0000000000..804cc72c04
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+#Wed Sep 06 13:10:29 GMT 2023
+micronaut.application.name=demoTestForSvata
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/logback.xml
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/logback.xml
new file mode 100644
index 0000000000..44b79c40d4
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/main/resources/logback.xml
@@ -0,0 +1,14 @@
+<configuration>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <root level="info">
+ <appender-ref ref="STDOUT" />
+ </root>
+</configuration>
diff --git
a/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/test/java/com/example/DemoTestForSvataTest.java
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/test/java/com/example/DemoTestForSvataTest.java
new file mode 100644
index 0000000000..47804affaf
--- /dev/null
+++
b/enterprise/micronaut/test/unit/data/maven/micronaut4/simple/src/test/java/com/example/DemoTestForSvataTest.java
@@ -0,0 +1,21 @@
+package com.example;
+
+import io.micronaut.runtime.EmbeddedApplication;
+import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Assertions;
+
+import jakarta.inject.Inject;
+
+@MicronautTest
+class DemoTestForSvataTest {
+
+ @Inject
+ EmbeddedApplication<?> application;
+
+ @Test
+ void testItWorks() {
+ Assertions.assertTrue(application.isRunning());
+ }
+
+}
diff --git
a/enterprise/micronaut/test/unit/src/org/netbeans/modules/micronaut/maven/MicronautPackagingArtifactImplTest.java
b/enterprise/micronaut/test/unit/src/org/netbeans/modules/micronaut/maven/MicronautPackagingArtifactImplTest.java
index 1e63f963b4..c0eb2d76ba 100644
---
a/enterprise/micronaut/test/unit/src/org/netbeans/modules/micronaut/maven/MicronautPackagingArtifactImplTest.java
+++
b/enterprise/micronaut/test/unit/src/org/netbeans/modules/micronaut/maven/MicronautPackagingArtifactImplTest.java
@@ -35,11 +35,14 @@ import org.netbeans.api.project.ProjectActionContext;
import org.netbeans.api.project.ProjectManager;
import org.netbeans.api.project.ui.OpenProjects;
import org.netbeans.junit.NbTestCase;
+import org.netbeans.modules.maven.api.MavenConfiguration;
import
org.netbeans.modules.parsing.impl.indexing.implspi.ActiveDocumentProvider;
import org.netbeans.modules.project.dependency.ArtifactSpec;
import org.netbeans.modules.project.dependency.ProjectArtifactsQuery;
import org.netbeans.spi.project.ActionProgress;
import org.netbeans.spi.project.ActionProvider;
+import org.netbeans.spi.project.ProjectConfiguration;
+import org.netbeans.spi.project.ProjectConfigurationProvider;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.modules.DummyInstalledFileLocator;
@@ -158,7 +161,7 @@ public class MicronautPackagingArtifactImplTest extends
NbTestCase {
FileObject testApp = dataFO.getFileObject("maven/artifacts/simple");
FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "simple");
- Project p = ProjectManager.getDefault().findProject(prjCopy);
+ Project p = openAndPrimeProject(prjCopy);
ProjectArtifactsQuery.ArtifactsResult ar =
ProjectArtifactsQuery.findArtifacts(p, ProjectArtifactsQuery.newQuery(null));
assertNotNull(ar);
@@ -176,7 +179,7 @@ public class MicronautPackagingArtifactImplTest extends
NbTestCase {
FileObject testApp = dataFO.getFileObject("maven/artifacts/simple");
FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "simple");
- Project p = ProjectManager.getDefault().findProject(prjCopy);
+ Project p = openAndPrimeProject(prjCopy);
ProjectArtifactsQuery.ArtifactsResult ar =
ProjectArtifactsQuery.findArtifacts(p,
ProjectArtifactsQuery.newQuery(null, null,
ProjectActionContext.newBuilder(p).forProjectAction("native-build").context())
@@ -195,7 +198,7 @@ public class MicronautPackagingArtifactImplTest extends
NbTestCase {
FileObject testApp =
dataFO.getFileObject("maven/artifacts/native-optional");
FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "native-optional");
- Project p = ProjectManager.getDefault().findProject(prjCopy);
+ Project p = openAndPrimeProject(prjCopy);
ProjectArtifactsQuery.ArtifactsResult ar =
ProjectArtifactsQuery.findArtifacts(p, ProjectArtifactsQuery.newQuery(null));
assertNotNull(ar);
@@ -213,7 +216,7 @@ public class MicronautPackagingArtifactImplTest extends
NbTestCase {
FileObject testApp =
dataFO.getFileObject("maven/artifacts/native-optional");
FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "native-optional");
- Project p = ProjectManager.getDefault().findProject(prjCopy);
+ Project p = openAndPrimeProject(prjCopy);
ProjectArtifactsQuery.ArtifactsResult ar =
ProjectArtifactsQuery.findArtifacts(p,
ProjectArtifactsQuery.newQuery(ProjectArtifactsQuery.Filter.TYPE_ALL));
assertNotNull(ar);
@@ -312,4 +315,56 @@ public class MicronautPackagingArtifactImplTest extends
NbTestCase {
assertNotNull("Exe should be present", jar);
assertFalse("Exe should not contain the
version",exe.getLocation().toString().contains("0.1"));
}
+
+ /**
+ * Checks that non-Micronaut project does not provide 'micronaut-auto'
profile.
+ * @throws Exception
+ */
+ public void testNoMicronautNodevModeConfiguration() throws Exception {
+ FileUtil.toFileObject(getWorkDir()).refresh();
+
+ FileObject testApp = dataFO.getFileObject("maven/artifacts/simple");
+ FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "simple");
+
+ Project p = openAndPrimeProject(prjCopy);
+ assertFalse(findMicronautProfile(p));
+ }
+
+ /**
+ * Checks that Micronaut 3.x style projects (with io.micronaut.build:
plugin) is recognized.
+ */
+ public void testMicronaut3DevModeConfiguration() throws Exception {
+ FileUtil.toFileObject(getWorkDir()).refresh();
+
+ FileObject testApp =
dataFO.getFileObject("maven/artifacts/native-optional");
+ FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "mn-simple");
+
+ Project p = openAndPrimeProject(prjCopy);
+ assertTrue(findMicronautProfile(p));
+ }
+
+ boolean findMicronautProfile(Project p) {
+ ProjectConfigurationProvider<MavenConfiguration> pcp =
p.getLookup().lookup(ProjectConfigurationProvider.class);
+ assertNotNull(pcp);
+
+ for (MavenConfiguration cfg : pcp.getConfigurations()) {
+ if (cfg.getDisplayName().toLowerCase().contains("micronaut")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks that Micronaut 4.x style projects (with io.micronaut.maven:
plugin) is recognized.
+ */
+ public void testMicronaut4DevModeConfiguration() throws Exception {
+ FileUtil.toFileObject(getWorkDir()).refresh();
+
+ FileObject testApp = dataFO.getFileObject("maven/micronaut4/simple");
+ FileObject prjCopy = FileUtil.copyFile(testApp,
FileUtil.toFileObject(getWorkDir()), "mn4-simple");
+
+ Project p = openAndPrimeProject(prjCopy);
+ assertTrue(findMicronautProfile(p));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists