[ 
https://issues.apache.org/jira/browse/JAMES-1134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norman Maurer resolved JAMES-1134.
----------------------------------

    Resolution: Fixed
      Assignee: Norman Maurer

Committed a fix. Please review:

http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java?r1=1030632&r2=1035599&pathrev=1035599

Thx again..

> fetchmail configure function does not handle multiple accounts properly
> -----------------------------------------------------------------------
>
>                 Key: JAMES-1134
>                 URL: https://issues.apache.org/jira/browse/JAMES-1134
>             Project: JAMES Server
>          Issue Type: Bug
>          Components: FetchMail
>    Affects Versions: 3.0-M1, 3.0-M2
>            Reporter: Norman Maurer
>            Assignee: Norman Maurer
>             Fix For: 3.0-M3
>
>         Attachments: vcs-diff2703435384745471813.patch
>
>
> From ML:
> 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>");
>        }
>    }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to