Skip to content

Commit 6d03f9c

Browse files
authored
Merge pull request #1267 from jdcasey/indy-1.7.x
Constrain path-mask calculation to maven-type archives from Koji/Brew
2 parents 85fa47a + 3a65d62 commit 6d03f9c

4 files changed

Lines changed: 28 additions & 10 deletions

File tree

addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,9 @@ private <T> T findKojiBuildAnd( ArtifactStore store, String path, EventMetadata
282282

283283
Logger logger = LoggerFactory.getLogger( getClass() );
284284
logger.debug("When the koji is enabled , path:{},config instance is {}",path,config.toString());
285+
285286
// TODO: This won't work for maven-metadata.xml files! We need to hit a POM or jar or something first.
287+
// FIXME: This won't work for NPM!
286288
ArtifactPathInfo pathInfo = ArtifactPathInfo.parse( path );
287289
if ( pathInfo != null )
288290
{
@@ -459,7 +461,7 @@ private RemoteRepository createRemoteRepository( StoreKey inStore, ArtifactRef a
459461
}
460462

461463
// set pathMaskPatterns using build output paths
462-
Set<String> patterns = pathFormatter.getPatterns( artifactRef, archives );
464+
Set<String> patterns = pathFormatter.getPatterns( inStore, artifactRef, archives );
463465

464466
// pre-index the koji build artifacts and set authoritative index of the remote to let the
465467
// koji remote repo directly go through the content index

addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiPathPatternFormatter.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
import com.redhat.red.build.koji.model.xmlrpc.KojiArchiveInfo;
1919
import org.apache.commons.lang.StringUtils;
20-
import org.commonjava.indy.koji.conf.IndyKojiConfig;
21-
import org.commonjava.indy.koji.util.KojiUtils;
2220
import org.commonjava.atlas.maven.ident.ref.ArtifactRef;
2321
import org.commonjava.atlas.maven.ident.ref.SimpleProjectRef;
22+
import org.commonjava.indy.koji.util.KojiUtils;
23+
import org.commonjava.indy.model.core.StoreKey;
2424
import org.commonjava.maven.galley.TransferException;
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
@@ -30,7 +30,6 @@
3030
import java.util.HashSet;
3131
import java.util.List;
3232
import java.util.Set;
33-
import java.util.regex.Pattern;
3433

3534
import static org.commonjava.indy.pkg.maven.content.group.MavenMetadataMerger.METADATA_NAME;
3635
import static org.commonjava.maven.galley.maven.util.ArtifactPathUtils.formatMetadataPath;
@@ -44,25 +43,42 @@ public class KojiPathPatternFormatter
4443

4544
private final Logger logger = LoggerFactory.getLogger( getClass() );
4645

47-
public Set<String> getPatterns( ArtifactRef artifactRef, List<KojiArchiveInfo> archives )
46+
public Set<String> getPatterns( final StoreKey inStore, ArtifactRef artifactRef, List<KojiArchiveInfo> archives )
4847
{
49-
return getPatterns( artifactRef, archives, false );
48+
return getPatterns( inStore, artifactRef, archives, false );
5049
}
5150

52-
public Set<String> getPatterns( ArtifactRef artifactRef, List<KojiArchiveInfo> archives, boolean skipVersionTest )
51+
public Set<String> getPatterns( final StoreKey inStore, ArtifactRef artifactRef, List<KojiArchiveInfo> archives, boolean skipVersionTest )
5352
{
5453
Set<String> patterns = new HashSet<>();
5554
for ( KojiArchiveInfo a : archives )
5655
{
56+
if ( !inStore.getPackageType().equals( a.getBuildType() ) )
57+
{
58+
logger.info( "Discarding non-{} archive from path patterns: {}", inStore.getPackageType(), a );
59+
continue;
60+
}
61+
5762
ArtifactRef ar = a.asArtifact();
63+
5864
if ( !skipVersionTest && !kojiUtils.isVersionSignatureAllowedWithVersion( a.getVersion() ) )
5965
{
6066
logger.warn(
6167
"Cannot use Koji archive for path_mask_patterns: {}. Version '{}' is not allowed from Koji.", a,
6268
a.getVersion() );
6369
continue;
6470
}
71+
6572
String pattern = getPatternString( ar, a );
73+
74+
if ( !skipVersionTest && !kojiUtils.isVersionSignatureAllowedWithVersion( a.getVersion() ) )
75+
{
76+
logger.warn(
77+
"Cannot use Koji archive for path_mask_patterns: {}. Version '{}' is not allowed from Koji.", a,
78+
a.getVersion() );
79+
continue;
80+
}
81+
6682
if ( pattern != null )
6783
{
6884
patterns.add( pattern );

addons/koji/common/src/main/java/org/commonjava/indy/koji/data/KojiRepairManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ public KojiRepairResult repairPathMask( KojiRepairRequest request, String user,
228228
}
229229

230230
// set pathMaskPatterns using build output paths
231-
Set<String> patterns = kojiPathFormatter.getPatterns( artifactRef, archives, true );
231+
Set<String> patterns = kojiPathFormatter.getPatterns( store.getKey(), artifactRef, archives, true );
232232
logger.debug( "For repo: {}, resetting path_mask_patterns to:\n\n{}\n\n", store.getKey(),
233233
patterns );
234234

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@
7171
<kafkaVersion>1.1.0</kafkaVersion>
7272
<logbackVersion>1.2.3</logbackVersion>
7373
<logbackContribVersion>0.1.5</logbackContribVersion>
74-
<jacksonVersion>2.9.9</jacksonVersion>
75-
<metricsVersion>4.0.2</metricsVersion>
74+
<jackson-version>2.9.9</jackson-version>
75+
<metrics.version>4.0.2</metrics.version>
7676
<httpcoreVersion>4.4.9</httpcoreVersion>
7777
<httpclientVersion>4.5.9</httpclientVersion>
7878

0 commit comments

Comments
 (0)