Hello everyone,

I have a FileSymbolProvider. It looks for a file in the webapp classpath and 
reads the properties from the file.
I have defined two services based on the FileSymbolProvider, FileXProvider and 
FileYProvider.
One of them is configured to generate default values for properties with no 
values.

I have contributed both services to the SymbolSource configuration. But looking 
deep into Tapestry code, the providers list inside the SymbolSource contains 
not references to both SymbolProviders, but two references to the same 
SymbolProvider.

What am I doing wrong?

Code reference:
@ServiceId(value = "FileXProvider")
   public FileSymbolProvider buildFileXProvider(Map<String, Object> 
contributions, Logger logger)
   {
       return new FileSymbolProvider(contributions, logger, FILE_X_FILENAME, 
true);
   }

@ServiceId(value = "FileYProvider")
public FileSymbolProvider buildFileYProvider(Map<String, Object> contributions, 
Logger logger)
{

   return new FileSymbolProvider(contributions, logger, FILE_Y_FILENAME, true);
}


public static void contributeFileXProvider(MappedConfiguration<String, Object> 
configuration) {
   configuration.add(FileSymbolProvider.GENERATE_DEFAULTS_KEY, true);
   configuration.add(FileSymbolProvider.DEFAULT_VALUE_KEY, "UNKNOWN");
}

public static void contributeSymbolSource(
          OrderedConfiguration<SymbolProvider> configuration,
           @InjectService("FileXProvider") SymbolProvider fileXProvider,
      @InjectService("FileYProvider") SymbolProvider fileYProvider) {
       configuration.add(FILE_X_FILENAME, fileXProvider, 
"after:SystemProperties", "before:ApplicationDefaults");
   configuration.add(FILE_Y_FILENAME, fileYProvider, "after:SystemProperties", 
"before:ApplicationDefaults");
   }

Regards,
Daniel

Reply via email to