public < T > List < T > createServiceObjects ( String ... descriptorPaths ) { try { ServiceEntry . initDefaultOrder ( ) ; TreeMap < ServiceEntry , T > serviceMap = new TreeMap < ServiceEntry , T > ( ) ; for ( String descriptor : descriptorPaths ) { readServiceDefinitions ( serviceMap , descriptor ) ; } ArrayList < T > ret = new ArrayList < T > ( ) ; for ( T service : serviceMap . values ( ) ) { ret . add ( service ) ; } return ret ; } finally { ServiceEntry . removeDefaultOrder ( ) ; } }
Create a list of services ordered according to the ordering given in the service descriptor files . Note that the descriptor will be looked up in the whole classpath space which can result in reading in multiple descriptors with a single path . Note that the reading order for multiple resources with the same name is not defined .