You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by "zhfeng (via GitHub)" <gi...@apache.org> on 2023/03/21 02:29:33 UTC

[GitHub] [camel-quarkus] zhfeng commented on a diff in pull request #4677: Fix (jira): Add jira model classes and jackson joda datatype to @BuildStep (2.13.x)

zhfeng commented on code in PR #4677:
URL: https://github.com/apache/camel-quarkus/pull/4677#discussion_r1142826800


##########
extensions/jackson/deployment/pom.xml:
##########
@@ -45,6 +45,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-jackson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-joda</artifactId>
+        </dependency>

Review Comment:
   I don't think we need it in `deployment`.



##########
extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java:
##########
@@ -55,8 +54,121 @@ NativeImageResourceBuildItem nativeImageResources() {
     }
 
     @BuildStep
-    ReflectiveClassBuildItem registerForReflection() {
-        // Required by org.apache.camel.component.jira.consumer.WatchUpdatesConsumer
-        return new ReflectiveClassBuildItem(true, false, Issue.class.getName());
+    List<ReflectiveClassBuildItem> registerReflectiveClasses() {
+        List<ReflectiveClassBuildItem> items = new ArrayList<>();
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Attachment.class));
+        items.add(
+                new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.AuditAssociatedItem.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.AuditChangedValue.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.AuditRecord.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.AuditRecordInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.AuditRecordsData.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Authentication.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicComponent.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicIssue.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicPriority.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicProject.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicProjectRole.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicUser.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicVotes.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BasicWatchers.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.BulkOperationErrorResult.class));
+        items.add(
+                new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.BulkOperationResult.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.ChangelogGroup.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.ChangelogItem.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.CimFieldInfo.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.CimIssueType.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.CimProject.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Comment.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Component.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.CustomFieldOption.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.EntityHelper.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Field.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.FieldSchema.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.FieldType.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Filter.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Group.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.AttachmentInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.AuditRecordBuilder.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.AuditRecordSearchInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.BaseValueTransformer.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.CannotTransformValueException.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.ComplexIssueInputFieldValue.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.ComponentInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.FieldInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.IssueInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.LinkIssuesInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.MyPermissionsInput.class));
+        items.add(
+                new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.PropertyInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.TransitionInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.UserInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.ValueTransformer.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.ValueTransformerManager.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.VersionInputBuilder.class));
+        items.add(
+                new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.VersionInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.input.VersionPosition.class));
+        items.add(
+                new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.input.WorklogInput.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Issue.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssueField.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssueFieldId.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssueLink.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssuelinksType.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssueLinkType.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.IssueType.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.LoginInfo.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Operation.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.OperationGroup.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.OperationHeader.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.OperationLink.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Operations.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.OperationVisitor.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Page.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Permission.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Permissions.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Priority.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Project.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.ProjectRole.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Resolution.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.RoleActor.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.SearchResult.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.SecurityLevel.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.ServerInfo.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Session.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.SessionCookie.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.StandardOperation.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Status.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Subtask.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.TimeTracking.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Transition.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.User.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Version.class));
+        items.add(new ReflectiveClassBuildItem(true, false,
+                com.atlassian.jira.rest.client.api.domain.VersionRelatedIssuesCount.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Visibility.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Votes.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Watchers.class));
+        items.add(new ReflectiveClassBuildItem(true, false, com.atlassian.jira.rest.client.api.domain.Worklog.class));

Review Comment:
   It seems that we have to add all classes in `com.atlassian.jira.rest.client.api.domain` package?



##########
extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java:
##########
@@ -37,7 +36,9 @@ FeatureBuildItem feature() {
     List<ReflectiveClassBuildItem> registerReflectiveClasses() {
         List<ReflectiveClassBuildItem> items = new ArrayList<>();
         items.add(new ReflectiveClassBuildItem(false, true, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule"));
-        items.add(new ReflectiveClassBuildItem(false, false, JsonNode.class));
+        items.add(new ReflectiveClassBuildItem(false, false, com.fasterxml.jackson.databind.JsonNode.class));
+        items.add(new ReflectiveClassBuildItem(true, true, com.fasterxml.jackson.datatype.joda.JodaModule.class));

Review Comment:
   Same here.



##########
extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java:
##########
@@ -37,7 +36,9 @@ FeatureBuildItem feature() {
     List<ReflectiveClassBuildItem> registerReflectiveClasses() {
         List<ReflectiveClassBuildItem> items = new ArrayList<>();
         items.add(new ReflectiveClassBuildItem(false, true, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule"));
-        items.add(new ReflectiveClassBuildItem(false, false, JsonNode.class));
+        items.add(new ReflectiveClassBuildItem(false, false, com.fasterxml.jackson.databind.JsonNode.class));

Review Comment:
   It could use class name here.
   ```suggestion
           items.add(new ReflectiveClassBuildItem(false, false, "com.fasterxml.jackson.databind.JsonNode"));
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org