zbendhiba commented on a change in pull request #3630: URL: https://github.com/apache/camel-quarkus/pull/3630#discussion_r829033381
########## File path: extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2/FhirDstu2Processor.java ########## @@ -42,201 +42,46 @@ private static final String FHIR_VERSION_PROPERTIES = "ca/uhn/fhir/model/dstu2/fhirversion.properties"; @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) - Dstu2PropertiesBuildItem properties(BuildProducer<NativeImageResourceBuildItem> resource) { - resource.produce(new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES)); + Dstu2PropertiesBuildItem fhirProperties() { return new Dstu2PropertiesBuildItem(FHIR_VERSION_PROPERTIES); } + @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) @Record(ExecutionTime.STATIC_INIT) - SyntheticBeanBuildItem recordContext(FhirContextRecorder fhirContextRecorder, + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, Dstu2PropertiesBuildItem propertiesBuildItem) { return SyntheticBeanBuildItem.configure(FhirContext.class) .scope(Singleton.class) .named("DSTU2") - .runtimeValue(fhirContextRecorder.createDstu2FhirContext( + .runtimeValue(recorder.createDstu2FhirContext( getResourceDefinitions(propertiesBuildItem.getProperties()))) .done(); } @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) - void enableReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass, Dstu2PropertiesBuildItem buildItem) { + void registerForReflection( + BuildProducer<ReflectiveClassBuildItem> reflectiveClass, + Dstu2PropertiesBuildItem propertiesBuildItem, + CombinedIndexBuildItem combinedIndex) { Set<String> classes = new HashSet<>(); classes.add(BaseResource.class.getCanonicalName()); - classes.addAll(getModelClasses(buildItem.getProperties())); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); - reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, getDstu2Enums())); - } - private String[] getDstu2Enums() { - return new String[] { - AccountStatusEnum.class.getCanonicalName(), - ActionListEnum.class.getCanonicalName(), - AddressTypeEnum.class.getCanonicalName(), - AddressUseEnum.class.getCanonicalName(), - AdjudicationCodesEnum.class.getCanonicalName(), - AdjudicationErrorCodesEnum.class.getCanonicalName(), - AdjustmentReasonCodesEnum.class.getCanonicalName(), - AdministrativeGenderEnum.class.getCanonicalName(), - AdmitSourceEnum.class.getCanonicalName(), - AggregationModeEnum.class.getCanonicalName(), - AllergyIntoleranceCategoryEnum.class.getCanonicalName(), - AllergyIntoleranceCertaintyEnum.class.getCanonicalName(), - AllergyIntoleranceCriticalityEnum.class.getCanonicalName(), - AllergyIntoleranceSeverityEnum.class.getCanonicalName(), - AllergyIntoleranceStatusEnum.class.getCanonicalName(), - AllergyIntoleranceTypeEnum.class.getCanonicalName(), - AnswerFormatEnum.class.getCanonicalName(), - AppointmentStatusEnum.class.getCanonicalName(), - AssertionDirectionTypeEnum.class.getCanonicalName(), - AssertionOperatorTypeEnum.class.getCanonicalName(), - AssertionResponseTypesEnum.class.getCanonicalName(), - AuditEventActionEnum.class.getCanonicalName(), - AuditEventObjectLifecycleEnum.class.getCanonicalName(), - AuditEventObjectRoleEnum.class.getCanonicalName(), - AuditEventObjectTypeEnum.class.getCanonicalName(), - AuditEventOutcomeEnum.class.getCanonicalName(), - AuditEventParticipantNetworkTypeEnum.class.getCanonicalName(), - AuditEventSourceTypeEnum.class.getCanonicalName(), - BindingStrengthEnum.class.getCanonicalName(), - BundleTypeEnum.class.getCanonicalName(), - CarePlanActivityStatusEnum.class.getCanonicalName(), - CarePlanRelationshipEnum.class.getCanonicalName(), - CarePlanStatusEnum.class.getCanonicalName(), - ClaimTypeEnum.class.getCanonicalName(), - ClinicalImpressionStatusEnum.class.getCanonicalName(), - CommunicationRequestStatusEnum.class.getCanonicalName(), - CommunicationStatusEnum.class.getCanonicalName(), - CompositionAttestationModeEnum.class.getCanonicalName(), - CompositionStatusEnum.class.getCanonicalName(), - ConceptMapEquivalenceEnum.class.getCanonicalName(), - ConditionalDeleteStatusEnum.class.getCanonicalName(), - ConditionCategoryCodesEnum.class.getCanonicalName(), - ConditionClinicalStatusCodesEnum.class.getCanonicalName(), - ConditionVerificationStatusEnum.class.getCanonicalName(), - ConformanceEventModeEnum.class.getCanonicalName(), - ConformanceResourceStatusEnum.class.getCanonicalName(), - ConformanceStatementKindEnum.class.getCanonicalName(), - ConstraintSeverityEnum.class.getCanonicalName(), - ContactPointSystemEnum.class.getCanonicalName(), - ContactPointUseEnum.class.getCanonicalName(), - ContentTypeEnum.class.getCanonicalName(), - DataElementStringencyEnum.class.getCanonicalName(), - DaysOfWeekEnum.class.getCanonicalName(), - DetectedIssueSeverityEnum.class.getCanonicalName(), - DeviceMetricCalibrationStateEnum.class.getCanonicalName(), - DeviceMetricCalibrationTypeEnum.class.getCanonicalName(), - DeviceMetricCategoryEnum.class.getCanonicalName(), - DeviceMetricColorEnum.class.getCanonicalName(), - DeviceMetricOperationalStatusEnum.class.getCanonicalName(), - DeviceStatusEnum.class.getCanonicalName(), - DeviceUseRequestPriorityEnum.class.getCanonicalName(), - DeviceUseRequestStatusEnum.class.getCanonicalName(), - DiagnosticOrderPriorityEnum.class.getCanonicalName(), - DiagnosticOrderStatusEnum.class.getCanonicalName(), - DiagnosticReportStatusEnum.class.getCanonicalName(), - DigitalMediaTypeEnum.class.getCanonicalName(), - DocumentModeEnum.class.getCanonicalName(), - DocumentReferenceStatusEnum.class.getCanonicalName(), - DocumentRelationshipTypeEnum.class.getCanonicalName(), - EncounterClassEnum.class.getCanonicalName(), - EncounterLocationStatusEnum.class.getCanonicalName(), - EncounterStateEnum.class.getCanonicalName(), - EpisodeOfCareStatusEnum.class.getCanonicalName(), - EventTimingEnum.class.getCanonicalName(), - ExtensionContextEnum.class.getCanonicalName(), - FamilyHistoryStatusEnum.class.getCanonicalName(), - FilterOperatorEnum.class.getCanonicalName(), - FlagStatusEnum.class.getCanonicalName(), - GoalPriorityEnum.class.getCanonicalName(), - GoalStatusEnum.class.getCanonicalName(), - GroupTypeEnum.class.getCanonicalName(), - GuideDependencyTypeEnum.class.getCanonicalName(), - GuidePageKindEnum.class.getCanonicalName(), - GuideResourcePurposeEnum.class.getCanonicalName(), - HTTPVerbEnum.class.getCanonicalName(), - IdentifierTypeCodesEnum.class.getCanonicalName(), - IdentifierUseEnum.class.getCanonicalName(), - IdentityAssuranceLevelEnum.class.getCanonicalName(), - InstanceAvailabilityEnum.class.getCanonicalName(), - IssueSeverityEnum.class.getCanonicalName(), - IssueTypeEnum.class.getCanonicalName(), - KOStitleEnum.class.getCanonicalName(), - LinkTypeEnum.class.getCanonicalName(), - ListModeEnum.class.getCanonicalName(), - ListOrderCodesEnum.class.getCanonicalName(), - ListStatusEnum.class.getCanonicalName(), - LocationModeEnum.class.getCanonicalName(), - LocationStatusEnum.class.getCanonicalName(), - LocationTypeEnum.class.getCanonicalName(), - MaritalStatusCodesEnum.class.getCanonicalName(), - MeasmntPrincipleEnum.class.getCanonicalName(), - MedicationAdministrationStatusEnum.class.getCanonicalName(), - MedicationDispenseStatusEnum.class.getCanonicalName(), - MedicationOrderStatusEnum.class.getCanonicalName(), - MedicationStatementStatusEnum.class.getCanonicalName(), - MessageEventEnum.class.getCanonicalName(), - MessageSignificanceCategoryEnum.class.getCanonicalName(), - MessageTransportEnum.class.getCanonicalName(), - NameUseEnum.class.getCanonicalName(), - NamingSystemIdentifierTypeEnum.class.getCanonicalName(), - NamingSystemTypeEnum.class.getCanonicalName(), - NarrativeStatusEnum.class.getCanonicalName(), - NoteTypeEnum.class.getCanonicalName(), - NutritionOrderStatusEnum.class.getCanonicalName(), - ObservationRelationshipTypeEnum.class.getCanonicalName(), - ObservationStatusEnum.class.getCanonicalName(), - OperationKindEnum.class.getCanonicalName(), - OperationParameterUseEnum.class.getCanonicalName(), - OrderStatusEnum.class.getCanonicalName(), - ParticipantRequiredEnum.class.getCanonicalName(), - ParticipantStatusEnum.class.getCanonicalName(), - ParticipantTypeEnum.class.getCanonicalName(), - ParticipationStatusEnum.class.getCanonicalName(), - PayeeTypeCodesEnum.class.getCanonicalName(), - ProcedureRequestPriorityEnum.class.getCanonicalName(), - ProcedureRequestStatusEnum.class.getCanonicalName(), - ProcedureStatusEnum.class.getCanonicalName(), - PropertyRepresentationEnum.class.getCanonicalName(), - ProvenanceEntityRoleEnum.class.getCanonicalName(), - QuantityComparatorEnum.class.getCanonicalName(), - QuestionnaireResponseStatusEnum.class.getCanonicalName(), - QuestionnaireStatusEnum.class.getCanonicalName(), - ReferralMethodEnum.class.getCanonicalName(), - ReferralStatusEnum.class.getCanonicalName(), - RemittanceOutcomeEnum.class.getCanonicalName(), - ResourceTypeEnum.class.getCanonicalName(), - ResourceVersionPolicyEnum.class.getCanonicalName(), - ResponseTypeEnum.class.getCanonicalName(), - RestfulConformanceModeEnum.class.getCanonicalName(), - RestfulSecurityServiceEnum.class.getCanonicalName(), - RulesetCodesEnum.class.getCanonicalName(), - SearchEntryModeEnum.class.getCanonicalName(), - SearchModifierCodeEnum.class.getCanonicalName(), - SearchParamTypeEnum.class.getCanonicalName(), - ServiceProvisionConditionsEnum.class.getCanonicalName(), - SignatureTypeCodesEnum.class.getCanonicalName(), - SlicingRulesEnum.class.getCanonicalName(), - SlotStatusEnum.class.getCanonicalName(), - SpecimenStatusEnum.class.getCanonicalName(), - StructureDefinitionKindEnum.class.getCanonicalName(), - SubscriptionChannelTypeEnum.class.getCanonicalName(), - SubscriptionStatusEnum.class.getCanonicalName(), - SubstanceCategoryCodesEnum.class.getCanonicalName(), - SupplyDeliveryStatusEnum.class.getCanonicalName(), - SupplyRequestStatusEnum.class.getCanonicalName(), - SystemRestfulInteractionEnum.class.getCanonicalName(), - TimingAbbreviationEnum.class.getCanonicalName(), - TransactionModeEnum.class.getCanonicalName(), - TypeRestfulInteractionEnum.class.getCanonicalName(), - UnitsOfTimeEnum.class.getCanonicalName(), - UnknownContentCodeEnum.class.getCanonicalName(), - UseEnum.class.getCanonicalName(), - VisionBaseEnum.class.getCanonicalName(), - VisionEyesEnum.class.getCanonicalName(), - XPathUsageTypeEnum.class.getCanonicalName() - }; - } + String[] dstu2Enums = combinedIndex.getIndex() + .getKnownClasses() + .stream() + .map(classInfo -> classInfo.toString()) + .filter(className -> className.startsWith("ca.uhn.fhir.model.dstu2.valueset")) + .toArray(String[]::new); Review comment: Nice -- 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-unsubscr...@camel.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org