Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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.
*
* <p>This package contains classes for:</p>
* <ul>
* <li>Extension configuration model</li>
* <li>Extension loading and validation</li>
* <li>Extension lifecycle management</li>
* </ul>
*
* @since 4.0.0
*/
package org.apache.maven.api.cli.extensions;
Original file line number Diff line number Diff line change
@@ -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 early-stage logging capabilities for Maven CLI operations.
* These logging facilities are used during Maven startup before the full logging
* system is initialized.
*
* <p>This package includes:</p>
* <ul>
* <li>Basic logging interfaces and implementations</li>
* <li>Support for different logging levels (DEBUG, INFO, WARN, ERROR)</li>
* <li>Accumulating loggers for deferred output</li>
* </ul>
*
* @since 4.0.0
*/
package org.apache.maven.api.cli.logging;
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* 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 the API for the Maven build tool ({@code mvn}).
*
* <p>This package contains interfaces and classes specific to the main Maven build
* tool, which is responsible for project build lifecycle execution and dependency management.</p>
*
* <p>Key features include:</p>
* <ul>
* <li>Build lifecycle execution control</li>
* <li>Project-specific configuration</li>
* <li>Goal execution and phase mapping</li>
* <li>Multi-module build coordination</li>
* </ul>
*
* @see org.apache.maven.api.cli.Tools#MVN_CMD
* @see org.apache.maven.api.cli.Tools#MVN_NAME
* @since 4.0.0
*/
package org.apache.maven.api.cli.mvn;
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* 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 the API for the Maven Password Encryption tool ({@code mvnenc}).
*
* <p>This package contains interfaces and classes for the password encryption tool,
* which helps secure sensitive information in Maven settings and configuration files.</p>
*
* <p>Key features include:</p>
* <ul>
* <li>Password encryption and decryption</li>
* <li>Master password management</li>
* <li>Security settings configuration</li>
* </ul>
*
* @see org.apache.maven.api.cli.Tools#MVNENC_CMD
* @see org.apache.maven.api.cli.Tools#MVNENC_NAME
* @since 4.0.0
*/
package org.apache.maven.api.cli.mvnenc;
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* 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 the API for the Maven Shell tool ({@code mvnsh}).
*
* <p>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.</p>
*
* <p>Key features include:</p>
* <ul>
* <li>Interactive command-line interface</li>
* <li>Command history and completion</li>
* <li>Built-in shell commands</li>
* <li>Project navigation and management</li>
* </ul>
*
* @see org.apache.maven.api.cli.Tools#MVNSHELL_CMD
* @see org.apache.maven.api.cli.Tools#MVNSHELL_NAME
* @since 4.0.0
*/
package org.apache.maven.api.cli.mvnsh;
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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 the API for Maven's command-line interface and tools.
*
* <p>This package contains interfaces and classes for:</p>
* <ul>
* <li>Command-line argument parsing and processing</li>
* <li>Maven tool invocation ({@code mvn}, {@code mvnenc}, {@code mvnsh})</li>
* <li>Core extensions configuration</li>
* <li>Early-stage logging before the full Maven logging system is initialized</li>
* </ul>
*
* <p>The main components are:</p>
* <ul>
* <li>{@link org.apache.maven.api.cli.Invoker} - Base interface for executing Maven tools</li>
* <li>{@link org.apache.maven.api.cli.Parser} - Processes command-line arguments into invoker requests</li>
* <li>{@link org.apache.maven.api.cli.Options} - Represents Maven configuration options</li>
* <li>{@link org.apache.maven.api.cli.extensions.CoreExtensions} - Manages Maven core extensions</li>
* </ul>
*
* <p>Core extensions can be configured through {@code .mvn/extensions.xml} in the project base directory
* to enhance Maven's capabilities during build execution.</p>
*
* @since 4.0.0
*/
package org.apache.maven.api.cli;
Original file line number Diff line number Diff line change
@@ -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 feature flag management and configuration capabilities for Maven core functionality.
* This package allows for controlled enablement and management of Maven features across
* different execution contexts and environments.
*
* @since 4.0.0
*/
package org.apache.maven.api.feature;
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,21 @@
/**
* <h2>Maven Core API</h2>
*
* <h3>Session</h3>
*
* <p>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.</p>
*
* <p>Key capabilities provided through the Session include:</p>
* <ul>
* <li>Access to the current {@link org.apache.maven.api.Project}</li>
* <li>Access to the {@link org.apache.maven.api.LocalRepository} and {@link org.apache.maven.api.RemoteRepository} configurations</li>
* <li>Access to Maven services through {@link org.apache.maven.api.Session#getService(Class)}</li>
* <li>Build configuration and settings</li>
* </ul>
*
* <h3>Dependency management</h3>
*
* <p>{@link org.apache.maven.api.ArtifactCoordinates} instances are used to locate artifacts in a repository.
Expand All @@ -30,7 +45,8 @@
* They are created when <dfn>resolving</dfn> 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</p>
* an artifact has been resolved and {@link org.apache.maven.api.ProducedArtifact} which is used when
* an artifact is being produced by a project.</p>
*
* <p>{@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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Original file line number Diff line number Diff line change
@@ -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;
Loading