From 69dfcda093ddd583bd5ebeac01133ac65a02e585 Mon Sep 17 00:00:00 2001 From: John Casey Date: Mon, 21 Oct 2019 11:44:51 -0500 Subject: [PATCH 1/3] Allow disable of content index, and add prometheus metrics adapter Adding Dropwizard Metrics adapter to publish metrics to Prometheus via servlet, since our perf-test instance can't deploy GraphiteDB to a pod. This gets us ready for Prometheus anyway. We may not need content indexing anymore in our particular deployment environment, and it might actually be hurting performance for our use case. Adding an option to disable it via config. --- .../src/main/conf/conf.d/content-index.conf | 4 +- .../index/DefaultContentIndexManager.java | 76 +++++++++++++++++ .../IndexingContentManagerDecorator.java | 55 ++++++++---- .../index/conf/ContentIndexConfig.java | 19 ++++- .../main/resources/default-content-index.conf | 6 +- embedder/pom.xml | 4 + pom.xml | 11 +++ subsys/metrics/pom.xml | 1 + subsys/metrics/prometheus/pom.xml | 83 +++++++++++++++++++ .../prometheus/PrometheusDeployment.java | 57 +++++++++++++ 10 files changed, 297 insertions(+), 19 deletions(-) create mode 100644 subsys/metrics/prometheus/pom.xml create mode 100644 subsys/metrics/prometheus/src/main/java/org/commonjava/indy/metrics/prometheus/PrometheusDeployment.java diff --git a/addons/content-index/src/main/conf/conf.d/content-index.conf b/addons/content-index/src/main/conf/conf.d/content-index.conf index 2a6a103e43..1cc0bd81e2 100644 --- a/addons/content-index/src/main/conf/conf.d/content-index.conf +++ b/addons/content-index/src/main/conf/conf.d/content-index.conf @@ -1,4 +1,6 @@ [content-index] +#enabled=false + # This property is used to control if authoritative index is enabled. the authoritative index means: # in terms of performance consideration, we will use content-index as the one-time check for the content # access, and if not found in content indexing, will treat it as "no content" and bypass the following access to the storage. @@ -6,4 +8,4 @@ # This property is used to enable content index warmer, which will scan all repos and load all artifacts # into content index when startup. -# index.warmer.enable=true \ No newline at end of file +# index.warmer.enabled=true diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/DefaultContentIndexManager.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/DefaultContentIndexManager.java index 8e1888266a..181ab1bb8d 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/DefaultContentIndexManager.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/DefaultContentIndexManager.java @@ -17,6 +17,7 @@ import org.commonjava.indy.action.IndyLifecycleException; import org.commonjava.indy.action.ShutdownAction; +import org.commonjava.indy.content.index.conf.ContentIndexConfig; import org.commonjava.indy.data.StoreDataManager; import org.commonjava.indy.measure.annotation.Measure; import org.commonjava.indy.model.core.ArtifactStore; @@ -77,6 +78,9 @@ public class DefaultContentIndexManager @Inject private Instance indexingStrategyComponents; + @Inject + private ContentIndexConfig config; + private Map indexingStrategies; private QueryFactory queryFactory; @@ -98,6 +102,12 @@ public DefaultContentIndexManager( StoreDataManager storeDataManager, SpecialPat @PostConstruct public void constructed() { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return; + } + if ( indexingStrategyComponents != null ) { Map strats = new HashMap<>(); @@ -126,6 +136,12 @@ public String getId() public void stop() throws IndyLifecycleException { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return; + } + logger.debug( "Shutdown index cache" ); contentIndex.stop(); } @@ -140,6 +156,12 @@ public int getShutdownPriority() @Measure public boolean removeIndexedStorePath( String rawPath, StoreKey key, Consumer pathConsumer ) { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return false; + } + String path = getStrategyPath( key, rawPath ); IndexedStorePath topPath = new IndexedStorePath( key, path ); logger.trace( "Attempting to remove indexed path: {}", topPath ); @@ -158,6 +180,12 @@ public boolean removeIndexedStorePath( String rawPath, StoreKey key, Consumer queryFactory.from( IndexedStorePath.class ) @@ -259,6 +317,12 @@ public void clearAllIndexedPathInStore( ArtifactStore store ) @Measure public void clearAllIndexedPathWithOriginalStore( ArtifactStore originalStore ) { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return; + } + StoreKey osk = originalStore.getKey(); long total = iterateRemove( () -> queryFactory.from( IndexedStorePath.class ) @@ -303,6 +367,12 @@ private long iterateRemove( final Supplier queryFunction ) @Measure public void clearAllIndexedPathInStoreWithOriginal( ArtifactStore store, ArtifactStore originalStore ) { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return; + } + StoreKey sk = store.getKey(); StoreKey osk = originalStore.getKey(); @@ -337,6 +407,12 @@ public void clearAllIndexedPathInStoreWithOriginal( ArtifactStore store, Artifac @Measure public void clearIndexedPathFrom( String rawPath, Set groups, Consumer pathConsumer ) { + if ( !config.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return; + } + if ( groups == null || groups.isEmpty() ) { return; diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java index e8a389458c..79d7f05a71 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java @@ -298,7 +298,7 @@ else if ( StoreType.hosted != type ) // don't track NFC for hosted repos transfer = delegate.retrieve( store, path, eventMetadata ); - if ( exists( transfer ) ) + if ( exists( transfer ) && indexCfg.isEnabled() ) { logger.debug( "Got transfer from delegate: {} (will index)", transfer ); indexManager.indexTransferIn( transfer, store.getKey() ); @@ -338,8 +338,13 @@ private Transfer getTransferFromConstituents( Collection constituents, if ( exists( transfer ) ) { nfc.clearMissing( resource ); - logger.debug( "Got transfer from constituent: {} (will index)", transfer ); - indexManager.indexTransferIn( transfer, parentStore.getKey() ); + + if ( indexCfg.isEnabled() ) + { + logger.debug( "Got transfer from constituent: {} (will index)", transfer ); + indexManager.indexTransferIn( transfer, parentStore.getKey() ); + } + return transfer; } } @@ -358,11 +363,17 @@ private boolean exists( final Transfer transfer ) return transfer != null && transfer.exists(); } - @Measure( timers = @MetricNamed( DEFAULT ), exceptions = @MetricNamed( DEFAULT ) ) + @Measure public Transfer getIndexedTransfer( final StoreKey storeKey, final StoreKey topKey, final String path, final TransferOperation op, final EventMetadata metadata ) throws IndyWorkflowException { + if ( !indexCfg.isEnabled() ) + { + logger.debug( "Content indexing is disabled." ); + return null; + } + logger.debug( "Looking for indexed path: {} in: {} (entry point: {})", path, storeKey, topKey ); try @@ -489,7 +500,7 @@ else if ( isAuthoritativelyMissing( store ) ) transfer = delegate.getTransfer( store, path, op ); // index the transfer only if it exists, it cannot be null at this point - if ( exists( transfer ) ) + if ( exists( transfer ) && indexCfg.isEnabled() ) { indexManager.indexTransferIn( transfer, store.getKey() ); } @@ -541,7 +552,11 @@ public Transfer getIndexedMemberTransfer( final Group group, final String path, if ( transfer != null ) { - indexManager.indexTransferIn( transfer, key, topKey ); + if ( indexCfg.isEnabled() ) + { + indexManager.indexTransferIn( transfer, key, topKey ); + } + return transfer; } else if ( StoreType.group == key.getType() ) @@ -618,7 +633,7 @@ public Transfer getTransfer( final StoreKey storeKey, final String path, final T } transfer = delegate.getTransfer( storeKey, path, op ); - if ( exists( transfer ) ) + if ( exists( transfer ) && indexCfg.isEnabled() ) { logger.debug( "Indexing transfer: {}", transfer ); indexManager.indexTransferIn( transfer, storeKey ); @@ -683,8 +698,11 @@ public Transfer store( final ArtifactStore store, final String path, final Input Transfer transfer = delegate.store( store, path, stream, op, eventMetadata ); if ( transfer != null ) { - logger.trace( "Indexing: {} in: {}", transfer, store.getKey() ); - indexManager.indexTransferIn( transfer, store.getKey() ); + if ( indexCfg.isEnabled() ) + { + logger.trace( "Indexing: {} in: {}", transfer, store.getKey() ); + indexManager.indexTransferIn( transfer, store.getKey() ); + } if ( store instanceof Group ) { @@ -697,7 +715,7 @@ public Transfer store( final ArtifactStore store, final String path, final Input try { Set groups = storeDataManager.query().getGroupsAffectedBy( store.getKey() ); - if ( groups != null && !groups.isEmpty() ) + if ( groups != null && !groups.isEmpty() && indexCfg.isEnabled() ) { groups.forEach( g -> indexManager.deIndexStorePath( g.getKey(), path ) ); } @@ -731,15 +749,22 @@ public Transfer store( final List stores, final StoreKe Transfer transfer = delegate.store( stores, topKey, path, stream, op, eventMetadata ); if ( transfer != null ) { - indexManager.indexTransferIn( transfer, topKey ); + if ( indexCfg.isEnabled() ) + { + indexManager.indexTransferIn( transfer, topKey ); + } try { ArtifactStore topStore = storeDataManager.getArtifactStore( topKey ); nfc.clearMissing( new ConcreteResource( LocationUtils.toLocation( topStore ), path ) ); - // We should deIndex the path for all parent groups because the new content of the path - // may change the content index sequence based on the constituents sequence in parent groups - indexManager.deIndexStorePath( topKey, path ); + + if ( indexCfg.isEnabled() ) + { + // We should deIndex the path for all parent groups because the new content of the path + // may change the content index sequence based on the constituents sequence in parent groups + indexManager.deIndexStorePath( topKey, path ); + } } catch ( IndyDataException e ) { @@ -764,7 +789,7 @@ public boolean delete( final ArtifactStore store, final String path, final Event throws IndyWorkflowException { boolean result = delegate.delete( store, path, eventMetadata ); - if ( result ) + if ( result && indexCfg.isEnabled() ) { indexManager.deIndexStorePath( store.getKey(), path ); } diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java index efd232b11a..ec8487bf7d 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java @@ -31,16 +31,22 @@ public class ContentIndexConfig public static final String AUTH_INDEX_PARAM = "support.authoritative.indexes"; - public static final String ENABLE_INDEX_WARMER = "index.warmer.enable"; + public static final String ENABLE_INDEX_WARMER = "index.warmer.enabled"; + + private static final String ENABLE = "enabled"; private static final Boolean DEFAULT_AUTHORITATIVE_INDEXES = Boolean.FALSE; private static final Boolean DEFAULT_WARMER_ENABLED = Boolean.FALSE; + private static final Boolean DEFAULT_ENABLED = Boolean.FALSE; + private Boolean authoritativeIndex; private Boolean warmerEnabled; + private Boolean enabled; + public ContentIndexConfig() { } @@ -83,4 +89,15 @@ public InputStream getDefaultConfig() { return Thread.currentThread().getContextClassLoader().getResourceAsStream( "default-content-index.conf" ); } + + public boolean isEnabled() + { + return enabled == null ? DEFAULT_ENABLED : enabled; + } + + @ConfigName( ContentIndexConfig.ENABLE ) + public void setEnabled( Boolean enabled ) + { + this.enabled = enabled; + } } diff --git a/addons/content-index/src/main/resources/default-content-index.conf b/addons/content-index/src/main/resources/default-content-index.conf index c582e6d187..94dfa0ca48 100644 --- a/addons/content-index/src/main/resources/default-content-index.conf +++ b/addons/content-index/src/main/resources/default-content-index.conf @@ -1,9 +1,11 @@ [content-index] +#enabled = false + # This property is used to control if authoritative index is enabled. the authoritative index means: # in terms of performance consideration, we will use content-index as the one-time check for the content # access, and if not found in content indexing, will treat it as "no content" and bypass the following access to the storage. -support.authoritative.indexes=false +#support.authoritative.indexes=false # This property is used to enable content index warmer, which will scan all repos and load all artifacts # into content index when startup. -index.warmer.enable=false \ No newline at end of file +#index.warmer.enabled=false diff --git a/embedder/pom.xml b/embedder/pom.xml index 7519effa00..049355d2e8 100644 --- a/embedder/pom.xml +++ b/embedder/pom.xml @@ -67,6 +67,10 @@ org.commonjava.indy indy-subsys-metrics-reporter + + org.commonjava.indy + indy-subsys-metrics-prometheus + org.commonjava.indy indy-subsys-cpool diff --git a/pom.xml b/pom.xml index 4ba78ec4b3..cdfe5f6b3c 100644 --- a/pom.xml +++ b/pom.xml @@ -1023,6 +1023,17 @@ 3.0.6 + + io.prometheus + simpleclient_servlet + 0.7.0 + + + io.prometheus + simpleclient_dropwizard + 0.7.0 + + io.github.hengyunabc zabbix-api diff --git a/subsys/metrics/pom.xml b/subsys/metrics/pom.xml index f7eaf53e14..df90099f46 100644 --- a/subsys/metrics/pom.xml +++ b/subsys/metrics/pom.xml @@ -32,6 +32,7 @@ core reporter + prometheus diff --git a/subsys/metrics/prometheus/pom.xml b/subsys/metrics/prometheus/pom.xml new file mode 100644 index 0000000000..82b84f2161 --- /dev/null +++ b/subsys/metrics/prometheus/pom.xml @@ -0,0 +1,83 @@ + + + + + indy-subsys-metrics + org.commonjava.indy + 1.9.6-SNAPSHOT + + 4.0.0 + + indy-subsys-metrics-prometheus + + + + io.prometheus + simpleclient_dropwizard + + + io.prometheus + simpleclient_servlet + + + org.commonjava.indy + indy-subsys-metrics-core + + + org.commonjava.indy + indy-subsys-jaxrs + + + javax.enterprise + cdi-api + provided + + + org.commonjava.indy + indy-subsys-flatfile + + + org.commonjava.util + http-testserver + + + + + \ No newline at end of file diff --git a/subsys/metrics/prometheus/src/main/java/org/commonjava/indy/metrics/prometheus/PrometheusDeployment.java b/subsys/metrics/prometheus/src/main/java/org/commonjava/indy/metrics/prometheus/PrometheusDeployment.java new file mode 100644 index 0000000000..bb8e0c0c7c --- /dev/null +++ b/subsys/metrics/prometheus/src/main/java/org/commonjava/indy/metrics/prometheus/PrometheusDeployment.java @@ -0,0 +1,57 @@ +package org.commonjava.indy.metrics.prometheus; + +import com.codahale.metrics.MetricRegistry; +import io.prometheus.client.CollectorRegistry; +import io.prometheus.client.dropwizard.DropwizardExports; +import io.prometheus.client.exporter.MetricsServlet; +import io.undertow.servlet.Servlets; +import io.undertow.servlet.api.DeploymentInfo; +import io.undertow.servlet.api.ServletInfo; +import org.commonjava.indy.bind.jaxrs.IndyDeploymentProvider; +import org.commonjava.indy.bind.jaxrs.metrics.IndyHealthCheckServletContextListener; +import org.commonjava.indy.metrics.conf.IndyMetricsConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.ws.rs.core.Application; + +@ApplicationScoped +public class PrometheusDeployment + extends IndyDeploymentProvider +{ + private static final String PROMETHEUS_REPORTER = "prometheus"; + + private final Logger logger = LoggerFactory.getLogger( getClass() ); + + @Inject + private IndyMetricsConfig config; + + @Inject + private MetricRegistry metricRegistry; + + @Override + public DeploymentInfo getDeploymentInfo( String contextRoot, Application application ) + { + if ( !config.isMetricsEnabled() || !config.getReporter().contains( PROMETHEUS_REPORTER ) ) + { + return null; + } + + CollectorRegistry.defaultRegistry.register( new DropwizardExports( metricRegistry ) ); + + final ServletInfo servlet = + Servlets.servlet( "prometheus-metrics", MetricsServlet.class ).addMapping( "/metrics" ); + + final DeploymentInfo di = new DeploymentInfo().addListener( + Servlets.listener( IndyHealthCheckServletContextListener.class ) ) + .setContextPath( contextRoot ) + .addServlet( servlet ) + .setDeploymentName( "Prometheus Metrics Deployment" ) + .setClassLoader( ClassLoader.getSystemClassLoader() ); + + logger.info( "Returning deployment info for Prometheus metrics servlet" ); + return di; + } +} From 989ea92366a578670892d04128bbe28faedc445d Mon Sep 17 00:00:00 2001 From: John Casey Date: Mon, 21 Oct 2019 13:39:04 -0500 Subject: [PATCH 2/3] add managed dep on indy-subsys-metrics-prometheus --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index cdfe5f6b3c..d61222c478 100644 --- a/pom.xml +++ b/pom.xml @@ -722,6 +722,11 @@ indy-subsys-metrics-reporter 1.9.6-SNAPSHOT + + org.commonjava.indy + indy-subsys-metrics-prometheus + 1.9.6-SNAPSHOT + org.commonjava.indy indy-subsys-metrics-reporter From bd527c926af28dac89668557fde54c8f26766dbf Mon Sep 17 00:00:00 2001 From: John Casey Date: Mon, 21 Oct 2019 15:23:24 -0500 Subject: [PATCH 3/3] Fix tests broken by default-disabled content index, and improve some logger names --- .../index/IndexingContentManagerDecorator.java | 5 +++-- .../content/index/conf/ContentIndexConfig.java | 9 ++++++++- .../conf/HostedContentIndexRescanManager.java | 15 +++++++++++++++ .../koji/content/KojiContentManagerDecorator.java | 2 +- .../indy/core/content/DefaultContentManager.java | 2 +- embedder/src/test/resources/logback-test.xml | 2 +- .../content/HostedContentIndexRescanTest.java | 2 +- .../content/RepositoryPathMaskMetadataTest.java | 2 +- .../AuthoritativeIndexedContentInHostedTest.java | 2 +- .../AuthoritativeIndexedContentInRemoteTest.java | 2 +- .../ContentIndexDirLvWithArtifactsTest.java | 9 +++++++++ .../ContentIndexDirLvWithMetadataTest.java | 9 +++++++++ .../contentindex/ContentIndexGroupUsageTest.java | 10 ++++++++++ ...ntentIndexNestedGroupAndStoreDeletionTest.java | 10 ++++++++++ .../ContentIndexRemoteRepoUsageTest.java | 10 ++++++++++ .../core/store/HostedAuthIndexWithReadonly.java | 2 +- 16 files changed, 82 insertions(+), 11 deletions(-) diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java index 79d7f05a71..0e045a28cb 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/IndexingContentManagerDecorator.java @@ -66,7 +66,7 @@ public abstract class IndexingContentManagerDecorator implements ContentManager { - private final Logger logger = LoggerFactory.getLogger( this.getClass() ); + private final Logger logger = LoggerFactory.getLogger( IndexingContentManagerDecorator.class.getName() ); @Inject private StoreDataManager storeDataManager; @@ -296,6 +296,7 @@ else if ( StoreType.hosted != type ) // don't track NFC for hosted repos } } + logger.trace( "Delegating retrieve call for concrete repository: {}/{}", store, path ); transfer = delegate.retrieve( store, path, eventMetadata ); if ( exists( transfer ) && indexCfg.isEnabled() ) @@ -370,7 +371,7 @@ public Transfer getIndexedTransfer( final StoreKey storeKey, final StoreKey topK { if ( !indexCfg.isEnabled() ) { - logger.debug( "Content indexing is disabled." ); + logger.debug( "Content indexing is disabled. Returning null for indexedTransfer of: {}/{}", storeKey, path ); return null; } diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java index ec8487bf7d..113b04306e 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/ContentIndexConfig.java @@ -18,6 +18,8 @@ import org.commonjava.indy.conf.IndyConfigInfo; import org.commonjava.propulsor.config.annotation.ConfigName; import org.commonjava.propulsor.config.annotation.SectionName; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.enterprise.context.ApplicationScoped; import java.io.InputStream; @@ -92,7 +94,12 @@ public InputStream getDefaultConfig() public boolean isEnabled() { - return enabled == null ? DEFAULT_ENABLED : enabled; + Boolean result = enabled == null ? DEFAULT_ENABLED : enabled; + + Logger logger = LoggerFactory.getLogger( getClass() ); + logger.debug( "Is content indexer enabled? {}", result ); + + return result; } @ConfigName( ContentIndexConfig.ENABLE ) diff --git a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/HostedContentIndexRescanManager.java b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/HostedContentIndexRescanManager.java index a639e423b9..3f0a98f82e 100644 --- a/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/HostedContentIndexRescanManager.java +++ b/addons/content-index/src/main/java/org/commonjava/indy/content/index/conf/HostedContentIndexRescanManager.java @@ -58,6 +58,9 @@ public class HostedContentIndexRescanManager implements ContentIndexRescanManage @Inject private ContentIndexManager contentIndexManager; + @Inject + private ContentIndexConfig indexConfig; + @Inject private DownloadManager downloadManager; @@ -68,6 +71,12 @@ protected HostedContentIndexRescanManager() public void indexPreRescan( @Observes final ArtifactStorePreRescanEvent e ) throws IndyWorkflowException { + if ( !indexConfig.isEnabled() ) + { + LOGGER.debug( "Content index is disabled." ); + return; + } + Collection affectedRepos = e.getStores(); for ( ArtifactStore repo : affectedRepos ) { @@ -89,6 +98,12 @@ public void indexPreRescan( @Observes final ArtifactStorePreRescanEvent e ) public void indexPostRescan( @Observes final ArtifactStorePostRescanEvent e ) throws IndyWorkflowException { + if ( !indexConfig.isEnabled() ) + { + LOGGER.debug( "Content index is disabled." ); + return; + } + Collection hostedStores = e.getStores(); for ( ArtifactStore repo : hostedStores ) { diff --git a/addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java b/addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java index d35dd87910..e582da1617 100644 --- a/addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java +++ b/addons/koji/common/src/main/java/org/commonjava/indy/koji/content/KojiContentManagerDecorator.java @@ -97,7 +97,7 @@ public abstract class KojiContentManagerDecorator implements ContentManager { - private Logger logger = LoggerFactory.getLogger( getClass() ); + private Logger logger = LoggerFactory.getLogger( KojiContentManagerDecorator.class.getName() ); public static final String CREATION_TRIGGER_GAV = "creation-trigger-GAV"; diff --git a/core/src/main/java/org/commonjava/indy/core/content/DefaultContentManager.java b/core/src/main/java/org/commonjava/indy/core/content/DefaultContentManager.java index a50741f8f2..cace0cc4a5 100644 --- a/core/src/main/java/org/commonjava/indy/core/content/DefaultContentManager.java +++ b/core/src/main/java/org/commonjava/indy/core/content/DefaultContentManager.java @@ -64,7 +64,7 @@ public class DefaultContentManager implements ContentManager { - private final Logger logger = LoggerFactory.getLogger( getClass() ); + private final Logger logger = LoggerFactory.getLogger( DefaultContentManager.class.getName() ); @Inject private ContentGeneratorManager contentGeneratorManager; diff --git a/embedder/src/test/resources/logback-test.xml b/embedder/src/test/resources/logback-test.xml index e3cf2048d0..1fb6d129fb 100644 --- a/embedder/src/test/resources/logback-test.xml +++ b/embedder/src/test/resources/logback-test.xml @@ -48,7 +48,7 @@ - + diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/HostedContentIndexRescanTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/HostedContentIndexRescanTest.java index daa4c29046..85d8081435 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/HostedContentIndexRescanTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/HostedContentIndexRescanTest.java @@ -80,6 +80,6 @@ protected void initTestConfig( CoreServerFixture fixture ) throws IOException { super.initTestConfig( fixture ); - writeConfigFile( "conf.d/content-index.conf", "[content-index]\nsupport.authoritative.indexes=true" ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true\nsupport.authoritative.indexes=true" ); } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/RepositoryPathMaskMetadataTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/RepositoryPathMaskMetadataTest.java index e9d0397afd..a3e9c09c01 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/RepositoryPathMaskMetadataTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/RepositoryPathMaskMetadataTest.java @@ -103,7 +103,7 @@ public void run() HostedRepository hostedRepo1 = new HostedRepository( hosted1 ); pathMaskPatterns = new HashSet<>(); - pathMaskPatterns.add("org/bar.*"); + pathMaskPatterns.add("r|org/bar.*|"); hostedRepo1.setPathMaskPatterns(pathMaskPatterns); hostedRepo1 = client.stores().create( hostedRepo1, "adding hosted 1", HostedRepository.class ); client.content().store( hosted, hosted1, path_metadata, new ByteArrayInputStream( meta2.getBytes() ) ); diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInHostedTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInHostedTest.java index 52e93d5da0..c3a08d459a 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInHostedTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInHostedTest.java @@ -154,6 +154,6 @@ protected void initTestConfig( CoreServerFixture fixture ) throws IOException { super.initTestConfig( fixture ); - writeConfigFile( "conf.d/content-index.conf", "[content-index]\nsupport.authoritative.indexes=true" ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true\nsupport.authoritative.indexes=true" ); } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInRemoteTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInRemoteTest.java index 96b1ab7efd..05d990d82e 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInRemoteTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/AuthoritativeIndexedContentInRemoteTest.java @@ -137,6 +137,6 @@ protected void initTestConfig( CoreServerFixture fixture ) throws IOException { super.initTestConfig( fixture ); - writeConfigFile( "conf.d/content-index.conf", "[content-index]\nsupport.authoritative.indexes=true" ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true\nsupport.authoritative.indexes=true" ); } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithArtifactsTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithArtifactsTest.java index ed7bbd529f..98425a126f 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithArtifactsTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithArtifactsTest.java @@ -22,6 +22,7 @@ import org.commonjava.indy.model.core.Group; import org.commonjava.indy.model.core.RemoteRepository; import org.commonjava.indy.subsys.infinispan.BasicCacheHandle; +import org.commonjava.indy.test.fixture.core.CoreServerFixture; import org.commonjava.test.http.expect.ExpectationServer; import org.infinispan.AdvancedCache; import org.junit.Before; @@ -29,6 +30,7 @@ import org.junit.Test; import javax.enterprise.inject.spi.CDI; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; @@ -168,4 +170,11 @@ public void test() } + @Override + protected void initTestConfig( final CoreServerFixture fixture ) + throws IOException + { + super.initTestConfig( fixture ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true" ); + } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithMetadataTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithMetadataTest.java index e2795bc090..5296fa9508 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithMetadataTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexDirLvWithMetadataTest.java @@ -24,6 +24,7 @@ import org.commonjava.indy.model.core.StoreKey; import org.commonjava.indy.subsys.infinispan.BasicCacheHandle; import org.commonjava.indy.subsys.infinispan.CacheHandle; +import org.commonjava.indy.test.fixture.core.CoreServerFixture; import org.commonjava.test.http.expect.ExpectationServer; import org.infinispan.AdvancedCache; import org.junit.Before; @@ -31,6 +32,7 @@ import org.junit.Test; import javax.enterprise.inject.spi.CDI; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; @@ -133,4 +135,11 @@ public void test() } + @Override + protected void initTestConfig( final CoreServerFixture fixture ) + throws IOException + { + super.initTestConfig( fixture ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true" ); + } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexGroupUsageTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexGroupUsageTest.java index ab3bfaa604..364ffae0bc 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexGroupUsageTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexGroupUsageTest.java @@ -22,12 +22,14 @@ import org.commonjava.indy.model.core.Group; import org.commonjava.indy.model.core.RemoteRepository; import org.commonjava.indy.model.core.StoreKey; +import org.commonjava.indy.test.fixture.core.CoreServerFixture; import org.commonjava.test.http.expect.ExpectationServer; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import javax.enterprise.inject.spi.CDI; +import java.io.IOException; import java.io.InputStream; import static org.commonjava.indy.pkg.maven.model.MavenPackageTypeDescriptor.MAVEN_PKG_KEY; @@ -78,6 +80,14 @@ public void getIndexManager() indexManager = CDI.current().select( ContentIndexManager.class ).get(); } + @Override + protected void initTestConfig( final CoreServerFixture fixture ) + throws IOException + { + super.initTestConfig( fixture ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true" ); + } + @Test public void bypassNotIndexedContentWithAuthoritativeIndex() throws Exception diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexNestedGroupAndStoreDeletionTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexNestedGroupAndStoreDeletionTest.java index 546408bda7..409cba974d 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexNestedGroupAndStoreDeletionTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexNestedGroupAndStoreDeletionTest.java @@ -23,12 +23,14 @@ import org.commonjava.indy.model.core.Group; import org.commonjava.indy.model.core.RemoteRepository; import org.commonjava.indy.model.core.StoreKey; +import org.commonjava.indy.test.fixture.core.CoreServerFixture; import org.commonjava.test.http.expect.ExpectationServer; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import javax.enterprise.inject.spi.CDI; +import java.io.IOException; import java.io.InputStream; import static org.commonjava.indy.pkg.maven.model.MavenPackageTypeDescriptor.MAVEN_PKG_KEY; @@ -148,4 +150,12 @@ private void indexExist( ArtifactStore... stores ) assertThat( "Indexed StoreKey not found for " + store.getKey(), indexedStoreKey, notNullValue() ); } } + + @Override + protected void initTestConfig( final CoreServerFixture fixture ) + throws IOException + { + super.initTestConfig( fixture ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true" ); + } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexRemoteRepoUsageTest.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexRemoteRepoUsageTest.java index 233bcf51ab..35bae64157 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexRemoteRepoUsageTest.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/content/contentindex/ContentIndexRemoteRepoUsageTest.java @@ -23,12 +23,14 @@ import org.commonjava.indy.model.core.RemoteRepository; import org.commonjava.indy.model.core.StoreKey; import org.commonjava.indy.subsys.infinispan.CacheHandle; +import org.commonjava.indy.test.fixture.core.CoreServerFixture; import org.commonjava.test.http.expect.ExpectationServer; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import javax.enterprise.inject.spi.CDI; +import java.io.IOException; import java.io.InputStream; import static org.commonjava.indy.pkg.maven.model.MavenPackageTypeDescriptor.MAVEN_PKG_KEY; @@ -124,4 +126,12 @@ public void bypassNotIndexedContentWithAuthoritativeIndex() // object equality should work since we haven't persisted this anywhere yet. assertThat( indexedStoreKey == indexedStoreKey2, equalTo( true ) ); } + + @Override + protected void initTestConfig( final CoreServerFixture fixture ) + throws IOException + { + super.initTestConfig( fixture ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true" ); + } } diff --git a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/store/HostedAuthIndexWithReadonly.java b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/store/HostedAuthIndexWithReadonly.java index 894b109b92..41eb834120 100644 --- a/ftests/core/src/main/java/org/commonjava/indy/ftest/core/store/HostedAuthIndexWithReadonly.java +++ b/ftests/core/src/main/java/org/commonjava/indy/ftest/core/store/HostedAuthIndexWithReadonly.java @@ -96,6 +96,6 @@ protected void initTestConfig( CoreServerFixture fixture ) throws IOException { super.initTestConfig( fixture ); - writeConfigFile( "conf.d/content-index.conf", "[content-index]\nsupport.authoritative.indexes=true" ); + writeConfigFile( "conf.d/content-index.conf", "[content-index]\nenabled=true\nsupport.authoritative.indexes=true" ); } }