Could we not just pass all config params via jmx ? Having an "temporary" config is a bit hacky IMHO..
Bye, Norman 2010/12/29 Eric Charles <[email protected]>: > Hi Norman, > > We need: > fromUsersRepository -> toUsersRepository > fromMailRepository -> toMailboxManager > > The to* are the ones defined by existing config. no worry about that. > > The fromMailRepository can be passed as parameter to the method (from jmx > client for example), and it will be used to select from MailRepositoryStore. > > The fromUsersRepository is for example a FileUsersRepository copied from > James 2.3 that needs to be injected (with some logic around the > defaultDomain) in a JPAUsersRepository for example (the James 3.0 one). This > is why I thought to have an additional config file. If we use the existing > usersrepository.xml one, we only have a toUsersRepository and not a > fromUsersRepository. > > Wdyt? > Tks, > Eric > > > On 29/12/2010 14:54, Norman Maurer wrote: >> >> 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] >> > > > --------------------------------------------------------------------- > 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]
