I took a closer look at the ComponentType encapsulation problem. The
problem resides in the fact that the generic component type element
loader creates a generic component type as the component type side
file is processed. What should happen is that the component type
should be created by the implementation loader (e.g.
PojoComponentType, or maybe ScriptComponentType) and passed into the
loader. The load method on StAXElementLoader would need to be changed
to:

load(CompositeComponent parent, ModelObject object, XMLStreamReader
reader, DeploymentContext deploymentContext) would

Where "object" was a model object the loader would populate or null,
in which case the loader would be responsible for creating one.


+1. So when object is null there simply no specialized component type and
just the base would do.  Right ?

Yep
In
the case of custom component types, the implementation loader would
create a subclass of ComponentType and pass it back into the loader
registry. A script component type loader would then be responsible
for introspecting the custom component type side file.


Here again is there a way where the custom component type loaders are only called for extensions i.e. only for those elements that are not known to the base ComponentType. This way we can avoid duplication of how the common stuff of properties / references / services get loaded. Am I off track ?

I don't quite follow, can you point me to code that illustrates the problem? AtomicComponent implementations always need to deal with wires and properties being handed to them by the wiring fabric as they need to choose an injection implementation strategy.

Without this, we can't properly support scopes in side files so I'd
like to get this fix in.

Not only for the scopes. We are not able to get the basic sidefile stuff up in Pojo - meaning today if we wanted to try out Pojo implementation of a
component with side files, we will end up in exceptions.
Yes componentType side files are broken for POJOs as well but the fix I outlined will address that as well


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to