This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch maven-sign-plugin in repository https://gitbox.apache.org/repos/asf/maven-studies.git
commit b358072cfc79044df85243964ce428bf847d26db Author: Slawomir Jaranowski <s.jaranow...@gmail.com> AuthorDate: Sun Oct 4 22:31:18 2020 +0200 Don't use settings.server for key configuration --- src/it/pom-packaging/pom.xml | 4 +- src/it/standard-packaging/pom.xml | 3 +- ...ttings.java => PGPSecretKeyInfoFromParams.java} | 44 ++++++++++++++-------- .../org/apache/maven/plugins/sign/SignMojo.java | 14 +++++-- ...st.java => PGPSecretKeyInfoFromParamsTest.java} | 32 +++------------- 5 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/it/pom-packaging/pom.xml b/src/it/pom-packaging/pom.xml index 0d2a078..a18b908 100644 --- a/src/it/pom-packaging/pom.xml +++ b/src/it/pom-packaging/pom.xml @@ -43,7 +43,9 @@ <goal>sign</goal> </goals> <configuration> - <useReflection>true</useReflection> + <keyId>AC71B3E31C0C0D38</keyId> + <keyPassphrase>testPass</keyPassphrase> + <keyFile>@project.basedir@/src/test/resources/pgp-priv-key.asc</keyFile> </configuration> </execution> diff --git a/src/it/standard-packaging/pom.xml b/src/it/standard-packaging/pom.xml index 059e8ce..1d15a42 100644 --- a/src/it/standard-packaging/pom.xml +++ b/src/it/standard-packaging/pom.xml @@ -70,7 +70,8 @@ <goal>sign</goal> </goals> <configuration> - <useReflection>true</useReflection> + <keyPassphrase>testPass</keyPassphrase> + <keyFile>@project.basedir@/src/test/resources/pgp-priv-key.asc</keyFile> </configuration> </execution> diff --git a/src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettings.java b/src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParams.java similarity index 63% rename from src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettings.java rename to src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParams.java index 1e27276..cef7333 100644 --- a/src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettings.java +++ b/src/main/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParams.java @@ -20,49 +20,61 @@ package org.apache.maven.plugins.sign; */ import org.apache.maven.plugins.sign.pgp.PGPSecretKeyInfo; -import org.apache.maven.settings.Server; import java.io.File; import java.math.BigInteger; -import java.util.Objects; /** * Information about pgp key from settings server * * @author Slawomir Jaranowski */ -public class PGPSecretKeyInfoFromSettings implements PGPSecretKeyInfo +public class PGPSecretKeyInfoFromParams implements PGPSecretKeyInfo { - private final Server settingsServer; + private final Long keyId; + private final char[] passphrase; + private final File keyFile; - PGPSecretKeyInfoFromSettings( Server settingsServer ) + PGPSecretKeyInfoFromParams( String keyIdStr, String passphraseStr, File keyFile ) { - this.settingsServer = Objects.requireNonNull( settingsServer ); - } - @Override - public Long getKeyId() - { - try + + if ( keyIdStr != null ) { - return new BigInteger( settingsServer.getUsername(), 16 ).longValue(); + try + { + this.keyId = new BigInteger( keyIdStr, 16 ).longValue(); + } + catch ( NumberFormatException e ) + { + throw new SignMojoException( e ); + } } - catch ( NumberFormatException e ) + else { - return null; + this.keyId = null; } + + this.passphrase = passphraseStr.toCharArray(); + this.keyFile = keyFile; + } + + @Override + public Long getKeyId() + { + return keyId; } @Override public char[] getPassphrase() { - return settingsServer.getPassphrase().toCharArray(); + return passphrase; } @Override public File getFile() { - return new File( settingsServer.getPrivateKey() ); + return keyFile; } } diff --git a/src/main/java/org/apache/maven/plugins/sign/SignMojo.java b/src/main/java/org/apache/maven/plugins/sign/SignMojo.java index e72e916..9dd897c 100644 --- a/src/main/java/org/apache/maven/plugins/sign/SignMojo.java +++ b/src/main/java/org/apache/maven/plugins/sign/SignMojo.java @@ -38,6 +38,7 @@ import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.io.BufferedInputStream; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; @@ -66,8 +67,14 @@ public class SignMojo extends AbstractMojo @Parameter( defaultValue = "${session}", required = true, readonly = true ) protected MavenSession session; - @Parameter( defaultValue = "pgpKey", required = true, property = "sign.serverId" ) - private String serverId; + @Parameter( property = "sign.keyId" ) + private String keyId; + + @Parameter( required = true, property = "sign.keyPassphrase" ) + private String keyPassphrase; + + @Parameter( required = true, property = "sign.keyFile" ) + private File keyFile; @Inject private MavenProjectHelper projectHelper; @@ -79,8 +86,7 @@ public class SignMojo extends AbstractMojo { try { - pgpSigner = new PGPSigner( - new PGPSecretKeyInfoFromSettings( session.getSettings().getServer( serverId ) ) ); + pgpSigner = new PGPSigner( new PGPSecretKeyInfoFromParams( keyId, keyPassphrase, keyFile ) ); } catch ( PGPSignerException e ) { diff --git a/src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettingsTest.java b/src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParamsTest.java similarity index 65% rename from src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettingsTest.java rename to src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParamsTest.java index 1a221e5..4e8c1e8 100644 --- a/src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromSettingsTest.java +++ b/src/test/java/org/apache/maven/plugins/sign/PGPSecretKeyInfoFromParamsTest.java @@ -20,46 +20,30 @@ package org.apache.maven.plugins.sign; * */ -import org.apache.maven.settings.Server; import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; import java.io.File; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertThrows; -import static org.mockito.Mockito.when; -@RunWith( MockitoJUnitRunner.class ) -public class PGPSecretKeyInfoFromSettingsTest +public class PGPSecretKeyInfoFromParamsTest { private static final String[] KEY_ID_HEX = {"ABCDEF0123456789", "0000000000000000", "FFFFFFFFFFFFFFFF"}; private static final long[] KEY_ID = {0xABCDEF0123456789L, 0L, 0xFFFFFFFFFFFFFFFFL}; - private static final String KEY_FILE_STR = "test.asc"; - private static final File KEY_FILE = new File( KEY_FILE_STR ); + private static final File KEY_FILE = new File( "test.asc" ); private static final String KEY_PASS_STR = "pass"; private static final char[] KEY_PASS = KEY_PASS_STR.toCharArray(); - - @Mock - private Server server; - @Test public void allProperties() { - // given - when( server.getUsername() ).thenReturn( KEY_ID_HEX[0] ); - when( server.getPrivateKey() ).thenReturn( KEY_FILE_STR ); - when( server.getPassphrase() ).thenReturn( KEY_PASS_STR ); - // when - PGPSecretKeyInfoFromSettings info = new PGPSecretKeyInfoFromSettings( server ); + PGPSecretKeyInfoFromParams info = new PGPSecretKeyInfoFromParams( KEY_ID_HEX[0], KEY_PASS_STR, KEY_FILE ); // then assertThat( info.getKeyId(), is( KEY_ID[0] ) ); @@ -68,23 +52,19 @@ public class PGPSecretKeyInfoFromSettingsTest } @Test - public void npeShouldBeThrowForNullServer() + public void npeShouldBeThrowForNullPassphrase() { assertThrows( NullPointerException.class, - () -> new PGPSecretKeyInfoFromSettings( null ) ); + () -> new PGPSecretKeyInfoFromParams( null, null, null ) ); } @Test public void keyIdShouldBeParsedProperly() { - for ( int i = 0; i < KEY_ID_HEX.length; i++ ) { - // given - when( server.getUsername() ).thenReturn( KEY_ID_HEX[i] ); - // when - PGPSecretKeyInfoFromSettings info = new PGPSecretKeyInfoFromSettings( server ); + PGPSecretKeyInfoFromParams info = new PGPSecretKeyInfoFromParams( KEY_ID_HEX[i], KEY_PASS_STR, KEY_FILE ); // then assertThat( info.getKeyId(), is( KEY_ID[i] ) );