archiva-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joakim Erdfelt <joa...@erdfelt.com>
Subject Plan to migrate towards Spring?
Date Mon, 18 Feb 2008 22:37:16 GMT
I've felt that we need to migrate our choice of IoC (plexus) towards a 
better documented and better supported container (I'm leaning towards 
Spring)

I also recognize that this kind of change can't be done quickly or in a 
big-bang approach.
I've started an assessment of the plexus usage within Archiva and have 
planned out a first draft on what we can do to change that usage.

There are plenty of plexus components that need to be migrated before we 
can make the change to use a container such as spring.  There's also the 
whole Redback package that would need to be migrated as well.

So here's my first draft.
If there is interest, we can start to plan, schedule, and do the changes 
in small increments.
This should probably live as a document in the wiki, but for now I think 
we can discuss this in the mailing list.

org.codehaus.plexus.cache.Cache;

  Used:
    archiva-repository-layer
    archiva-policies
  Plan:
    Use ehcache directly
    or use Spring Caching (which uses ehcache)

org.codehaus.plexus.commandline.DefaultExecutableResolver;
org.codehaus.plexus.commandline.ExecutableResolver;

  Used:
    archiva-webapp-test
  Plan:
    Investigate Need.
    Fork into archiva if truely needed.

org.codehaus.plexus.tools.cli.AbstractCli;

  Used:
    archiva-cli
  Plan:
    Use commons-cli instead.

org.codehaus.plexus.util.cli.Commandline;
org.codehaus.plexus.util.cli.CommandLineUtils;
org.codehaus.plexus.util.cli.StreamConsumer;
org.codehaus.plexus.util.cli.WriterStreamConsumer;

  Used:
    archiva-webapp-test
  Plan:
    Use JDK 1.5 and java.lang.ProcessBuilder

org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
org.codehaus.plexus.context.Context;
org.codehaus.plexus.context.ContextException;
org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
org.codehaus.plexus.PlexusConstants;
org.codehaus.plexus.PlexusContainer;
org.codehaus.plexus.PlexusTestCase;

  Used:
    archiva-cli
    archiva-repository-layer
    archiva-webapp
    archiva-artifact-reports
    archiva-configuration
    archiva-core-consumers
    archiva-database
    archiva-database-consumers
    archiva-indexer
    archiva-lucene-consumers
    archiva-proxy
    archiva-scheduled
    archiva-webapp
  Plan:
    Switch to Spring Container.

org.codehaus.plexus.digest.ChecksumFile;
org.codehaus.plexus.digest.Digester;
org.codehaus.plexus.digest.DigesterException;

  Used:
    archiva-policies
    archiva-commons
    archiva-core-consumers
    archiva-transaction
    archiva-database-consumers
  Plan:
    Migrate to commons-codec

org.codehaus.plexus.evaluator.DefaultExpressionEvaluator;
org.codehaus.plexus.evaluator.EvaluatorException;
org.codehaus.plexus.evaluator.ExpressionEvaluator;
org.codehaus.plexus.evaluator.ExpressionSource;
org.codehaus.plexus.evaluator.sources.PropertiesExpressionSource;
org.codehaus.plexus.evaluator.sources.SystemPropertyExpressionSource;

  Used:
    archiva-repository-layer
    archiva-configuration
  Plan:
    Migrate expression-evaluator to archiva codebase.

org.codehaus.plexus.i18n.I18N;

  Used:
    archiva-converter
  Plan:
    Migrate to standard JDK i18n pattern.

org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
org.codehaus.plexus.jdo.JdoFactory;

  Used:
    archiva-scheduled
    archiva-database
  Plan:
    Migrate to JDK 1.5 + JPA + Annotations

org.codehaus.plexus.logging.AbstractLogEnabled;
org.codehaus.plexus.logging.Logger;

  Used:
    archiva-repository-layer
    archiva-webapp
  Plan:
    Use slf4j directly

