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";