This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit df369b44cccdeb8a79497f07894ae63fe540ecca
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Nov 3 10:04:38 2020 +0100

    CAMEL-15795: camel-core - Remove tangle from impl route to route model as 
its no longer needed after route has been created via reifier.
---
 core/camel-api/src/main/java/org/apache/camel/Route.java      | 11 +++++++++--
 .../main/java/org/apache/camel/impl/engine/DefaultRoute.java  |  5 +++++
 .../src/main/java/org/apache/camel/reifier/RouteReifier.java  |  3 +++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/Route.java 
b/core/camel-api/src/main/java/org/apache/camel/Route.java
index 83a6e7b..b40bbd3 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Route.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Route.java
@@ -238,12 +238,19 @@ public interface Route extends RuntimeConfiguration {
     String getRouteDescription();
 
     /**
-     * Get the route type
+     * Get the route type.
      *
-     * @return the route type
+     * Important: is null after the route has been created.
+     *
+     * @return the route type during creation of the route, is null after the 
route has been created.
      */
     NamedNode getRoute();
 
+    /**
+     * Clears the route model when its no longer needed.
+     */
+    void clearRouteModel();
+
     //
     // CREATION TIME
     //
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
index e17a055..9ad83bf 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRoute.java
@@ -261,6 +261,11 @@ public class DefaultRoute extends ServiceSupport 
implements Route {
     }
 
     @Override
+    public void clearRouteModel() {
+        route = null;
+    }
+
+    @Override
     public String getRouteId() {
         return routeId;
     }
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
index 1ac63f5..fb2dbdf 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java
@@ -316,6 +316,9 @@ public class RouteReifier extends 
ProcessorReifier<RouteDefinition> {
             }
         }
 
+        // okay route has been created from the model, then the model is no 
longer needed and we can de-reference
+        route.clearRouteModel();
+
         return route;
     }
 

Reply via email to