summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-11 17:12:05 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-11 17:17:11 +0100
commit50f8720f85172080d188f086d9b57074fd6d7a1b (patch)
treedcc28f3c2a92d1958c03733534509c0e49e71a4b
parentbd9d35c912d4c08c8e73b876348278fa968eceaa (diff)
Move access log definition to separate module
Config defintion must be embedded into container-core as the generated Java config class uses package 'com.yahoo.container.core'.
-rw-r--r--CMakeLists.txt1
-rw-r--r--cloud-tenant-base-dependencies-enforcer/pom.xml1
-rw-r--r--container-core-config/CMakeLists.txt2
-rw-r--r--container-core-config/OWNERS1
-rw-r--r--container-core-config/README.md7
-rw-r--r--container-core-config/pom.xml48
-rw-r--r--container-core-config/src/main/java/com/yahoo/container/core/package-info.java5
-rw-r--r--container-core-config/src/main/resources/configdefinitions/container.core.access-log.def (renamed from jdisc_http_service/src/main/resources/configdefinitions/container.core.access-log.def)2
-rw-r--r--container-core/pom.xml6
-rw-r--r--jdisc_http_service/pom.xml6
-rw-r--r--pom.xml1
11 files changed, 79 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c8cf6a4467a..d3621de617a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,6 +61,7 @@ add_subdirectory(configserver)
add_subdirectory(configserver-flags)
add_subdirectory(configutil)
add_subdirectory(container-core)
+add_subdirectory(container-core-config)
add_subdirectory(container-di)
add_subdirectory(container-disc)
add_subdirectory(container-jersey2)
diff --git a/cloud-tenant-base-dependencies-enforcer/pom.xml b/cloud-tenant-base-dependencies-enforcer/pom.xml
index ecf1ce48eb5..a8655a82860 100644
--- a/cloud-tenant-base-dependencies-enforcer/pom.xml
+++ b/cloud-tenant-base-dependencies-enforcer/pom.xml
@@ -146,6 +146,7 @@
<include>com.yahoo.vespa:configdefinitions:*:jar:provided</include>
<include>com.yahoo.vespa:configgen:*:jar:provided</include>
<include>com.yahoo.vespa:container-core:*:jar:provided</include>
+ <include>com.yahoo.vespa:container-core-config:*:jar:provided</include>
<include>com.yahoo.vespa:container-dev:*:jar:provided</include>
<include>com.yahoo.vespa:container-di:*:jar:provided</include>
<include>com.yahoo.vespa:container-disc:*:jar:provided</include>
diff --git a/container-core-config/CMakeLists.txt b/container-core-config/CMakeLists.txt
new file mode 100644
index 00000000000..307bb103e9f
--- /dev/null
+++ b/container-core-config/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+install_config_definitions()
diff --git a/container-core-config/OWNERS b/container-core-config/OWNERS
new file mode 100644
index 00000000000..fb71c67318d
--- /dev/null
+++ b/container-core-config/OWNERS
@@ -0,0 +1 @@
+bjorncs \ No newline at end of file
diff --git a/container-core-config/README.md b/container-core-config/README.md
new file mode 100644
index 00000000000..5bb4c3860e1
--- /dev/null
+++ b/container-core-config/README.md
@@ -0,0 +1,7 @@
+# container-core-config
+
+Contains config definitions with package `com.yahoo.container.core` that are used by other modules.
+
+This artifact is embedded inside container-core jar, but built as bundle to allow other modules to depend on container-core config definitions without depending on container-core.
+The generated config classes cannot be moved to container-core as it would introduce a cycles in Maven dependency graph.
+This works at correctly runtime as OSGi allows cycling dependencies between bundles.
diff --git a/container-core-config/pom.xml b/container-core-config/pom.xml
new file mode 100644
index 00000000000..fb4aea4071e
--- /dev/null
+++ b/container-core-config/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!-- Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>parent</artifactId>
+ <version>7-SNAPSHOT</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+ <artifactId>container-core-config</artifactId>
+ <version>7-SNAPSHOT</version>
+ <packaging>container-plugin</packaging> <!-- See README.md for why it's not packaged as 'jar' -->
+ <dependencies>
+ <dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>config-lib</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ </plugins>
+ <outputDirectory>${buildOutputDirectory}</outputDirectory>
+ </build>
+ <properties>
+ <buildOutputDirectory>${project.build.directory}/classes/</buildOutputDirectory>
+ </properties>
+</project> \ No newline at end of file
diff --git a/container-core-config/src/main/java/com/yahoo/container/core/package-info.java b/container-core-config/src/main/java/com/yahoo/container/core/package-info.java
new file mode 100644
index 00000000000..c9c683bd68a
--- /dev/null
+++ b/container-core-config/src/main/java/com/yahoo/container/core/package-info.java
@@ -0,0 +1,5 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+@ExportPackage
+package com.yahoo.container.core;
+
+import com.yahoo.osgi.annotation.ExportPackage; \ No newline at end of file
diff --git a/jdisc_http_service/src/main/resources/configdefinitions/container.core.access-log.def b/container-core-config/src/main/resources/configdefinitions/container.core.access-log.def
index 788fadcdf90..08ea6ec4884 100644
--- a/jdisc_http_service/src/main/resources/configdefinitions/container.core.access-log.def
+++ b/container-core-config/src/main/resources/configdefinitions/container.core.access-log.def
@@ -1,4 +1,4 @@
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
namespace=container.core
# File name patterns supporting the expected time variables, e.g. ".%Y%m%d%H%M%S"
diff --git a/container-core/pom.xml b/container-core/pom.xml
index 506f5575be4..7c98b524c73 100644
--- a/container-core/pom.xml
+++ b/container-core/pom.xml
@@ -24,6 +24,12 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>container-core-config</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
<dependency>
<groupId>com.google.guava</groupId>
diff --git a/jdisc_http_service/pom.xml b/jdisc_http_service/pom.xml
index 4589dbb6a68..662cef983dd 100644
--- a/jdisc_http_service/pom.xml
+++ b/jdisc_http_service/pom.xml
@@ -84,6 +84,12 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>container-core-config</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
<!-- TEST SCOPE -->
diff --git a/pom.xml b/pom.xml
index 51b044020fa..91286d35c4d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,7 @@
<module>config_test</module>
<module>container</module>
<module>container-core</module>
+ <module>container-core-config</module>
<module>container-dependencies-enforcer</module>
<module>container-dependency-versions</module>
<module>container-dev</module>