ProtoCom: Java EE/EJB generation assumes components to be assembled at most once
The Java EE/EJB generation currently assumes that components out of the repository are assembled at most once.
In org.palladiosimulator.protocom.traverse.jee.system.JeeSystem.xtend, all assembly connectors of a system are determined
These connectors are passed to org.palladiosimulator.protocom.tech.iiop.repository.JavaEEIIOPBasicComponentClass.xtend, which then determines "its" connectors by simply matching whether the component type fits:
val basicComponentAssemblyConnectors =
=> Here the assumption that component "pcmEntity" is unique is implicitly introduced! Therefore, a current problem is the joint handling of the system and repository components — elements from both worlds are mapped to a single class for repository components.
a) Do not include system information in classes for repository components. Rather, system information should be externally configured & component classes should be made reusable. E.g., concrete assemblies should be injected instead of hardly put into "general" component classes.
b) Generate a dedicated repository component class for each assembly context instead of trying to reuse component implementations. (Potential problem is when manual adaptations to components are needed, e.g., for code stubs. Then, there will be no single point in the code to make these adaptations; components would be redundantly created.)