An idea...
New interfaces/classes in Pheonix --->
class ProvidedServiceDef { ProvidedServiceDef(Class cl, float vers) {..} Class getProvidedClass() {..} float getServiceVersion() {..} }
class DependedServiceDef { DependedServiceDef (String str, float vers) {..} String getDependedClassName() {..} float getServiceVersion() {..} }
interface BlockDef { ProvidedServiceDef[] getProvidedServices(); DependedServiceDef[] getDependedServices(); }
A example of use ---->
final class XCommanderServerBlockDef implements BlockDef {
ProvidedServiceDef[] getProvidedServices() {
return new ProvidedServiceDef[] {
new ProvidedServiceDef(org.apache.avalon.xcommander.XCommanderService.class, 1.0),
};
}
DependedServiceDef [] getDependedServices() {
return new DependedServiceDef [] {
new DependedServiceDef ("org.apache.avalon.cornerstone.services.connection.ConnectionManager", 1.0),
new DependedServiceDef ("org.apache.avalon.cornerstone.services.sockets.SocketManager", 1.0),
};
} }
The though is that as XML blocks go, the xinfo is fairly mundane. If these were Java classes, they could be more visible to those perusing the Java source of a thing. Half of our Phoenix newbie issues are because people are not keeping their xinfo files in step with their assembly.xml files. With advanced IDEs like Intellij it will hopefully ripple changes through to this BlockDef class as people iteratively rename their chosen demo/pdk starting point to become their server app.
Ho hum, just a thought and the last vestige of my smart, then abandoned, idea for Peter's new classloader constructs...
Regards,
- Paul H
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>