diff --git a/addons/pkg-maven/common/src/test/java/org/commonjava/indy/pkg/maven/content/MavenContentFilteringTransferDecoratorTest.java b/addons/pkg-maven/common/src/test/java/org/commonjava/indy/pkg/maven/content/MavenContentFilteringTransferDecoratorTest.java index 1fe2277b2c..ad0c6892ed 100644 --- a/addons/pkg-maven/common/src/test/java/org/commonjava/indy/pkg/maven/content/MavenContentFilteringTransferDecoratorTest.java +++ b/addons/pkg-maven/common/src/test/java/org/commonjava/indy/pkg/maven/content/MavenContentFilteringTransferDecoratorTest.java @@ -24,6 +24,7 @@ import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.Transfer; import org.commonjava.maven.galley.model.TransferOperation; +import org.commonjava.maven.galley.proxy.NoOpProxySitesCache; import org.commonjava.maven.galley.transport.htcli.internal.HttpDownload; import org.commonjava.maven.galley.transport.htcli.model.SimpleHttpLocation; import org.commonjava.o11yphant.metrics.DefaultMetricRegistry; @@ -154,7 +155,7 @@ private Transfer getTestHttpTransfer(final String path, final String content) th assertThat( transfer.exists(), equalTo( false ) ); HttpDownload dl = new HttpDownload( url, location, transfer, new HashMap<>(), new EventMetadata(), - fixture.getHttp().getHttp(), new ObjectMapper(), true, metricRegistry, metricConfig ); + fixture.getHttp().getHttp(), new ObjectMapper(), true, metricRegistry, metricConfig, new NoOpProxySitesCache() ); return dl.call().getTransfer(); } diff --git a/core/src/main/java/org/commonjava/indy/core/inject/CoreProvider.java b/core/src/main/java/org/commonjava/indy/core/inject/CoreProvider.java index e0bf186354..5d37f1caf0 100644 --- a/core/src/main/java/org/commonjava/indy/core/inject/CoreProvider.java +++ b/core/src/main/java/org/commonjava/indy/core/inject/CoreProvider.java @@ -23,6 +23,7 @@ import org.commonjava.indy.subsys.infinispan.BasicCacheHandle; import org.commonjava.indy.subsys.infinispan.CacheProducer; import org.commonjava.maven.galley.spi.nfc.NotFoundCache; +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,6 +62,8 @@ public class CoreProvider private IndyObjectMapper objectMapper; + private ProxySitesCache proxySitesCache; + public CoreProvider() { } @@ -69,6 +72,7 @@ public CoreProvider() public void init() { this.objectMapper = new IndyObjectMapper( objectMapperModules, objectMapperModuleSets ); + this.proxySitesCache = new MemoryProxySitesCache(); String nfcProvider = indyConfiguration.getNfcProvider(); logger.info( "Apply nfc provider: {}", nfcProvider ); @@ -98,4 +102,10 @@ public IndyObjectMapper getIndyObjectMapper() @Default public NotFoundCache getNotFoundCache() { return notFoundCache; } + @Produces + @Default + public ProxySitesCache getProxySitesCache() + { + return proxySitesCache; + } } diff --git a/core/src/main/java/org/commonjava/indy/core/inject/MemoryProxySitesCache.java b/core/src/main/java/org/commonjava/indy/core/inject/MemoryProxySitesCache.java new file mode 100644 index 0000000000..05b4d89b50 --- /dev/null +++ b/core/src/main/java/org/commonjava/indy/core/inject/MemoryProxySitesCache.java @@ -0,0 +1,62 @@ +/** + * Copyright (C) 2011-2023 Red Hat, Inc. (https://github.com/Commonjava/indy) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.commonjava.indy.core.inject; + +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Alternative; +import java.util.HashSet; +import java.util.Set; + +@ApplicationScoped +@Alternative +public class MemoryProxySitesCache + implements ProxySitesCache +{ + + protected Set proxySitesCache = new HashSet<>(); + + @Override + public Set getProxySites() + { + return proxySitesCache; + } + + @Override + public boolean isProxySite( String site ) + { + return proxySitesCache.contains( site ); + } + + @Override + public void saveProxySite( String site ) + { + proxySitesCache.add( site ); + } + + @Override + public void deleteProxySite( String site ) + { + proxySitesCache.remove( site ); + } + + @Override + public void deleteAllProxySites() + { + proxySitesCache.clear(); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/commonjava/indy/fixture/GalleyFixture.java b/core/src/test/java/org/commonjava/indy/fixture/GalleyFixture.java index 811a18013a..970a87fbc4 100644 --- a/core/src/test/java/org/commonjava/indy/fixture/GalleyFixture.java +++ b/core/src/test/java/org/commonjava/indy/fixture/GalleyFixture.java @@ -34,10 +34,12 @@ import org.commonjava.maven.galley.io.SpecialPathManagerImpl; import org.commonjava.maven.galley.io.TransferDecoratorManager; import org.commonjava.maven.galley.nfc.MemoryNotFoundCache; +import org.commonjava.maven.galley.proxy.NoOpProxySitesCache; import org.commonjava.maven.galley.spi.cache.CacheProvider; import org.commonjava.maven.galley.spi.event.FileEventManager; import org.commonjava.maven.galley.spi.io.SpecialPathManager; import org.commonjava.maven.galley.spi.nfc.NotFoundCache; +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; import org.commonjava.maven.galley.spi.transport.TransportManager; import org.commonjava.maven.galley.transport.TransportManagerImpl; import org.commonjava.maven.galley.transport.htcli.HttpClientTransport; @@ -60,6 +62,8 @@ public class GalleyFixture private final NotFoundCache nfc; + private final ProxySitesCache proxySitesCache; + private final SpecialPathManager specialPathManager; private final ExecutorService batchExecutor; @@ -74,6 +78,7 @@ public GalleyFixture( final File repoRoot ) executor = Executors.newFixedThreadPool( 2 ); batchExecutor = Executors.newFixedThreadPool( 2 ); nfc = new MemoryNotFoundCache(); + proxySitesCache = new NoOpProxySitesCache(); specialPathManager = new SpecialPathManagerImpl(); TransportManagerConfig transportManagerConfig = new TransportManagerConfig(); @@ -121,4 +126,8 @@ public NotFoundCache getNotFoundCache() return nfc; } + public ProxySitesCache getProxySitesCache() + { + return proxySitesCache; + } } diff --git a/core/src/test/java/org/commonjava/indy/fixture/MockTestProvider.java b/core/src/test/java/org/commonjava/indy/fixture/MockTestProvider.java index 821be057fe..736af5f1b9 100644 --- a/core/src/test/java/org/commonjava/indy/fixture/MockTestProvider.java +++ b/core/src/test/java/org/commonjava/indy/fixture/MockTestProvider.java @@ -24,6 +24,8 @@ import org.commonjava.maven.galley.config.TransportManagerConfig; import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginDefaults; import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginImplications; +import org.commonjava.maven.galley.proxy.NoOpProxySitesCache; +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; import org.commonjava.o11yphant.metrics.TrafficClassifier; import org.commonjava.o11yphant.metrics.sli.GoldenSignalsMetricSet; @@ -113,4 +115,10 @@ public StoreDataManager getStoreDataManager() { return new MemoryStoreDataManager( true ); } + + @Produces + public ProxySitesCache getProxySitesCache() + { + return new NoOpProxySitesCache(); + } } diff --git a/pom.xml b/pom.xml index 14072a49e8..5cf4341ea1 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,7 @@ 1.5 3.4.0 1.1.4 - 1.17 + 1.18-SNAPSHOT 1.24 3.2.1 diff --git a/subsys/groovy/src/test/java/org/commonjava/indy/subsys/template/fixture/TestProvider.java b/subsys/groovy/src/test/java/org/commonjava/indy/subsys/template/fixture/TestProvider.java index 94f5b823d0..e83abf64b8 100644 --- a/subsys/groovy/src/test/java/org/commonjava/indy/subsys/template/fixture/TestProvider.java +++ b/subsys/groovy/src/test/java/org/commonjava/indy/subsys/template/fixture/TestProvider.java @@ -34,9 +34,11 @@ import org.commonjava.maven.galley.io.NoOpTransferDecorator; import org.commonjava.maven.galley.io.TransferDecoratorManager; import org.commonjava.maven.galley.nfc.MemoryNotFoundCache; +import org.commonjava.maven.galley.proxy.NoOpProxySitesCache; import org.commonjava.maven.galley.spi.cache.CacheProvider; import org.commonjava.maven.galley.spi.event.FileEventManager; import org.commonjava.maven.galley.spi.nfc.NotFoundCache; +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; import org.commonjava.maven.galley.transport.htcli.conf.GlobalProxyConfig; import org.junit.rules.TemporaryFolder; @@ -65,6 +67,8 @@ public class TestProvider private NotFoundCache nfc; + private ProxySitesCache proxySitesCache; + private StoreDataManager storeDataManager; private ObjectMapper objectMapper; @@ -94,6 +98,7 @@ public void setup() { storeDataManager = new MemoryStoreDataManager( true ); nfc = new MemoryNotFoundCache(); + proxySitesCache = new NoOpProxySitesCache(); objectMapper = new IndyObjectMapper( false ); fileEventManager = new NoOpFileEventManager(); transferDecorator = new NoOpTransferDecorator(); @@ -135,6 +140,12 @@ public NotFoundCache getNfc() return nfc; } + @Produces + public ProxySitesCache getProxySitesCache() + { + return proxySitesCache; + } + @Produces @Standalone @Default