Skip to content

Commit 97815fd

Browse files
authored
Merge pull request #8 from jonesbusy/feature/support-for-host
Support for host
2 parents 60a8a78 + c968fba commit 97815fd

File tree

7 files changed

+117
-13
lines changed

7 files changed

+117
-13
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package io.quarkiverse.oras.test;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
import java.util.Map;
8+
9+
import jakarta.inject.Inject;
10+
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
14+
import io.quarkiverse.oras.runtime.RegistriesConfiguration;
15+
import io.quarkiverse.oras.runtime.RegistryConfiguration;
16+
import io.quarkus.test.QuarkusUnitTest;
17+
18+
public class TwoRegistryConfigurationTest {
19+
20+
@Inject
21+
RegistriesConfiguration registriesConfiguration;
22+
23+
@RegisterExtension
24+
static final QuarkusUnitTest config = new QuarkusUnitTest()
25+
.withConfigurationResource("two-secure-registry.properties");
26+
27+
@Test
28+
public void shouldHaveOneInsecureRegistry() {
29+
Map<String, RegistryConfiguration> registries = registriesConfiguration.names();
30+
assertEquals(2, registries.size(), "There should be 2 registries configured");
31+
assertTrue(registries.containsKey("foobar"), "Registry foobar should be configured");
32+
assertTrue(registries.containsKey("foobar2"), "Registry baz should be configured");
33+
34+
RegistryConfiguration configuration1 = registriesConfiguration.names().get("foobar");
35+
RegistryConfiguration configuration2 = registriesConfiguration.names().get("foobar2");
36+
37+
// Check registry 1
38+
assertTrue(configuration1.secure(), "Registry1 should be secure");
39+
assertTrue(configuration1.enabled(), "Registry1 should be enabled");
40+
assertTrue(configuration1.username().isPresent(), "Registry1 should have username");
41+
assertTrue(configuration1.password().isPresent(), "Registry1 should have password");
42+
assertFalse(configuration1.host().isPresent(), "Registry1 should not have default host set");
43+
assertEquals("toto", configuration1.username().get(), "Registry1 should have username set");
44+
assertEquals("titi", configuration1.password().get(), "Registry1 should have password set");
45+
46+
// Check registry 2
47+
assertTrue(configuration2.secure(), "Registry2 should secure");
48+
assertTrue(configuration2.enabled(), "Registry2 should be enabled");
49+
assertTrue(configuration2.username().isPresent(), "Registry2 should have username");
50+
assertTrue(configuration2.password().isPresent(), "Registry2 should have password");
51+
assertTrue(configuration2.host().isPresent(), "Registry2 should have default host set");
52+
assertEquals("toto2", configuration2.username().get(), "Registry2 should have username set");
53+
assertEquals("titi2", configuration2.password().get(), "Registry2 should have password set");
54+
assertEquals("localhost:5000", configuration2.host().get(), "Registry2 should have default host set");
55+
56+
}
57+
58+
}

deployment/src/test/resources/two-secure-registry.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ quarkus.oras.registries.foobar.username=toto
44
quarkus.oras.registries.foobar.password=titi
55

66
# Second registry
7-
quarkus.oras.registries.foobar.username=toto2
8-
quarkus.oras.registries.foobar.password=titi2
7+
quarkus.oras.registries.foobar2.host=localhost:5000
8+
quarkus.oras.registries.foobar2.username=toto2
9+
quarkus.oras.registries.foobar2.password=titi2

docs/modules/ROOT/pages/includes/quarkus-oras.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,27 @@ h|[.header-title]##Configuration property##
77
h|Type
88
h|Default
99

10+
a|icon:lock[title=Fixed at build time] [[quarkus-oras_quarkus-oras-registries-names-host]] [.property-path]##link:#quarkus-oras_quarkus-oras-registries-names-host[`quarkus.oras.registries."names".host`]##
11+
ifdef::add-copy-button-to-config-props[]
12+
config_property_copy_button:+++quarkus.oras.registries."names".host+++[]
13+
endif::add-copy-button-to-config-props[]
14+
15+
16+
[.description]
17+
--
18+
The registry default host
19+
20+
21+
ifdef::add-copy-button-to-env-var[]
22+
Environment variable: env_var_with_copy_button:+++QUARKUS_ORAS_REGISTRIES__NAMES__HOST+++[]
23+
endif::add-copy-button-to-env-var[]
24+
ifndef::add-copy-button-to-env-var[]
25+
Environment variable: `+++QUARKUS_ORAS_REGISTRIES__NAMES__HOST+++`
26+
endif::add-copy-button-to-env-var[]
27+
--
28+
|string
29+
|
30+
1031
a|icon:lock[title=Fixed at build time] [[quarkus-oras_quarkus-oras-registries-names-username]] [.property-path]##link:#quarkus-oras_quarkus-oras-registries-names-username[`quarkus.oras.registries."names".username`]##
1132
ifdef::add-copy-button-to-config-props[]
1233
config_property_copy_button:+++quarkus.oras.registries."names".username+++[]

