You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2008/08/04 17:59:16 UTC
svn commit: r682432 - in /continuum/branches/continuum-refactoring-evenisse:
continuum-api/src/main/java/org/apache/continuum/dao/
continuum-api/src/main/java/org/apache/maven/continuum/store/
continuum-commons/src/main/java/org/apache/maven/continuum/...
Author: evenisse
Date: Mon Aug 4 08:59:15 2008
New Revision: 682432
URL: http://svn.apache.org/viewvc?rev=682432&view=rev
Log:
Split ContinuumStore into few dao classes : extract SystemConfigurationDao and NotifierDao
Added:
continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java (with props)
continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java (with props)
continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java (with props)
continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java (with props)
Modified:
continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/resources/META-INF/spring-context.xml
continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
continuum/branches/continuum-refactoring-evenisse/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java
continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/AbstractDao.java
continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java
continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
Added: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java?rev=682432&view=auto
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java (added)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java Mon Aug 4 08:59:15 2008
@@ -0,0 +1,36 @@
+package org.apache.continuum.dao;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface NotifierDao
+{
+ void removeNotifier( ProjectNotifier notifier )
+ throws ContinuumStoreException;
+
+ ProjectNotifier storeNotifier( ProjectNotifier notifier )
+ throws ContinuumStoreException;
+}
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/NotifierDao.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java?rev=682432&view=auto
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java (added)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java Mon Aug 4 08:59:15 2008
@@ -0,0 +1,38 @@
+package org.apache.continuum.dao;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public interface SystemConfigurationDao
+{
+ org.apache.maven.continuum.model.system.SystemConfiguration addSystemConfiguration(
+ org.apache.maven.continuum.model.system.SystemConfiguration systemConf );
+
+ void updateSystemConfiguration( org.apache.maven.continuum.model.system.SystemConfiguration systemConf )
+ throws ContinuumStoreException;
+
+ org.apache.maven.continuum.model.system.SystemConfiguration getSystemConfiguration()
+ throws ContinuumStoreException;
+}
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/continuum/dao/SystemConfigurationDao.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java Mon Aug 4 08:59:15 2008
@@ -23,9 +23,6 @@
import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
-import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.model.system.Installation;
-import org.apache.maven.continuum.model.system.SystemConfiguration;
import java.util.List;
import java.util.Map;
@@ -39,12 +36,6 @@
{
String ROLE = ContinuumStore.class.getName();
- void removeNotifier( ProjectNotifier notifier )
- throws ContinuumStoreException;
-
- ProjectNotifier storeNotifier( ProjectNotifier notifier )
- throws ContinuumStoreException;
-
Map getDefaultBuildDefinitions();
/**
@@ -154,14 +145,6 @@
void updateBuildResult( BuildResult build )
throws ContinuumStoreException;
- SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf );
-
- void updateSystemConfiguration( SystemConfiguration systemConf )
- throws ContinuumStoreException;
-
- SystemConfiguration getSystemConfiguration()
- throws ContinuumStoreException;
-
void closeStore();
void eraseDatabase();
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java Mon Aug 4 08:59:15 2008
@@ -23,9 +23,9 @@
import org.apache.continuum.configuration.ContinuumConfigurationException;
import org.apache.continuum.configuration.GeneralConfiguration;
import org.apache.continuum.dao.ScheduleDao;
+import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.maven.continuum.model.project.Schedule;
import org.apache.maven.continuum.model.system.SystemConfiguration;
-import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -52,14 +52,14 @@
private File applicationHome;
/**
- * @plexus.requirement role-hint="jdo"
+ * @plexus.requirement
*/
- private ContinuumStore store;
+ private ScheduleDao scheduleDao;
/**
* @plexus.requirement
*/
- private ScheduleDao scheduleDao;
+ private SystemConfigurationDao systemConfigurationDao;
/**
* @plexus.requirement
@@ -86,24 +86,24 @@
loadData();
}
- public void setStore( ContinuumStore store )
+ public ScheduleDao getScheduleDao()
{
- this.store = store;
+ return scheduleDao;
}
- public ContinuumStore getStore()
+ public void setScheduleDao( ScheduleDao scheduleDao )
{
- return store;
+ this.scheduleDao = scheduleDao;
}
- public ScheduleDao getScheduleDao()
+ public SystemConfigurationDao getSystemConfigurationDao()
{
- return scheduleDao;
+ return systemConfigurationDao;
}
- public void setScheduleDao( ScheduleDao scheduleDao )
+ public void setSystemConfigurationDao( SystemConfigurationDao systemConfigurationDao )
{
- this.scheduleDao = scheduleDao;
+ this.systemConfigurationDao = systemConfigurationDao;
}
public ContinuumConfiguration getConfiguration()
@@ -335,13 +335,13 @@
try
{
- systemConf = getStore().getSystemConfiguration();
+ systemConf = getSystemConfigurationDao().getSystemConfiguration();
if ( systemConf == null )
{
systemConf = new SystemConfiguration();
- systemConf = getStore().addSystemConfiguration( systemConf );
+ systemConf = getSystemConfigurationDao().addSystemConfiguration( systemConf );
}
loaded = true;
@@ -366,7 +366,7 @@
configuration.save();
try
{
- getStore().updateSystemConfiguration( systemConf );
+ getSystemConfigurationDao().updateSystemConfiguration( systemConf );
}
catch ( ContinuumStoreException e )
{
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/resources/META-INF/spring-context.xml?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/resources/META-INF/spring-context.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-commons/src/main/resources/META-INF/spring-context.xml Mon Aug 4 08:59:15 2008
@@ -26,8 +26,8 @@
<bean id="configurationService" class="org.apache.maven.continuum.configuration.DefaultConfigurationService"
init-method="initialize">
<property name="applicationHome" value="target"/>
- <property name="store" ref="continuumStore#jdo"/>
<property name="scheduleDao" ref="scheduleDao"/>
+ <property name="systemConfigurationDao" ref="systemConfigurationDao"/>
<property name="configuration" ref="continuumConfiguration"/>
</bean>
<bean id="workingDirectoryService" class="org.apache.maven.continuum.utils.DefaultWorkingDirectoryService">
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Mon Aug 4 08:59:15 2008
@@ -22,6 +22,7 @@
import org.apache.commons.lang.ArrayUtils;
import org.apache.continuum.configuration.ContinuumConfigurationException;
import org.apache.continuum.dao.BuildDefinitionDao;
+import org.apache.continuum.dao.NotifierDao;
import org.apache.continuum.dao.ProjectDao;
import org.apache.continuum.dao.ProjectGroupDao;
import org.apache.continuum.dao.ScheduleDao;
@@ -135,6 +136,11 @@
/**
* @plexus.requirement
*/
+ private NotifierDao notifierDao;
+
+ /**
+ * @plexus.requirement
+ */
private ProjectDao projectDao;
/**
@@ -3053,7 +3059,7 @@
{
try
{
- store.removeNotifier( notifier );
+ notifierDao.removeNotifier( notifier );
}
catch ( ContinuumStoreException ex )
{
@@ -3066,7 +3072,7 @@
{
try
{
- return store.storeNotifier( notifier );
+ return notifierDao.storeNotifier( notifier );
}
catch ( ContinuumStoreException ex )
{
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java Mon Aug 4 08:59:15 2008
@@ -20,13 +20,13 @@
*/
import org.apache.continuum.dao.ProjectGroupDao;
+import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.model.system.SystemConfiguration;
import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
-import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.jpox.SchemaTool;
@@ -47,14 +47,14 @@
// ----------------------------------------------------------------------
/**
- * @plexus.requirement role-hint="jdo"
+ * @plexus.requirement
*/
- private ContinuumStore store;
+ private ProjectGroupDao projectGroupDao;
/**
* @plexus.requirement
*/
- private ProjectGroupDao projectGroupDao;
+ private SystemConfigurationDao systemConfigurationDao;
/**
* @plexus.requirement
@@ -87,13 +87,13 @@
try
{
// System Configuration
- SystemConfiguration systemConf = store.getSystemConfiguration();
+ SystemConfiguration systemConf = systemConfigurationDao.getSystemConfiguration();
if ( systemConf == null )
{
systemConf = new SystemConfiguration();
- systemConf = store.addSystemConfiguration( systemConf );
+ systemConf = systemConfigurationDao.addSystemConfiguration( systemConf );
}
createDefaultProjectGroup();
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java Mon Aug 4 08:59:15 2008
@@ -23,6 +23,7 @@
import org.apache.continuum.dao.ProfileDao;
import org.apache.continuum.dao.ProjectGroupDao;
import org.apache.continuum.dao.ScheduleDao;
+import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.ContinuumDatabase;
import org.apache.maven.continuum.model.project.Project;
@@ -90,6 +91,11 @@
*/
private ScheduleDao scheduleDao;
+ /**
+ * @plexus.requirement
+ */
+ private SystemConfigurationDao systemConfigurationDao;
+
protected static final String BUILDS_XML = "builds.xml";
/**
@@ -103,7 +109,7 @@
ContinuumDatabase database = new ContinuumDatabase();
try
{
- database.setSystemConfiguration( store.getSystemConfiguration() );
+ database.setSystemConfiguration( systemConfigurationDao.getSystemConfiguration() );
}
catch ( ContinuumStoreException e )
{
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/AbstractDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/AbstractDao.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/AbstractDao.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/AbstractDao.java Mon Aug 4 08:59:15 2008
@@ -136,6 +136,16 @@
}
}
+ protected List getAllObjectsDetached( Class clazz )
+ {
+ return getAllObjectsDetached( clazz, null );
+ }
+
+ private List getAllObjectsDetached( Class clazz, String fetchGroup )
+ {
+ return getAllObjectsDetached( clazz, null, fetchGroup );
+ }
+
protected List getAllObjectsDetached( Class clazz, String ordering, String fetchGroup )
{
return getAllObjectsDetached( getPersistenceManager(), clazz, ordering, fetchGroup );
@@ -151,6 +161,10 @@
PlexusJdoUtils.rollbackIfActive( tx );
}
+ protected void attachAndDelete( Object object )
+ {
+ PlexusJdoUtils.attachAndDelete( getPersistenceManager(), object );
+ }
protected PersistenceManager getPersistenceManager()
{
Added: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java?rev=682432&view=auto
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java (added)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java Mon Aug 4 08:59:15 2008
@@ -0,0 +1,47 @@
+package org.apache.continuum.dao;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.continuum.dao.NotifierDao"
+ */
+public class NotifierDaoImpl
+ extends AbstractDao
+ implements NotifierDao
+{
+ public void removeNotifier( ProjectNotifier notifier )
+ throws ContinuumStoreException
+ {
+ attachAndDelete( notifier );
+ }
+
+ public ProjectNotifier storeNotifier( ProjectNotifier notifier )
+ throws ContinuumStoreException
+ {
+ updateObject( notifier );
+
+ return notifier;
+ }
+}
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/NotifierDaoImpl.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java?rev=682432&view=auto
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java (added)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java Mon Aug 4 08:59:15 2008
@@ -0,0 +1,66 @@
+package org.apache.continuum.dao;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.continuum.model.system.SystemConfiguration;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.continuum.dao.SystemConfigurationDao"
+ */
+public class SystemConfigurationDaoImpl
+ extends AbstractDao
+ implements SystemConfigurationDao
+{
+ public SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf )
+ {
+ return (SystemConfiguration) addObject( systemConf );
+ }
+
+ public void updateSystemConfiguration( SystemConfiguration systemConf )
+ throws ContinuumStoreException
+ {
+ updateObject( systemConf );
+ }
+
+ public SystemConfiguration getSystemConfiguration()
+ throws ContinuumStoreException
+ {
+ List systemConfs = getAllObjectsDetached( SystemConfiguration.class );
+
+ if ( systemConfs == null || systemConfs.isEmpty() )
+ {
+ return null;
+ }
+ else if ( systemConfs.size() > 1 )
+ {
+ throw new ContinuumStoreException(
+ "Database is corrupted. There are more than one systemConfiguration object." );
+ }
+ else
+ {
+ return (SystemConfiguration) systemConfs.get( 0 );
+ }
+ }
+}
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/SystemConfigurationDaoImpl.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Mon Aug 4 08:59:15 2008
@@ -574,20 +574,6 @@
removeObject( buildResult );
}
- public void removeNotifier( ProjectNotifier notifier )
- throws ContinuumStoreException
- {
- attachAndDelete( notifier );
- }
-
- public ProjectNotifier storeNotifier( ProjectNotifier notifier )
- throws ContinuumStoreException
- {
- updateObject( notifier );
-
- return notifier;
- }
-
// ------------------------------------------------------
// BuildDefinition
// ------------------------------------------------------
@@ -857,11 +843,6 @@
return PlexusJdoUtils.makePersistent( pm, object, detach );
}
- private void attachAndDelete( Object object )
- {
- PlexusJdoUtils.attachAndDelete( getPersistenceManager(), object );
- }
-
public List<BuildResult> getAllBuildsForAProjectByDate( int projectId )
{
PersistenceManager pm = getPersistenceManager();
@@ -1207,11 +1188,6 @@
}
}
- private List getAllObjectsDetached( Class clazz )
- {
- return getAllObjectsDetached( clazz, null );
- }
-
private List getAllObjectsDetached( Class clazz, String fetchGroup )
{
return getAllObjectsDetached( clazz, null, fetchGroup );
@@ -1223,37 +1199,6 @@
return (Project) getObjectById( Project.class, projectId, PROJECT_BUILD_DETAILS_FETCH_GROUP );
}
- public SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf )
- {
- return (SystemConfiguration) addObject( systemConf );
- }
-
- public void updateSystemConfiguration( SystemConfiguration systemConf )
- throws ContinuumStoreException
- {
- updateObject( systemConf );
- }
-
- public SystemConfiguration getSystemConfiguration()
- throws ContinuumStoreException
- {
- List systemConfs = getAllObjectsDetached( SystemConfiguration.class );
-
- if ( systemConfs == null || systemConfs.isEmpty() )
- {
- return null;
- }
- else if ( systemConfs.size() > 1 )
- {
- throw new ContinuumStoreException(
- "Database is corrupted. There are more than one systemConfiguration object." );
- }
- else
- {
- return (SystemConfiguration) systemConfs.get( 0 );
- }
- }
-
public void closeStore()
{
closePersistenceManagerFactory( getContinuumPersistenceManagerFactory(), 1 );
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java Mon Aug 4 08:59:15 2008
@@ -24,6 +24,7 @@
import org.apache.continuum.dao.ProjectDao;
import org.apache.continuum.dao.ProjectGroupDao;
import org.apache.continuum.dao.ScheduleDao;
+import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.maven.continuum.installation.InstallationService;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildResult;
@@ -67,6 +68,8 @@
protected ScheduleDao scheduleDao;
+ protected SystemConfigurationDao systemConfigurationDao;
+
protected ProjectGroup defaultProjectGroup;
protected ProjectGroup testProjectGroup2;
@@ -101,30 +104,6 @@
protected ScmResult testCheckoutResult1;
- private ProjectNotifier testGroupNotifier1;
-
- private ProjectNotifier testGroupNotifier2;
-
- private ProjectNotifier testGroupNotifier3;
-
- private ProjectNotifier testNotifier1;
-
- private ProjectNotifier testNotifier2;
-
- private ProjectNotifier testNotifier3;
-
- private ProjectDeveloper testDeveloper1;
-
- private ProjectDeveloper testDeveloper2;
-
- private ProjectDeveloper testDeveloper3;
-
- private ProjectDependency testDependency1;
-
- private ProjectDependency testDependency2;
-
- private ProjectDependency testDependency3;
-
private SystemConfiguration systemConfiguration;
protected void setUp()
@@ -143,6 +122,8 @@
projectDao = (ProjectDao) lookup( ProjectDao.class.getName() );
scheduleDao = (ScheduleDao) lookup( ScheduleDao.class.getName() );
+
+ systemConfigurationDao = (SystemConfigurationDao) lookup( SystemConfigurationDao.class.getName() );
}
protected void createBuildDatabase()
@@ -178,21 +159,21 @@
testInstallationMaven20a3 = createTestInstallation( "Maven 2.0 alpha 3", InstallationService.MAVEN2_TYPE,
"M2_HOME", "/usr/local/maven-2.0-alpha-3" );
- testGroupNotifier1 = createTestNotifier( 1, true, false, true, "type1" );
- testGroupNotifier2 = createTestNotifier( 2, false, true, false, "type2" );
- testGroupNotifier3 = createTestNotifier( 3, true, false, false, "type3" );
-
- testNotifier1 = createTestNotifier( 11, true, true, false, "type11" );
- testNotifier2 = createTestNotifier( 12, false, false, true, "type12" );
- testNotifier3 = createTestNotifier( 13, false, true, false, "type13" );
-
- testDeveloper1 = createTestDeveloper( 1, "email1", "name1", "scmId1" );
- testDeveloper2 = createTestDeveloper( 2, "email2", "name2", "scmId2" );
- testDeveloper3 = createTestDeveloper( 3, "email3", "name3", "scmId3" );
-
- testDependency1 = createTestDependency( "groupId1", "artifactId1", "version1" );
- testDependency2 = createTestDependency( "groupId2", "artifactId2", "version2" );
- testDependency3 = createTestDependency( "groupId3", "artifactId3", "version3" );
+ ProjectNotifier testGroupNotifier1 = createTestNotifier( 1, true, false, true, "type1" );
+ ProjectNotifier testGroupNotifier2 = createTestNotifier( 2, false, true, false, "type2" );
+ ProjectNotifier testGroupNotifier3 = createTestNotifier( 3, true, false, false, "type3" );
+
+ ProjectNotifier testNotifier1 = createTestNotifier( 11, true, true, false, "type11" );
+ ProjectNotifier testNotifier2 = createTestNotifier( 12, false, false, true, "type12" );
+ ProjectNotifier testNotifier3 = createTestNotifier( 13, false, true, false, "type13" );
+
+ ProjectDeveloper testDeveloper1 = createTestDeveloper( 1, "email1", "name1", "scmId1" );
+ ProjectDeveloper testDeveloper2 = createTestDeveloper( 2, "email2", "name2", "scmId2" );
+ ProjectDeveloper testDeveloper3 = createTestDeveloper( 3, "email3", "name3", "scmId3" );
+
+ ProjectDependency testDependency1 = createTestDependency( "groupId1", "artifactId1", "version1" );
+ ProjectDependency testDependency2 = createTestDependency( "groupId2", "artifactId2", "version2" );
+ ProjectDependency testDependency3 = createTestDependency( "groupId3", "artifactId3", "version3" );
// TODO: simplify by deep copying the relationships in createTest... ?
long baseTime = System.currentTimeMillis();
@@ -475,7 +456,7 @@
if ( addToStore )
{
- systemConfiguration = store.addSystemConfiguration( systemConfiguration );
+ systemConfiguration = systemConfigurationDao.addSystemConfiguration( systemConfiguration );
}
}
@@ -503,9 +484,9 @@
assertScheduleEquals( testSchedule3, scheduleDao.getSchedule( testSchedule3.getId() ) );
Iterator<Installation> iterator = installationDao.getAllInstallations().iterator();
- assertInstallationEquals( testInstallationJava13, (Installation) iterator.next() );
- assertInstallationEquals( testInstallationJava14, (Installation) iterator.next() );
- assertInstallationEquals( testInstallationMaven20a3, (Installation) iterator.next() );
+ assertInstallationEquals( testInstallationJava13, iterator.next() );
+ assertInstallationEquals( testInstallationJava14, iterator.next() );
+ assertInstallationEquals( testInstallationMaven20a3, iterator.next() );
/*
// TODO!!! -- definitely need to test the changeset stuff since it uses modello.refid
@@ -659,7 +640,7 @@
testProjectGroup2.setId( group.getId() );
*/
- assertSystemConfiguration( systemConfiguration, store.getSystemConfiguration() );
+ assertSystemConfiguration( systemConfiguration, systemConfigurationDao.getSystemConfiguration() );
}
private void assertSystemConfiguration( SystemConfiguration expected, SystemConfiguration actual )
@@ -682,7 +663,7 @@
assertEquals( 0, profileDao.getAllProfilesByName().size() );
assertEquals( 0, projectGroupDao.getAllProjectGroups().size() );
assertEquals( 0, projectDao.getAllProjectsByName().size() );
- assertNull( store.getSystemConfiguration() );
+ assertNull( systemConfigurationDao.getSystemConfiguration() );
}
protected static BuildDefinition createTestBuildDefinition( BuildDefinition buildDefinition )
@@ -1067,7 +1048,7 @@
{
for ( int i = 0; i < actualDevelopers.size(); i++ )
{
- assertDeveloperEquals( (ProjectDeveloper) expectedDevelopers.get( i ), (ProjectDeveloper) actualDevelopers
+ assertDeveloperEquals( expectedDevelopers.get( i ), actualDevelopers
.get( i ) );
}
}
@@ -1086,8 +1067,7 @@
{
for ( int i = 0; i < actualDependencies.size(); i++ )
{
- assertDependencyEquals( (ProjectDependency) expectedDependencies.get( i ),
- (ProjectDependency) actualDependencies.get( i ) );
+ assertDependencyEquals( expectedDependencies.get( i ), actualDependencies.get( i ) );
}
}
Modified: continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java?rev=682432&r1=682431&r2=682432&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java Mon Aug 4 08:59:15 2008
@@ -19,14 +19,9 @@
* under the License.
*/
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
import net.sf.dozer.util.mapping.DozerBeanMapperSingletonWrapper;
import net.sf.dozer.util.mapping.MapperIF;
-
+import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
@@ -34,7 +29,6 @@
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
import org.apache.maven.continuum.security.ContinuumRoleConstants;
-import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.xmlrpc.project.AddingResult;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
@@ -55,6 +49,11 @@
import org.codehaus.plexus.redback.role.RoleManagerException;
import org.codehaus.plexus.util.StringUtils;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
/**
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
@@ -71,9 +70,9 @@
private Continuum continuum;
/**
- * @plexus.requirement role-hint="jdo"
+ * @plexus.requirement
*/
- private ContinuumStore store;
+ private SystemConfigurationDao systemConfigurationDao;
/**
* @plexus.requirement role-hint="default"
@@ -223,7 +222,8 @@
protected String getProjectGroupName( int projectGroupId )
throws ContinuumException
{
- org.apache.maven.continuum.model.project.ProjectGroup projectGroup = continuum.getProjectGroup( projectGroupId );
+ org.apache.maven.continuum.model.project.ProjectGroup projectGroup =
+ continuum.getProjectGroup( projectGroupId );
return projectGroup == null ? null : projectGroup.getName();
}
@@ -765,7 +765,7 @@
}
// ----------------------------------------------------------------------
- // SystemConfiguration
+ // SystemConfigurationDao
// ----------------------------------------------------------------------
public SystemConfiguration getSystemConfiguration()
@@ -774,12 +774,13 @@
checkManageConfigurationAuthorization();
try
{
- org.apache.maven.continuum.model.system.SystemConfiguration sysConf = store.getSystemConfiguration();
+ org.apache.maven.continuum.model.system.SystemConfiguration sysConf =
+ systemConfigurationDao.getSystemConfiguration();
return populateSystemConfiguration( sysConf );
}
catch ( ContinuumStoreException e )
{
- throw new ContinuumException( "Can't get SystemConfiguration.", e );
+ throw new ContinuumException( "Can't get SystemConfigurationDao.", e );
}
}
@@ -805,7 +806,7 @@
// ----------------------------------------------------------------------
private List<BuildProjectTask> populateBuildProjectTaskList(
- List<org.apache.maven.continuum.buildqueue.BuildProjectTask> buildProjectTasks )
+ List<org.apache.maven.continuum.buildqueue.BuildProjectTask> buildProjectTasks )
{
List<BuildProjectTask> responses = new ArrayList<BuildProjectTask>();
for ( org.apache.maven.continuum.buildqueue.BuildProjectTask buildProjectTask : buildProjectTasks )
@@ -815,7 +816,7 @@
}
return responses;
}
-
+
private ProjectSummary populateProjectSummary( org.apache.maven.continuum.model.project.Project project )
{
return (ProjectSummary) mapper.map( project, ProjectSummary.class );