You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Norman Maurer (JIRA)" <se...@james.apache.org> on 2010/11/15 22:18:14 UTC
[jira] Updated: (JAMES-1134) fetchmail configure function does not
handle multiple accounts properly
[ https://issues.apache.org/jira/browse/JAMES-1134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Norman Maurer updated JAMES-1134:
---------------------------------
Component/s: FetchMail
Affects Version/s: 3.0-M1
3.0-M2
Fix Version/s: (was: 3.0-M2)
(was: 3.0-M1)
3.0-M3
> 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
> Fix For: 3.0-M3
>
>
> 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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org