docs/modules/ROOT/pages/includes/quarkus-oras_quarkus.oras.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,27 @@ h|[.header-title]##Configuration property##
77
h|Type
88
h|Default
99

10+
a|icon:lock[title=Fixed at build time] [[quarkus-oras_quarkus-oras-registries-names-host]] [.property-path]##link:#quarkus-oras_quarkus-oras-registries-names-host[`quarkus.oras.registries."names".host`]##
11+
ifdef::add-copy-button-to-config-props[]
12+
config_property_copy_button:+++quarkus.oras.registries."names".host+++[]
13+
endif::add-copy-button-to-config-props[]
14+
15+
16+
[.description]
17+
--
18+
The registry default host
19+
20+
21+
ifdef::add-copy-button-to-env-var[]
22+
Environment variable: env_var_with_copy_button:+++QUARKUS_ORAS_REGISTRIES__NAMES__HOST+++[]
23+
endif::add-copy-button-to-env-var[]
24+
ifndef::add-copy-button-to-env-var[]
25+
Environment variable: `+++QUARKUS_ORAS_REGISTRIES__NAMES__HOST+++`
26+
endif::add-copy-button-to-env-var[]
27+
--
28+
|string
29+
|
30+
1031
a|icon:lock[title=Fixed at build time] [[quarkus-oras_quarkus-oras-registries-names-username]] [.property-path]##link:#quarkus-oras_quarkus-oras-registries-names-username[`quarkus.oras.registries."names".username`]##
1132
ifdef::add-copy-button-to-config-props[]
1233
config_property_copy_button:+++quarkus.oras.registries."names".username+++[]

runtime/src/main/java/io/quarkiverse/oras/runtime/Registries.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
import jakarta.inject.Singleton;
77

8-
import org.slf4j.LoggerFactory;
9-
108
import io.quarkus.arc.Arc;
119
import land.oras.Registry;
1210

@@ -29,34 +27,34 @@ public Registries(
2927
}
3028

3129
public static Registry fromName(String registryName) {
32-
LoggerFactory.getLogger(RegistriesConfiguration.class).info("Resolving registry for {}", registryName);
3330
return Arc.container().instance(Registries.class).get().getRegistry(registryName);
3431
}
3532

3633
public Registry getRegistry(String registryName) {
37-
LoggerFactory.getLogger(RegistriesConfiguration.class).info("Getting registry for {}", registryName);
3834
return registries.computeIfAbsent(registryName, this::createRegistry);
3935
}
4036

4137
public Registry createRegistry(String registryName) {
4238
RegistryConfiguration configuration = getConfiguration(registryName);
4339

4440
Registry.Builder builder = Registry.Builder.builder();
41+
42+
// Set username/password if present
4543
if (configuration.username().isPresent() && configuration.password().isPresent()) {
4644
builder.defaults(configuration.username().get(), configuration.password().get());
4745
}
46+
// Set host if present
47+
if (configuration.host().isPresent()) {
48+
builder.withRegistry(configuration.host().get());
49+
}
4850
if (!configuration.secure()) {
4951
builder.insecure();
5052
}
5153

52-
LoggerFactory.getLogger(RegistriesConfiguration.class).info("Creating registry for {}", registryName);
53-
5454
return builder.build();
5555
}
5656

5757
private RegistryConfiguration getConfiguration(String registryName) {
58-
LoggerFactory.getLogger(RegistriesConfiguration.class).info("Found build time registries: {}",
59-
registriesConfiguration.names().keySet());
6058
if (!registriesConfiguration.names().containsKey(registryName)) {
6159
throw new IllegalArgumentException("No Registry named '" + registryName + "' exists");
6260
}

runtime/src/main/java/io/quarkiverse/oras/runtime/RegistriesRecorder.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.function.Supplier;
44

5-
import org.slf4j.LoggerFactory;
6-
75
import io.quarkus.runtime.annotations.Recorder;
86
import land.oras.Registry;
97

@@ -12,7 +10,6 @@ public class RegistriesRecorder {
1210

1311
public Supplier<Registry> registrySupplier(
1412
String registryName) {
15-
LoggerFactory.getLogger(RegistriesConfiguration.class).info("Creating registry supplier for {}", registryName);
1613
return () -> Registries.fromName(registryName);
1714
}
1815
}

runtime/src/main/java/io/quarkiverse/oras/runtime/RegistryConfiguration.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55
import io.smallrye.config.WithDefault;
66

77
public interface RegistryConfiguration {
8+
9+
/**
10+
* The registry default host
11+
*
12+
* @asciidoclet
13+
*/
14+
Optional<String> host();
15+
816
/**
917
* The registry username
1018
*

0 commit comments

Comments
 (0)