Thanks for reporting . Could you please Open a bugreport and attach a
diff there ?

Bye,
Norman



2010/11/14, Toël Hartmann <[email protected]>:
> fetchmail configure function does not handle multiple accounts properly
>
> (as described in
> http://james.apache.org/server/3/configuration_fetchmail.html, under
> "One Account, One User")
>
> Here is an updated code allowing the parsing of the configuration with
> multiple accounts:
>
>
>      /**
>       * Method configure parses and validates the Configuration data and
> creates
>       * a new<code>ParsedConfiguration</code>, an<code>Account</code>  for
> each
>       * configured static account and
> a<code>ParsedDynamicAccountParameters</code>
>       * for each dynamic account.
>       *
>       * @see
> org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
>       */
>      @SuppressWarnings("unchecked")
>      public void configure(HierarchicalConfiguration configuration) throws
> ConfigurationException {
>
>          // Set any Session parameters passed in the Configuration
>          setSessionParameters(configuration);
>
>          // Create the ParsedConfiguration used in the delegation chain
>          ParsedConfiguration parsedConfiguration =
>              new ParsedConfiguration(
>                  configuration,
>                  logger,
>                  getServer(),
>                  getLocalUsers(),
>                  getDNSService());
>          setParsedConfiguration(parsedConfiguration);
>
>          // Setup the Accounts
>          List<HierarchicalConfiguration>  allAccounts =
> configuration.configurationsAt("accounts");
>          if (allAccounts.size()<  1)
>              throw new ConfigurationException("Missing<accounts>
> section.");
>
>          if (allAccounts.size()>  1)
>              throw new ConfigurationException("Too many<accounts>  sections,
> there must be exactly one");
>
>          HierarchicalConfiguration accounts = allAccounts.get(0);
>
>
>          if (accounts.getKeys().hasNext() == false)
>              throw new ConfigurationException("Missing<account>  section.");
>
>          List<Node>  accountsChildren = accounts.getRoot().getChildren();
>          int i = 0;
>
>          // Create an Account for every configured account
>          for (Node accountsChild: accountsChildren) {
>
>              String accountsChildName = accountsChild.getName();
>
>              if ("alllocal".equals(accountsChildName)) {
>                  HierarchicalConfiguration accountsChildConfig =
> accounts.configurationAt(accountsChildName);
>                  //<allLocal>  is dynamic, save the parameters for accounts
> to
>                  // be created when the task is triggered
>                  getParsedDynamicAccountParameters().add(new
> ParsedDynamicAccountParameters(i, accountsChildConfig));
>                  continue;
>              }
>
>              if ("account".equals(accountsChildName)) {
>                  // Create an Account for the named user and
>                  // add it to the list of static accounts
>
>                  List<HierarchicalConfiguration>  accountsChildsConfig =
> accounts.configurationsAt(accountsChildName);
>                  Account account = new Account(
>                          i,
>                          parsedConfiguration,
>                          accountsChildsConfig.get(i).getString("[...@user]"),
>
> accountsChildsConfig.get(i).getString("[...@password]"),
>
> accountsChildsConfig.get(i).getString("[...@recipient]"),
>
> accountsChildsConfig.get(i).getBoolean("[...@ignorercpt-header]"),
>
> accountsChildsConfig.get(i).getString("[...@customrcpt-header]",""),
>                          getSession());
>                  getStaticAccounts().add(account);
>                  i++;
>
>                  continue;
>              }
>
>              throw new ConfigurationException(
>                  "Illegal token:<"
>                      + accountsChildName
>                      + ">  in<accounts>");
>          }
>      }
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to