Skip to content

io microsphere classloading AbstractArtifactResourceResolver

github-actions[bot] edited this page Mar 21, 2026 · 1 revision

AbstractArtifactResourceResolver

Type: Class | Module: microsphere-java-core | Package: io.microsphere.classloading | Since: 1.0.0

Source: microsphere-java-core/src/main/java/io/microsphere/classloading/AbstractArtifactResourceResolver.java

Overview

An abstract base class for implementing ArtifactResourceResolver.

This class provides a skeletal implementation to reduce the effort required to create concrete implementations. It handles common concerns such as priority management, logging, and classloader usage, allowing subclasses to focus on the specific logic for resolving artifact resources.

Key Features

- **Priority Management:** Implements the `Prioritized` interface to allow sorting
    of resolvers based on their priorities.
- **Logging Support:** Provides a pre-configured logger instance for subclasses to use.
- **ClassLoader Handling:** Stores and exposes a ClassLoader instance that can be used by
    subclasses when resolving or processing artifacts.

Example Usage

`public class CustomArtifactResourceResolver extends AbstractArtifactResourceResolver {

    public CustomArtifactResourceResolver(ClassLoader classLoader, int priority) {
        super(classLoader, priority);
    `

### Declaration

```java
public abstract class AbstractArtifactResourceResolver implements ArtifactResourceResolver
```

**Author:** Mercy

## Version Information

- **Introduced in:** `1.0.0`
- **Current Project Version:** `0.1.10-SNAPSHOT`

## Version Compatibility

This component is tested and compatible with the following Java versions:

| Java Version | Status |
|:---:|:---:|
| Java 8 | ✅ Compatible |
| Java 11 | ✅ Compatible |
| Java 17 | ✅ Compatible |
| Java 21 | ✅ Compatible |
| Java 25 | ✅ Compatible |

## Examples

```java
public class CustomArtifactResourceResolver extends AbstractArtifactResourceResolver {

    public CustomArtifactResourceResolver(ClassLoader classLoader, int priority) {
        super(classLoader, priority);
    }

    @Override
    public Artifact resolve(@Nullable URL resourceURL) {
        if (resourceURL == null) {
            return null;
        }

        getLog().info("Resolving artifact from URL: {}", resourceURL);

        // Custom resolution logic here
        if (isSupported(resourceURL)) {
            return new DefaultArtifact(resourceURL);
        }

        return null;
    }

    private boolean isSupported(URL url) {
        // Determine if this resolver supports the given URL
        return url.getProtocol().equals("file");
    }
}
```

## Usage

### Maven Dependency

Add the following dependency to your `pom.xml`:

```xml

    io.github.microsphere-projects
    microsphere-java-core
    ${microsphere-java.version}

```

> **Tip:** Use the BOM (`microsphere-java-dependencies`) for consistent version management. See the [Getting Started](https://github.com/microsphere-projects/microsphere-java#getting-started) guide.

### Import

```java
import io.microsphere.classloading.AbstractArtifactResourceResolver;
```

## API Reference

### Public Methods

| Method | Description |
|--------|-------------|
| `getPriority` |  |

## See Also

- `ArtifactResourceResolver`
- `Prioritized`
- `Logger`

---

*This documentation was auto-generated from the source code of [microsphere-java](https://github.com/microsphere-projects/microsphere-java).*

Home

java-annotations

java-core

jdk-tools

lang-model

annotation-processor

java-test

Clone this wiki locally