Hi there,

I think this makes sense. Anyway I think we could just use the
"usersrepository" as source and not the
"importjames23-usersrepository". There is not need for the
importjames-23-* stuff as the user can just use his old
UsersRepository config for users while importing. I think we also
could just use param for the method for the url....

> +    public void importFromJames23() throws MailRepostoryStoreException, 
> MessagingException {

Should be :

> +    public void importFromJames23(String url) throws 
> MailRepostoryStoreException, MessagingException {

So no need for inject a config..

Bye,
Norman

2010/12/28  <[email protected]>:
> Author: eric
> Date: Tue Dec 28 14:41:50 2010
> New Revision: 1053359
>
> URL: http://svn.apache.org/viewvc?rev=1053359&view=rev
> Log:
> Skeleton for james 2.3 import - to be further discussed/developed for conf, 
> packaging,... (JAMES-1052)
>
> Added:
>    
> james/server/trunk/container-spring/src/main/config/james/importjames23-usersrepository.xml
>    james/server/trunk/container-spring/src/main/config/james/importjames23.xml
>    
> james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/
>    
> james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
> Modified:
>    
> james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
>
> Modified: 
> james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
> URL: 
> http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml?rev=1053359&r1=1053358&r2=1053359&view=diff
> ==============================================================================
> --- 
> james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
>  (original)
> +++ 
> james/server/trunk/container-spring/src/main/config/james/context/james-server-context.xml
>  Tue Dec 28 14:41:50 2010
> @@ -87,6 +87,13 @@
>               <!-- no alias needed -->
>               <value></value>
>             </entry>
> +            <entry>
> +              <key>
> +                <value>importjames23-usersrepository</value>
> +              </key>
> +<!--               no alias needed -->
> +              <value></value>
> +            </entry>
>           </map>
>         </property>
>     </bean>
> @@ -318,6 +325,11 @@
>     <bean id="mailboxcopier" 
> class="org.apache.james.mailbox.copier.MailboxCopierImpl"/>
>
>     <!--
> +      Mailbox Import
> +     -->
> +    <bean id="importjames23" 
> class="org.apache.james.container.spring.tool.James23Importer"/>
> +
> +    <!--
>     
> ===========================================================================
>        Database DataSource
>     
> ===========================================================================
>
> Added: 
> james/server/trunk/container-spring/src/main/config/james/importjames23-usersrepository.xml
> URL: 
> http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/importjames23-usersrepository.xml?rev=1053359&view=auto
> ==============================================================================
> --- 
> james/server/trunk/container-spring/src/main/config/james/importjames23-usersrepository.xml
>  (added)
> +++ 
> james/server/trunk/container-spring/src/main/config/james/importjames23-usersrepository.xml
>  Tue Dec 28 14:41:50 2010
> @@ -0,0 +1,26 @@
> +<?xml version="1.0"?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements.  See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership.  The ASF licenses this file
> +  to you under the Apache License, Version 2.0 (the
> +  "License"); you may not use this file except in compliance
> +  with the License.  You may obtain a copy of the License at
> +
> +    http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing,
> +  software distributed under the License is distributed on an
> +  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +  KIND, either express or implied.  See the License for the
> +  specific language governing permissions and limitations
> +  under the License.
> + -->
> +<importjames23-usersrepository 
> class="org.apache.james.user.file.UsersFileRepository">
> +  <destination URL="file://var/users/" />
> +  <ignoreCase>true</ignoreCase>
> +  <enableAliases>true</enableAliases>
> +  <enableForwarding>true</enableForwarding>
> +  <enableVirtualHosting>false</enableVirtualHosting>
> +</importjames23-usersrepository>
>
> Added: 
> james/server/trunk/container-spring/src/main/config/james/importjames23.xml
> URL: 
> http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/importjames23.xml?rev=1053359&view=auto
> ==============================================================================
> --- 
> james/server/trunk/container-spring/src/main/config/james/importjames23.xml 
> (added)
> +++ 
> james/server/trunk/container-spring/src/main/config/james/importjames23.xml 
> Tue Dec 28 14:41:50 2010
> @@ -0,0 +1,22 @@
> +<?xml version="1.0"?>
> +<!--
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements.  See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership.  The ASF licenses this file
> +  to you under the Apache License, Version 2.0 (the
> +  "License"); you may not use this file except in compliance
> +  with the License.  You may obtain a copy of the License at
> +
> +    http://www.apache.org/licenses/LICENSE-2.0
> +
> +  Unless required by applicable law or agreed to in writing,
> +  software distributed under the License is distributed on an
> +  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +  KIND, either express or implied.  See the License for the
> +  specific language governing permissions and limitations
> +  under the License.
> + -->
> +<importjames23>
> +  <repositoryPath>file://var/mail/inboxes</repositoryPath>
> +</importjames23>
>
> Added: 
> james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
> URL: 
> http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java?rev=1053359&view=auto
> ==============================================================================
> --- 
> james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
>  (added)
> +++ 
> james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
>  Tue Dec 28 14:41:50 2010
> @@ -0,0 +1,118 @@
> +/****************************************************************
> + * Licensed to the Apache Software Foundation (ASF) under one   *
> + * or more contributor license agreements.  See the NOTICE file *
> + * distributed with this work for additional information        *
> + * regarding copyright ownership.  The ASF licenses this file   *
> + * to you under the Apache License, Version 2.0 (the            *
> + * "License"); you may not use this file except in compliance   *
> + * with the License.  You may obtain a copy of the License at   *
> + *                                                              *
> + *   http://www.apache.org/licenses/LICENSE-2.0                 *
> + *                                                              *
> + * Unless required by applicable law or agreed to in writing,   *
> + * software distributed under the License is distributed on an  *
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
> + * KIND, either express or implied.  See the License for the    *
> + * specific language governing permissions and limitations      *
> + * under the License.                                           *
> + ****************************************************************/
> +package org.apache.james.container.spring.tool;
> +
> +import java.util.Iterator;
> +
> +import javax.annotation.Resource;
> +import javax.mail.MessagingException;
> +
> +import org.apache.commons.configuration.ConfigurationException;
> +import org.apache.commons.configuration.HierarchicalConfiguration;
> +import org.apache.commons.logging.Log;
> +import org.apache.james.lifecycle.api.Configurable;
> +import org.apache.james.lifecycle.api.LogEnabled;
> +import org.apache.james.mailbox.MailboxManager;
> +import org.apache.james.mailrepository.api.MailRepository;
> +import org.apache.james.mailrepository.api.MailRepositoryStore;
> +import 
> org.apache.james.mailrepository.api.MailRepositoryStore.MailRepostoryStoreException;
> +import org.apache.james.user.api.UsersRepository;
> +import org.apache.mailet.Mail;
> +
> +public class James23Importer implements Configurable, LogEnabled {
> +
> +    /**
> +     * The logger.
> +     */
> +    private Log log;
> +
> +    /**
> +     * The configuration.
> +     */
> +    private HierarchicalConfiguration config;
> +
> +    /**
> +     * James 2.3 user repository defined by configuration.
> +     */
> +   �...@resource(name = "importjames23-usersrepository")
> +    private UsersRepository james23UsersRepository;
> +
> +    /**
> +     * James 3.0 users repository.
> +     */
> +   �...@resource(name="usersrepository")
> +    private UsersRepository usersRepository;
> +
> +    /**
> +     * The mail repository store needed to select the james 2.3 mail 
> repository.
> +     */
> +   �...@resource(name="mailrepositorystore")
> +    private MailRepositoryStore mailRepositoryStore;
> +
> +    /**
> +     * The mailbox manager needed to copy the mails to.
> +     */
> +   �...@resource(name="mailboxmanager")
> +    private MailboxManager mailboxManager;
> +
> +    /**
> +     * Copy 2.3 users to 3.0 users (taking virtualDomains into account)
> +     * Copy 2.3 mails to 3.0 mails.
> +     *
> +     * TODO: This is just a skeleton to talk about the architecture 
> (conf,...)
> +     *
> +     * @throws MailRepostoryStoreException
> +     * @throws MessagingException
> +     */
> +    public void importFromJames23() throws MailRepostoryStoreException, 
> MessagingException {
> +
> +        String james23MailRepositoryPath = 
> config.getString("repositoryPath");
> +
> +        Iterator<String> j23uIt = james23UsersRepository.list();
> +
> +        while (j23uIt.hasNext()) {
> +            String user = j23uIt.next();
> +            System.out.println("James 2.3 user:" + user);
> +            MailRepository mailRepository = 
> mailRepositoryStore.select(james23MailRepositoryPath + "/" + user);
> +            Iterator<String> sr = mailRepository.list();
> +            while (sr.hasNext()) {
> +                Mail mail = mailRepository.retrieve(sr.next());
> +                System.out.println(mail.getMessage().getSubject()
> +                        + ": " + mail.getMessage().getSize()
> +                        + " - " + mail.getMessage().getLineCount());
> +            }
> +        }
> +
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see 
> org.apache.james.lifecycle.api.LogEnabled#setLog(org.apache.commons.logging.Log)
> +     */
> +    public void setLog(Log log) {
> +        this.log = log;
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see 
> org.apache.james.lifecycle.api.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
> +     */
> +    public void configure(HierarchicalConfiguration config) throws 
> ConfigurationException {
> +        this.config = config;
> +    }
> +
> +}
>
>
>
> ---------------------------------------------------------------------
> 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