Skip to content

Commit

Permalink
[MNG-6680] Convert Maven Settings Builder to JSR 330
Browse files Browse the repository at this point in the history
Use @nAmed and @singleton throughout, and switch to constructor injection
for DefaultSettingsBuilder.

This closes #246
  • Loading branch information
josephw authored and michael-o committed Jun 15, 2019
1 parent c2f13f7 commit c5ede2f
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 30 deletions.
10 changes: 5 additions & 5 deletions maven-settings-builder/pom.xml
Expand Up @@ -46,16 +46,16 @@ under the License.
</dependency>

<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
Expand All @@ -70,8 +70,8 @@ under the License.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<groupId>org.eclipse.sisu</groupId>
<artifactId>sisu-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Expand Down
Expand Up @@ -27,6 +27,10 @@
import java.util.List;
import java.util.Map;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;

import org.apache.maven.building.FileSource;
import org.apache.maven.building.Source;
import org.apache.maven.settings.Settings;
Expand All @@ -36,8 +40,6 @@
import org.apache.maven.settings.io.SettingsWriter;
import org.apache.maven.settings.merge.MavenSettingsMerger;
import org.apache.maven.settings.validation.SettingsValidator;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
Expand All @@ -49,21 +51,29 @@
*
* @author Benjamin Bentmann
*/
@Component( role = SettingsBuilder.class )
@Named
@Singleton
public class DefaultSettingsBuilder
implements SettingsBuilder
{

@Requirement
private SettingsReader settingsReader;

@Requirement
private SettingsWriter settingsWriter;

@Requirement
private SettingsValidator settingsValidator;

private MavenSettingsMerger settingsMerger = new MavenSettingsMerger();
private final MavenSettingsMerger settingsMerger = new MavenSettingsMerger();

@Inject
public DefaultSettingsBuilder( SettingsReader settingsReader,
SettingsWriter settingsWriter,
SettingsValidator settingsValidator )
{
this.settingsReader = settingsReader;
this.settingsWriter = settingsWriter;
this.settingsValidator = settingsValidator;
}

public DefaultSettingsBuilder setSettingsReader( SettingsReader settingsReader )
{
Expand Down
Expand Up @@ -59,13 +59,9 @@ protected SettingsValidator newSettingsValidator()
*/
public DefaultSettingsBuilder newInstance()
{
DefaultSettingsBuilder builder = new DefaultSettingsBuilder();

builder.setSettingsReader( newSettingsReader() );
builder.setSettingsWriter( newSettingsWriter() );
builder.setSettingsValidator( newSettingsValidator() );

return builder;
return new DefaultSettingsBuilder( newSettingsReader(),
newSettingsWriter(),
newSettingsValidator() );
}

}
Expand Up @@ -22,13 +22,15 @@
import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;

import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
import org.apache.maven.settings.building.DefaultSettingsProblem;
import org.apache.maven.settings.building.SettingsProblem;
import org.apache.maven.settings.building.SettingsProblem.Severity;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;

Expand All @@ -37,13 +39,18 @@
*
* @author Benjamin Bentmann
*/
@Component( role = SettingsDecrypter.class )
@Named
@Singleton
public class DefaultSettingsDecrypter
implements SettingsDecrypter
{
private final SecDispatcher securityDispatcher;

@Requirement( hint = "maven" )
private SecDispatcher securityDispatcher;
@Inject
public DefaultSettingsDecrypter( @Named( "maven" ) SecDispatcher securityDispatcher )
{
this.securityDispatcher = securityDispatcher;
}

@Override
public SettingsDecryptionResult decrypt( SettingsDecryptionRequest request )
Expand Down
Expand Up @@ -26,9 +26,11 @@
import java.util.Map;
import java.util.Objects;

import javax.inject.Named;
import javax.inject.Singleton;

import org.apache.maven.settings.Settings;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

Expand All @@ -37,7 +39,8 @@
*
* @author Benjamin Bentmann
*/
@Component( role = SettingsReader.class )
@Named
@Singleton
public class DefaultSettingsReader
implements SettingsReader
{
Expand Down
Expand Up @@ -27,17 +27,20 @@
import java.util.Map;
import java.util.Objects;

import javax.inject.Named;
import javax.inject.Singleton;

import org.apache.maven.settings.Settings;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.WriterFactory;

/**
* Handles serialization of settings into the default textual format.
*
* @author Benjamin Bentmann
*/
@Component( role = SettingsWriter.class )
@Named
@Singleton
public class DefaultSettingsWriter
implements SettingsWriter
{
Expand Down
Expand Up @@ -23,6 +23,9 @@
import java.util.List;
import java.util.Set;

import javax.inject.Named;
import javax.inject.Singleton;

import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Profile;
import org.apache.maven.settings.Repository;
Expand All @@ -31,13 +34,13 @@
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.building.SettingsProblem.Severity;
import org.apache.maven.settings.building.SettingsProblemCollector;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.StringUtils;

/**
* @author Milos Kleint
*/
@Component( role = SettingsValidator.class )
@Named
@Singleton
public class DefaultSettingsValidator
implements SettingsValidator
{
Expand Down

0 comments on commit c5ede2f

Please sign in to comment.