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


##########
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:
   Given the example route to retrieve jira issues, the message object is 
[`Issue`](https://bitbucket.org/atlassian/jira-rest-java-client/src/master/api/src/main/java/com/atlassian/jira/rest/client/api/domain/Issue.java)
 class, which has a hard dependency on many other jira classes. And it would be 
imprecise to say which classes are really required, as the issue itself could 
contain any of the attributes. 
   I will try to reduce the number of classes.
   



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to