org.codehaus.plexus.redback.authentication.AuthenticationDataSource;
org.codehaus.plexus.redback.authentication.AuthenticationException;
org.codehaus.plexus.redback.authentication.AuthenticationResult;
org.codehaus.plexus.redback.authorization.AuthorizationException;
org.codehaus.plexus.redback.authorization.AuthorizationResult;
org.codehaus.plexus.redback.keys.KeyManager;
org.codehaus.plexus.redback.keys.memory.MemoryKeyManager;
org.codehaus.plexus.redback.policy.AccountLockedException;
org.codehaus.plexus.redback.policy.DefaultUserSecurityPolicy;
org.codehaus.plexus.redback.policy.MustChangePasswordException;
org.codehaus.plexus.redback.policy.UserSecurityPolicy;
org.codehaus.plexus.redback.rbac.RBACManager;
org.codehaus.plexus.redback.rbac.RbacManagerException;
org.codehaus.plexus.redback.rbac.Resource;
org.codehaus.plexus.redback.rbac.UserAssignment;
org.codehaus.plexus.redback.role.RoleManager;
org.codehaus.plexus.redback.role.RoleManagerException;
org.codehaus.plexus.redback.system.check.EnvironmentCheck;
org.codehaus.plexus.redback.system.DefaultSecuritySession;
org.codehaus.plexus.redback.system.DefaultSecuritySystem;
org.codehaus.plexus.redback.system.SecuritySession;
org.codehaus.plexus.redback.system.SecuritySystem;
org.codehaus.plexus.redback.system.SecuritySystemConstants;
org.codehaus.plexus.redback.users.memory.MemoryUserManager;
org.codehaus.plexus.redback.users.User;
org.codehaus.plexus.redback.users.UserManager;
org.codehaus.plexus.redback.users.UserNotFoundException;
org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator;
org.codehaus.plexus.redback.xwork.interceptor.SecureAction;
org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;

  Used:
    archiva-security
    archiva-webapp
  Plan:
    Develop redback <-> spring integration and use it.

org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry;
org.codehaus.plexus.registry.Registry;
org.codehaus.plexus.registry.RegistryException;
org.codehaus.plexus.registry.RegistryListener;

  Used:
    archiva-artifact-reports
    archiva-configuration
    archiva-core-consumers
    archiva-database-consumers
    archiva-indexer
    archiva-lucene-consumers
    archiva-proxy
    archiva-repository-layer
    archiva-scheduled
    archiva-security
    archiva-webapp
  Plan:
    Use commons-configuration
    or Spring JavaConfig

org.codehaus.plexus.scheduler.AbstractJob;
org.codehaus.plexus.scheduler.CronExpressionValidator;
org.codehaus.plexus.scheduler.Scheduler;

  Uses:
    archiva-scheduled
    archiva-webapp
  Plan:
    Use Spring Scheduler / Quartz.

org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
org.codehaus.plexus.taskqueue.execution.TaskExecutor;
org.codehaus.plexus.taskqueue.Task;
org.codehaus.plexus.taskqueue.TaskQueue;
org.codehaus.plexus.taskqueue.TaskQueueException;

  Used:
    archiva-scheduled
    archiva-webapp
  Plan:
    Move to Spring JMS?

org.codehaus.plexus.util.DirectoryWalker;
org.codehaus.plexus.util.DirectoryWalkListener;
org.codehaus.plexus.util.FileUtils;
org.codehaus.plexus.util.IOUtil;
org.codehaus.plexus.util.SelectorUtils;

  Used:
    archiva-repository-layer
    archiva-artifact-converter
    archiva-common
    archiva-configuration
    archiva-core-consumers
    archiva-database-consumers
    archiva-indexer
    archiva-metadata-reports
    archiva-policies
    archiva-transaction
    archiva-webapp
  Plan:
    Use commons-io equivalents

org.codehaus.plexus.util.StringUtils;

  Used:
    archiva-repository-layer
  Plan:
    Switch to commons-lang

org.codehaus.plexus.util.xml.pull.XmlPullParserException;

  Used:
    archiva-artifact-converter
    archiva-webapp
  Plan:
    Implement AnonymousProjectReader idea from 1.0 days to
    read the xml / modelVersion and then load the appropriate
    ProjectModel###Reader object.

org.codehaus.plexus.webdav.AbstractDavServerComponent;
org.codehaus.plexus.webdav.DavServerComponent;
org.codehaus.plexus.webdav.DavServerException;
org.codehaus.plexus.webdav.DavServerListener;
org.codehaus.plexus.webdav.DavServerManager;
org.codehaus.plexus.webdav.servlet.DavServerRequest;
org.codehaus.plexus.webdav.servlet.multiplexed.MultiplexedWebDavServlet;
org.codehaus.plexus.webdav.util.MimeTypes;
org.codehaus.plexus.webdav.util.WebdavMethodUtil;

  Used:
    archiva-webapp
  Plan:
    Fork it.could.webdav into new archiva-davserver component.

org.codehaus.plexus.xwork.action.PlexusActionSupport;

  Used:
    archiva-webapp
  Plan:
    Switch to SwingMVC

- Joakim

Mime
View raw message