Hi Carol,
The upcaster set up in Axon can only upcast the event payload, the event payload type, the event revision number and the metadata.
As the aggregate identifier is typically in the event payload, you thus can adjust that field to the desired form.
You however cannot adjust the aggregate identifier column in the domain event entry table with the Upcaster set up.
So, that's for an FYI, now to answer you question: guessing you're running on Axon 3 (3.1 coming out this week!), you can utilize the SingleEventUpcaster for you upcaster implementation.
That extending from that abstract class requires you to implement the 'canUpcast()' and 'doUpcast()' functions.
The 'doUpcast()' function does the actual upcasting working, so in your case adjusting the event-payload it's aggregate identifier to be capitalized.
The 'canUpcast()' function checks whether the 'IntermediateEventRepresentation' is of a type you want to upcast. For your upcaster to work for all events in you system, the 'canUpcast()' should simply return 'true' for all event types with expected revision.
Do note, that if you're upcasting all your events, all the event classes should be annotated with the '@Revision' annotation to signal that they have a new form.
Additionally adding the revision numbers to your events makes it so that the 'canUpcast()' will not trigger for your new events which already have capitalized aggregate identifiers in your event payload.
Hope this sheds some light on the situation.
Cheers,
Steven