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]>

Reply via email to