diff --git a/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/extensions/package-info.java b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/extensions/package-info.java new file mode 100644 index 000000000000..7b4aafe562cf --- /dev/null +++ b/api/maven-api-cli/src/main/java/org/apache/maven/api/cli/extensions/package-info.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Provides support for Maven core extensions configuration and management. + * Core extensions can be configured through {@code .mvn/extensions.xml} in the project + * base directory to enhance Maven's capabilities during build execution. + * + *
This package contains classes for:
+ *This package includes:
+ *This package contains interfaces and classes specific to the main Maven build + * tool, which is responsible for project build lifecycle execution and dependency management.
+ * + *Key features include:
+ *This package contains interfaces and classes for the password encryption tool, + * which helps secure sensitive information in Maven settings and configuration files.
+ * + *Key features include:
+ *This package contains interfaces and classes for the interactive Maven shell, + * which provides a command-line interface for executing Maven commands and + * managing build environments.
+ * + *Key features include:
+ *This package contains interfaces and classes for:
+ *The main components are:
+ *Core extensions can be configured through {@code .mvn/extensions.xml} in the project base directory + * to enhance Maven's capabilities during build execution.
+ * + * @since 4.0.0 + */ +package org.apache.maven.api.cli; diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/feature/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/feature/package-info.java new file mode 100644 index 000000000000..b10b38ad3cc3 --- /dev/null +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/feature/package-info.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Provides feature flag management and configuration capabilities for Maven core functionality. + * + * @since 4.0.0 + */ +package org.apache.maven.api.feature; diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/package-info.java index 8addcd57cae5..5f85ff9ad15b 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/package-info.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/package-info.java @@ -20,6 +20,21 @@ /** *The {@link org.apache.maven.api.Session} interface is the main entry point for Maven operations. + * It maintains the state of a Maven execution and provides access to all core services and components. + * Sessions are thread-safe and can be obtained in session-scoped components using the + * {@link org.apache.maven.api.di.SessionScoped} annotation.
+ * + *Key capabilities provided through the Session include:
+ *{@link org.apache.maven.api.ArtifactCoordinates} instances are used to locate artifacts in a repository. @@ -29,8 +44,9 @@ *
{@link org.apache.maven.api.Artifact} instances are the pointed artifacts in the repository. * They are created when resolving an {@code ArtifactCoordinates}. Resolving is the process * that selects a particular version and downloads the artifact in the local repository. - * There are two sub-interfaces, {@link org.apache.maven.api.DownloadedArtifact} which is used when - * an artifact has been resolved
+ * The {@link org.apache.maven.api.DownloadedArtifact} sub-interface is used when + * an artifact has been resolved and {@link org.apache.maven.api.ProducedArtifact} when + * an artifact is being produced by a project. * *{@link org.apache.maven.api.DependencyCoordinates} instances are used to express a dependency.
* They are a {@code ArtifactCoordinates} completed with information about how the artifact will be used:
diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java
index 5a4ed7d59d4b..14d2c7a2ef1c 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java
@@ -1,4 +1,22 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
* Maven Plugin Annotations.
*/
diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/package-info.java
index 1aaa794cbd1a..1bed56a81bfe 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/package-info.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/package-info.java
@@ -1,4 +1,22 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
* Maven Plugin API.
*/
diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/package-info.java
new file mode 100644
index 000000000000..228ba1c49076
--- /dev/null
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/package-info.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Defines core service interfaces that provide essential Maven functionality such as
+ * artifact resolution, dependency management, and build execution. These services
+ * form the backbone of Maven's extensible architecture.
+ *
+ * @since 4.0.0
+ */
+package org.apache.maven.api.services;
diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/package-info.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/package-info.java
new file mode 100644
index 000000000000..f3aea327ef20
--- /dev/null
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/package-info.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Provides XML-specific services for reading and writing Maven's configuration files
+ * and descriptors. These services handle XML parsing, transformation, and serialization
+ * while maintaining Maven's model integrity.
+ *
+ * @since 4.0.0
+ */
+package org.apache.maven.api.services.xml;
diff --git a/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java b/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
index 68e28d951cf6..b53290b18c2a 100644
--- a/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
+++ b/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
@@ -1,4 +1,22 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
* Maven Repository Metadata model.
*/
diff --git a/api/maven-api-model/src/main/java/org/apache/maven/api/model/package-info.java b/api/maven-api-model/src/main/java/org/apache/maven/api/model/package-info.java
index 3c1c61e2130b..b74e0ef3b590 100644
--- a/api/maven-api-model/src/main/java/org/apache/maven/api/model/package-info.java
+++ b/api/maven-api-model/src/main/java/org/apache/maven/api/model/package-info.java
@@ -1,4 +1,22 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
* Maven Immutable POM (Project Object Model) classes, generated from maven.mdo model.
* The root class is {@link org.apache.maven.api.model.Model}.
diff --git a/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java
new file mode 100644
index 000000000000..28a7936fed4c
--- /dev/null
+++ b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/annotations/package-info.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Provides annotations for Maven plugin development, including mojo configuration,
+ * parameter definitions, and lifecycle bindings. These annotations are used to
+ * generate plugin descriptors and configure plugin behavior.
+ *
+ * @since 4.0.0
+ */
+package org.apache.maven.api.plugin.annotations;
diff --git a/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/lifecycle/package-info.java b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/lifecycle/package-info.java
index eec9c505362c..800376de87fc 100644
--- a/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/lifecycle/package-info.java
+++ b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/lifecycle/package-info.java
@@ -1,5 +1,26 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
- * Maven Plugin forked lifecycle model.
+ * Contains classes for managing plugin-specific lifecycle bindings and forked executions.
+ * This package helps define how plugins can modify or extend Maven's build lifecycle.
+ *
+ * @since 4.0.0
*/
package org.apache.maven.api.plugin.descriptor.lifecycle;
diff --git a/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/package-info.java b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/package-info.java
index 0435496d0b46..63d55f5447b8 100644
--- a/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/package-info.java
+++ b/api/maven-api-plugin/src/main/java/org/apache/maven/api/plugin/descriptor/package-info.java
@@ -1,5 +1,27 @@
-// CHECKSTYLE_OFF: RegexpHeader
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
/**
- * Maven Plugin descriptor model.
+ * Provides classes for Maven plugin descriptors that define plugin metadata, configuration,
+ * and execution parameters. These descriptors are typically stored in plugin.xml files
+ * within the META-INF/maven directory of plugin JARs.
+ *
+ * @since 4.0.0
*/
package org.apache.maven.api.plugin.descriptor;
diff --git a/api/maven-api-settings/pom.xml b/api/maven-api-settings/pom.xml
index cb6298b4251e..875efd19dc73 100644
--- a/api/maven-api-settings/pom.xml
+++ b/api/maven-api-settings/pom.xml
@@ -80,7 +80,34 @@ under the License.
+