You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2021/08/27 08:13:20 UTC
[camel] branch main updated: Another set of fixes for the build
(better support for parallel build + support complete regeneration of
files)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 38e6ced Another set of fixes for the build (better support for parallel build + support complete regeneration of files)
38e6ced is described below
commit 38e6ced628e43790e07cc9e9754d032dbb89847a
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Aug 27 10:12:43 2021 +0200
Another set of fixes for the build (better support for parallel build + support complete regeneration of files)
---
catalog/camel-catalog/pom.xml | 2 +-
components/pom.xml | 8 ++++++
core/camel-core-languages/pom.xml | 6 +++++
core/camel-core-model/pom.xml | 29 ----------------------
.../model/cloud/ServiceCallConfiguration.java | 2 ++
...erviceCallServiceLoadBalancerConfiguration.java | 2 ++
.../camel-yaml-dsl-deserializers/pom.xml | 7 ++++++
.../camel/maven/packaging/ComponentDslMojo.java | 2 ++
.../camel/maven/packaging/EndpointDslMojo.java | 13 +++++++++-
.../packaging/EndpointSchemaGeneratorMojo.java | 4 +--
10 files changed, 42 insertions(+), 33 deletions(-)
diff --git a/catalog/camel-catalog/pom.xml b/catalog/camel-catalog/pom.xml
index 23380a4..58879f6 100644
--- a/catalog/camel-catalog/pom.xml
+++ b/catalog/camel-catalog/pom.xml
@@ -132,7 +132,7 @@
<!-- update names in camel-main -->
<goal>update-main-helper</goal>
</goals>
- <phase>process-resources</phase>
+ <phase>generate-resources</phase>
</execution>
</executions>
</plugin>
diff --git a/components/pom.xml b/components/pom.xml
index 4e44146..412608b 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -413,6 +413,14 @@
<phase>prepare-package</phase>
</execution>
</executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-model</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
diff --git a/core/camel-core-languages/pom.xml b/core/camel-core-languages/pom.xml
index 1e3af97..55d46c7 100644
--- a/core/camel-core-languages/pom.xml
+++ b/core/camel-core-languages/pom.xml
@@ -42,6 +42,12 @@
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-core-model</artifactId>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-support</artifactId>
</dependency>
diff --git a/core/camel-core-model/pom.xml b/core/camel-core-model/pom.xml
index 8ba5d75..e7adce8 100644
--- a/core/camel-core-model/pom.xml
+++ b/core/camel-core-model/pom.xml
@@ -81,35 +81,6 @@
<goals>
<goal>generate-configurer</goal>
</goals>
- <configuration>
- <discoverClasses>false</discoverClasses>
- <classes>
- <class>org.apache.camel.model.FaultToleranceConfigurationDefinition</class>
- <class>org.apache.camel.model.Resilience4jConfigurationDefinition</class>
- <class>org.apache.camel.model.HystrixConfigurationDefinition</class>
- <class>org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration</class>
- <class>org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallExpressionConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration</class>
- <class>org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration</class>
- <class>org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration</class>
- <class>org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration</class>
- </classes>
- </configuration>
</execution>
</executions>
</plugin>
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
index 156c7af..8eba957 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
@@ -32,6 +32,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.PropertyDefinition;
+import org.apache.camel.spi.Configurer;
import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.PropertyConfigurer;
@@ -39,6 +40,7 @@ import org.apache.camel.support.CamelContextHelper;
@XmlType(name = "serviceCallConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
+@Configurer
public abstract class ServiceCallConfiguration extends IdentifiedType {
@XmlElement(name = "properties")
@Metadata(label = "advanced")
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
index 5c7857c..36008ad 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
@@ -29,6 +29,7 @@ import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceLoadBalancer;
import org.apache.camel.cloud.ServiceLoadBalancerFactory;
import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Configurer;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PropertyBindingSupport;
@@ -37,6 +38,7 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "routing,cloud,load-balancing")
@XmlRootElement(name = "loadBalancerConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
+@Configurer
public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConfiguration
implements ServiceLoadBalancerFactory {
@XmlTransient
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/pom.xml
index 876ef1c..00561dc 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/pom.xml
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/pom.xml
@@ -150,6 +150,13 @@
</configuration>
</execution>
</executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-catalog</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</plugin>
</plugins>
</build>
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
index c508661..117b62b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
@@ -59,7 +59,9 @@ import static org.apache.camel.tooling.util.PackageHelper.loadText;
@Mojo(name = "generate-component-dsl", threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME,
defaultPhase = LifecyclePhase.PROCESS_CLASSES)
public class ComponentDslMojo extends AbstractGeneratorMojo {
+
private static final Map<Path, Lock> LOCKS = new ConcurrentHashMap<>();
+
/**
* The project build directory
*/
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
index 82e7c0d..f4bac4a 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
@@ -35,6 +35,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -83,6 +86,8 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
private static final Map<String, Class<?>> PRIMITIVEMAP;
+ private static final Map<Path, Lock> LOCKS = new ConcurrentHashMap<>();
+
static {
PRIMITIVEMAP = new HashMap<>();
PRIMITIVEMAP.put("boolean", java.lang.Boolean.class);
@@ -195,7 +200,13 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
}
// generate component endpoint DSL files and write them
- executeComponent(files);
+ Lock lock = LOCKS.computeIfAbsent(root, d -> new ReentrantLock());
+ lock.lock();
+ try {
+ executeComponent(files);
+ } finally {
+ lock.unlock();
+ }
}
private static String loadJson(File file) {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
index 4f67567..1355268 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
@@ -458,10 +458,10 @@ public class EndpointSchemaGeneratorMojo extends AbstractGeneratorMojo {
}
String pfqn;
boolean hasSuper;
- if (parentData != null) {
+ if (parentData != null
+ && loadClass(componentModel.getJavaType()).getSuperclass() == loadClass(parentData.getJavaType())) {
try {
pfqn = classElement.getSuperclass().getName() + "Configurer";
- loadClass(pfqn);
hasSuper = true;
} catch (NoClassDefFoundError e) {
pfqn = "org.apache.camel.support.component.PropertyConfigurerSupport";