From 9de82c9398e8cf53bf26e33bde7b1284047245a9 Mon Sep 17 00:00:00 2001 From: "Carlos A. Munoz" Date: Fri, 9 May 2014 14:27:28 +1000 Subject: [PATCH] Refactor to use ServiceLocator instead of Seam's Component class. --- .../org/zanata/action/AccountMergeAction.java | 3 ++- .../org/zanata/action/DashboardAction.java | 1 - .../action/ProjectPagedListDataModel.java | 6 ++---- .../java/org/zanata/action/ProjectSearch.java | 6 +++--- .../QueryProjectPagedListDataModel.java | 6 ++---- .../action/TranslationMemoryAction.java | 7 ++++--- .../org/zanata/action/UserSettingsAction.java | 8 +++---- .../org/zanata/action/VersionGroupHome.java | 12 +++++------ .../org/zanata/action/VersionHomeAction.java | 8 +++---- .../validator/DuplicateEmailValidator.java | 6 ++---- .../async/AsynchronousTaskExecutor.java | 12 +++++------ .../async/tasks/DocumentCopyTransTask.java | 8 +++---- .../async/tasks/IterationCopyTransTask.java | 8 +++---- .../zanata/async/tasks/ZipFileBuildTask.java | 21 +++++++++---------- .../zanata/config/DatabaseBackedConfig.java | 1 - .../org/zanata/limits/RateLimitManager.java | 8 +++---- .../org/zanata/log4j/ZanataSMTPAppender.java | 6 ++++-- .../rest/HibernateValidationInterceptor.java | 4 ++-- .../RestLimitingSynchronousDispatcher.java | 6 +++--- .../rest/ZanataRestVersionInterceptor.java | 5 ++--- .../AsynchronousProcessResourceService.java | 14 ++++++------- .../zanata/rest/service/ResourceUtils.java | 7 ++++--- .../org/zanata/seam/FixedSafeActions.java | 5 ++--- .../seam/interceptor/MonitoringWrapper.java | 7 +++---- .../zanata/seam/mail/ZanataMailSession.java | 6 +++--- .../seam/scope/ConversationScopeMessages.java | 6 +++--- .../security/AuthenticationManager.java | 5 ++--- .../security/FedoraOpenIdPhaseListener.java | 6 +++--- .../zanata/security/OpenIdLoginModule.java | 6 ++---- .../zanata/security/SecurityFunctions.java | 18 ++++++++-------- .../org/zanata/security/SpNegoIdentity.java | 9 +++----- .../org/zanata/security/ZanataIdentity.java | 10 ++++----- .../security/ZanataJpaIdentityStore.java | 4 ++-- .../org/zanata/security/ZanataOpenId.java | 9 +++----- .../impl/AsyncTaskManagerServiceImpl.java | 4 ++-- .../service/impl/LockManagerServiceImpl.java | 6 +++--- .../impl/TranslationStateCacheImpl.java | 9 ++++---- .../zanata/service/impl/VersionManager.java | 3 +-- .../service/impl/VersionStateCacheImpl.java | 5 ++--- .../org/zanata/servlet/FileUploadServlet.java | 12 +++++------ .../org/zanata/ui/AbstractAutocomplete.java | 6 +++--- .../ui/autocomplete/LocaleAutocomplete.java | 7 ++----- .../autocomplete/MaintainerAutocomplete.java | 9 +++----- .../java/org/zanata/util/ServiceLocator.java | 4 ++++ .../webtrans/server/HibernateIntegrator.java | 7 +++---- .../zanata/webtrans/server/SeamDispatch.java | 4 ++-- .../server/TranslationUpdateListener.java | 1 - .../TranslationWorkspaceManagerImpl.java | 18 +++++++++------- .../server/rpc/TransUnitUpdateHelper.java | 3 ++- 49 files changed, 164 insertions(+), 188 deletions(-) diff --git a/zanata-war/src/main/java/org/zanata/action/AccountMergeAction.java b/zanata-war/src/main/java/org/zanata/action/AccountMergeAction.java index 2d54aea053..2d97fc09a9 100644 --- a/zanata-war/src/main/java/org/zanata/action/AccountMergeAction.java +++ b/zanata-war/src/main/java/org/zanata/action/AccountMergeAction.java @@ -43,6 +43,7 @@ import org.zanata.security.openid.OpenIdAuthenticationResult; import org.zanata.security.openid.OpenIdProviderType; import org.zanata.service.RegisterService; +import org.zanata.util.ServiceLocator; /** * @author Carlos Munoz implements Serializable { @@ -46,8 +45,7 @@ public ProjectPagedListDataModel(boolean filterActive, @Override public DataPage fetchPage(int startRow, int pageSize) { ProjectDAO projectDAO = - (ProjectDAO) Component.getInstance(ProjectDAO.class, - ScopeType.STATELESS); + ServiceLocator.instance().getInstance(ProjectDAO.class); List proj = projectDAO.getOffsetListOrderByName(startRow, pageSize, filterActive, filterReadOnly, filterObsolete); diff --git a/zanata-war/src/main/java/org/zanata/action/ProjectSearch.java b/zanata-war/src/main/java/org/zanata/action/ProjectSearch.java index 4ab7c2b01f..be88a78f9a 100644 --- a/zanata-war/src/main/java/org/zanata/action/ProjectSearch.java +++ b/zanata-war/src/main/java/org/zanata/action/ProjectSearch.java @@ -12,7 +12,6 @@ import org.apache.commons.lang.StringUtils; import org.apache.lucene.queryParser.ParseException; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.In; @@ -24,6 +23,7 @@ import com.google.common.collect.Lists; import org.zanata.ui.AbstractAutocomplete; +import org.zanata.util.ServiceLocator; @Name("projectSearch") @Scope(ScopeType.CONVERSATION) @@ -74,8 +74,8 @@ public boolean isProjectNull() { private class ProjectAutocomplete extends AbstractAutocomplete { - private ProjectDAO projectDAO = (ProjectDAO) Component - .getInstance(ProjectDAO.class); + private ProjectDAO projectDAO = + ServiceLocator.instance().getInstance(ProjectDAO.class); /** * Return results on search diff --git a/zanata-war/src/main/java/org/zanata/action/QueryProjectPagedListDataModel.java b/zanata-war/src/main/java/org/zanata/action/QueryProjectPagedListDataModel.java index a7fcc89292..5e9e1ecd8c 100644 --- a/zanata-war/src/main/java/org/zanata/action/QueryProjectPagedListDataModel.java +++ b/zanata-war/src/main/java/org/zanata/action/QueryProjectPagedListDataModel.java @@ -25,13 +25,12 @@ import java.util.List; import org.apache.lucene.queryParser.ParseException; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.zanata.dao.ProjectDAO; import org.zanata.model.HProject; import lombok.Getter; import lombok.Setter; +import org.zanata.util.ServiceLocator; /** * @see org.zanata.action.EntityPagedListDataModel @@ -54,8 +53,7 @@ public QueryProjectPagedListDataModel(int pageSize) { @Override public DataPage fetchPage(int startRow, int pageSize) { ProjectDAO projectDAO = - (ProjectDAO) Component.getInstance(ProjectDAO.class, - ScopeType.STATELESS); + ServiceLocator.instance().getInstance(ProjectDAO.class); try { List proj = diff --git a/zanata-war/src/main/java/org/zanata/action/TranslationMemoryAction.java b/zanata-war/src/main/java/org/zanata/action/TranslationMemoryAction.java index bd9c19f11f..160753e0f0 100644 --- a/zanata-war/src/main/java/org/zanata/action/TranslationMemoryAction.java +++ b/zanata-war/src/main/java/org/zanata/action/TranslationMemoryAction.java @@ -32,7 +32,6 @@ import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @@ -49,6 +48,7 @@ import org.zanata.rest.service.TranslationMemoryResourceService; import org.zanata.service.AsyncTaskManagerService; import org.zanata.service.SlugEntityService; +import org.zanata.util.ServiceLocator; /** * Controller class for the Translation Memory UI. @@ -113,8 +113,9 @@ public void clearTransMemory(final String transMemorySlug) { @Override public Void call() throws Exception { TranslationMemoryResourceService tmResource = - (TranslationMemoryResourceService) Component - .getInstance("translationMemoryResource"); + ServiceLocator.instance().getInstance( + "translationMemoryService", + TranslationMemoryResourceService.class); String msg = tmResource.deleteTranslationUnitsUnguarded( transMemorySlug).toString(); diff --git a/zanata-war/src/main/java/org/zanata/action/UserSettingsAction.java b/zanata-war/src/main/java/org/zanata/action/UserSettingsAction.java index 92bd368245..abe8f51dba 100644 --- a/zanata-war/src/main/java/org/zanata/action/UserSettingsAction.java +++ b/zanata-war/src/main/java/org/zanata/action/UserSettingsAction.java @@ -39,7 +39,6 @@ import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotEmpty; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.In; @@ -73,6 +72,7 @@ import com.google.common.collect.Lists; import org.zanata.util.ComparatorUtil; +import org.zanata.util.ServiceLocator; import org.zanata.util.ZanataMessages; /** @@ -371,10 +371,10 @@ public void afterOpenIdAuth(OpenIdAuthenticationResult result) { this.newCredentials.setEmail(result.getEmail()); // NB: Seam component injection won't work on callbacks EntityManager em = - (EntityManager) Component.getInstance("entityManager"); + ServiceLocator.instance().getEntityManager(); CredentialsDAO credentialsDAO = - (CredentialsDAO) Component - .getInstance(CredentialsDAO.class); + ServiceLocator.instance().getInstance( + CredentialsDAO.class); Conversation.instance().begin(true, false); // (To retain // messages) diff --git a/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java b/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java index 2de7eeea09..2c7521b7fb 100644 --- a/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java +++ b/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java @@ -32,7 +32,6 @@ import org.hibernate.Session; import org.hibernate.criterion.NaturalIdentifier; import org.hibernate.criterion.Restrictions; -import org.jboss.seam.Component; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.security.Restrict; @@ -56,6 +55,7 @@ import org.zanata.ui.autocomplete.LocaleAutocomplete; import org.zanata.ui.autocomplete.MaintainerAutocomplete; import org.zanata.util.ComparatorUtil; +import org.zanata.util.ServiceLocator; import org.zanata.util.ZanataMessages; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; @@ -288,13 +288,11 @@ public void onSelectItemAction() { private class VersionAutocomplete extends AbstractAutocomplete { - private ProjectIterationDAO projectIterationDAO = - (ProjectIterationDAO) Component - .getInstance(ProjectIterationDAO.class); + private ProjectIterationDAO projectIterationDAO = ServiceLocator + .instance().getInstance(ProjectIterationDAO.class); - private VersionGroupService versionGroupServiceImpl = - (VersionGroupService) Component - .getInstance(VersionGroupServiceImpl.class); + private VersionGroupService versionGroupServiceImpl = ServiceLocator + .instance().getInstance(VersionGroupServiceImpl.class); @Override public List suggest() { diff --git a/zanata-war/src/main/java/org/zanata/action/VersionHomeAction.java b/zanata-war/src/main/java/org/zanata/action/VersionHomeAction.java index d6b1cc36a5..aeb098be8a 100644 --- a/zanata-war/src/main/java/org/zanata/action/VersionHomeAction.java +++ b/zanata-war/src/main/java/org/zanata/action/VersionHomeAction.java @@ -37,7 +37,6 @@ import javax.validation.ConstraintViolationException; import org.apache.commons.lang.StringUtils; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @@ -81,6 +80,7 @@ import org.zanata.ui.InMemoryListFilter; import org.zanata.ui.model.statistic.WordStatistic; import org.zanata.util.DateUtil; +import org.zanata.util.ServiceLocator; import org.zanata.util.StatisticsUtil; import org.zanata.util.ZanataMessages; import org.zanata.webtrans.shared.model.DocumentStatus; @@ -850,8 +850,8 @@ public void uploadTranslationFile(HLocale hLocale) { } private class DocumentFilter extends InMemoryListFilter { - private DocumentDAO documentDAO = (DocumentDAO) Component - .getInstance(DocumentDAO.class); + private DocumentDAO documentDAO = + ServiceLocator.instance().getInstance(DocumentDAO.class); @Override protected List fetchAll() { @@ -866,7 +866,7 @@ protected boolean include(HDocument elem, String filter) { }; private class SourceDocumentFilter extends InMemoryListFilter { - private DocumentDAO documentDAO = (DocumentDAO) Component + private DocumentDAO documentDAO = ServiceLocator.instance() .getInstance(DocumentDAO.class); @Override diff --git a/zanata-war/src/main/java/org/zanata/action/validator/DuplicateEmailValidator.java b/zanata-war/src/main/java/org/zanata/action/validator/DuplicateEmailValidator.java index 0adffba16d..693572ff54 100644 --- a/zanata-war/src/main/java/org/zanata/action/validator/DuplicateEmailValidator.java +++ b/zanata-war/src/main/java/org/zanata/action/validator/DuplicateEmailValidator.java @@ -25,9 +25,8 @@ import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.zanata.dao.PersonDAO; +import org.zanata.util.ServiceLocator; public class DuplicateEmailValidator implements ConstraintValidator, Serializable { @@ -40,8 +39,7 @@ public boolean isValid(String string, ConstraintValidatorContext context) { if (string.length() == 0) return true; PersonDAO personDAO = - (PersonDAO) Component.getInstance(PersonDAO.class, - ScopeType.STATELESS); + ServiceLocator.instance().getInstance(PersonDAO.class); return personDAO.findByEmail(string) == null; } diff --git a/zanata-war/src/main/java/org/zanata/async/AsynchronousTaskExecutor.java b/zanata-war/src/main/java/org/zanata/async/AsynchronousTaskExecutor.java index aaccaebefc..805df2840d 100644 --- a/zanata-war/src/main/java/org/zanata/async/AsynchronousTaskExecutor.java +++ b/zanata-war/src/main/java/org/zanata/async/AsynchronousTaskExecutor.java @@ -24,7 +24,6 @@ import javax.security.auth.Subject; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Name; @@ -37,6 +36,7 @@ import org.zanata.dao.AccountDAO; import org.zanata.model.HAccount; import org.zanata.security.ZanataJpaIdentityStore; +import org.zanata.util.ServiceLocator; /** * This class executes a Runnable Process asynchronously. Do not use this class @@ -110,13 +110,13 @@ private static void prepareSecurityContext(String username) { // Only if it's an authenticated task should it try and do this // injection AccountDAO accountDAO = - (AccountDAO) Component.getInstance(AccountDAO.class); + ServiceLocator.instance().getInstance(AccountDAO.class); ZanataJpaIdentityStore idStore = - (ZanataJpaIdentityStore) Component - .getInstance(ZanataJpaIdentityStore.class); + ServiceLocator.instance().getInstance( + ZanataJpaIdentityStore.class); AuthenticationEvents authEvts = - (AuthenticationEvents) Component - .getInstance(AuthenticationEvents.class); + ServiceLocator.instance().getInstance( + AuthenticationEvents.class); HAccount authenticatedAccount = accountDAO.getByUsername(username); authEvts.injectAuthenticatedPersonIntoWorkingMemory(authenticatedAccount); idStore.setAuthenticateUser(authenticatedAccount); diff --git a/zanata-war/src/main/java/org/zanata/async/tasks/DocumentCopyTransTask.java b/zanata-war/src/main/java/org/zanata/async/tasks/DocumentCopyTransTask.java index 4dc855700e..5b6f72104a 100644 --- a/zanata-war/src/main/java/org/zanata/async/tasks/DocumentCopyTransTask.java +++ b/zanata-war/src/main/java/org/zanata/async/tasks/DocumentCopyTransTask.java @@ -22,7 +22,6 @@ import java.util.List; -import org.jboss.seam.Component; import org.zanata.model.HCopyTransOptions; import org.zanata.model.HDocument; import org.zanata.model.HLocale; @@ -30,6 +29,7 @@ import org.zanata.service.LocaleService; import org.zanata.service.impl.CopyTransServiceImpl; import org.zanata.service.impl.LocaleServiceImpl; +import org.zanata.util.ServiceLocator; /** * Copy Trans task that runs copy trans on a single document and all languages @@ -50,7 +50,7 @@ public DocumentCopyTransTask(HDocument document, @Override protected int getMaxProgress() { LocaleService localeService = - (LocaleService) Component.getInstance(LocaleServiceImpl.class); + ServiceLocator.instance().getInstance(LocaleServiceImpl.class); List localeList = localeService.getSupportedLanguageByProjectIteration(document .getProjectIteration().getProject().getSlug(), document @@ -62,8 +62,8 @@ protected int getMaxProgress() { @Override protected void callCopyTrans() { CopyTransService copyTransServiceImpl = - (CopyTransService) Component - .getInstance(CopyTransServiceImpl.class); + ServiceLocator.instance().getInstance( + CopyTransServiceImpl.class); copyTransServiceImpl.copyTransForDocument(document, copyTransOptions); } } diff --git a/zanata-war/src/main/java/org/zanata/async/tasks/IterationCopyTransTask.java b/zanata-war/src/main/java/org/zanata/async/tasks/IterationCopyTransTask.java index fd52f4a0e0..9226420c39 100644 --- a/zanata-war/src/main/java/org/zanata/async/tasks/IterationCopyTransTask.java +++ b/zanata-war/src/main/java/org/zanata/async/tasks/IterationCopyTransTask.java @@ -22,7 +22,6 @@ import java.util.List; -import org.jboss.seam.Component; import org.zanata.model.HCopyTransOptions; import org.zanata.model.HLocale; import org.zanata.model.HProjectIteration; @@ -30,6 +29,7 @@ import org.zanata.service.LocaleService; import org.zanata.service.impl.CopyTransServiceImpl; import org.zanata.service.impl.LocaleServiceImpl; +import org.zanata.util.ServiceLocator; /** * Copy Trans task that runs copy trans for a whole project iteration and all @@ -50,7 +50,7 @@ public IterationCopyTransTask(HProjectIteration projectIteration, @Override protected int getMaxProgress() { LocaleService localeService = - (LocaleService) Component.getInstance(LocaleServiceImpl.class); + ServiceLocator.instance().getInstance(LocaleServiceImpl.class); List localeList = localeService.getSupportedLanguageByProjectIteration( projectIteration.getProject().getSlug(), @@ -62,8 +62,8 @@ protected int getMaxProgress() { @Override protected void callCopyTrans() { CopyTransService copyTransServiceImpl = - (CopyTransService) Component - .getInstance(CopyTransServiceImpl.class); + ServiceLocator.instance().getInstance( + CopyTransServiceImpl.class); copyTransServiceImpl.copyTransForIteration(projectIteration, copyTransOptions); } diff --git a/zanata-war/src/main/java/org/zanata/async/tasks/ZipFileBuildTask.java b/zanata-war/src/main/java/org/zanata/async/tasks/ZipFileBuildTask.java index 11c3f1178f..cfa2ebddb0 100644 --- a/zanata-war/src/main/java/org/zanata/async/tasks/ZipFileBuildTask.java +++ b/zanata-war/src/main/java/org/zanata/async/tasks/ZipFileBuildTask.java @@ -28,7 +28,6 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import org.jboss.seam.Component; import org.zanata.adapter.po.PoWriter2; import org.zanata.async.AsyncTask; import org.zanata.async.AsyncTaskHandle; @@ -48,6 +47,7 @@ import org.zanata.service.impl.FileSystemServiceImpl; import com.google.common.base.Optional; +import org.zanata.util.ServiceLocator; /** * This is an asynchronous task to build a zip file containing all files for a @@ -91,7 +91,7 @@ private AsyncTaskHandle buildHandle() { // Max documents to process DocumentDAO documentDAO = - (DocumentDAO) Component.getInstance(DocumentDAO.class); + ServiceLocator.instance().getInstance(DocumentDAO.class); final List allIterationDocs = documentDAO .getAllByProjectIteration(projectSlug, iterationSlug); @@ -106,20 +106,19 @@ private AsyncTaskHandle buildHandle() { public String call() throws Exception { // Needed Components DocumentDAO documentDAO = - (DocumentDAO) Component.getInstance(DocumentDAO.class); + ServiceLocator.instance().getInstance(DocumentDAO.class); LocaleDAO localeDAO = - (LocaleDAO) Component.getInstance(LocaleDAO.class); + ServiceLocator.instance().getInstance(LocaleDAO.class); ResourceUtils resourceUtils = - (ResourceUtils) Component.getInstance(ResourceUtils.class); + ServiceLocator.instance().getInstance(ResourceUtils.class); TextFlowTargetDAO textFlowTargetDAO = - (TextFlowTargetDAO) Component - .getInstance(TextFlowTargetDAO.class); + ServiceLocator.instance().getInstance(TextFlowTargetDAO.class); FileSystemService fileSystemService = - (FileSystemService) Component - .getInstance(FileSystemServiceImpl.class); + ServiceLocator.instance().getInstance( + FileSystemServiceImpl.class); ConfigurationService configurationService = - (ConfigurationService) Component - .getInstance(ConfigurationServiceImpl.class); + ServiceLocator.instance().getInstance( + ConfigurationServiceImpl.class); final String projectDirectory = projectSlug + "-" + iterationSlug + "/"; final HLocale hLocale = diff --git a/zanata-war/src/main/java/org/zanata/config/DatabaseBackedConfig.java b/zanata-war/src/main/java/org/zanata/config/DatabaseBackedConfig.java index 14f740c6e8..2ade2e1d03 100644 --- a/zanata-war/src/main/java/org/zanata/config/DatabaseBackedConfig.java +++ b/zanata-war/src/main/java/org/zanata/config/DatabaseBackedConfig.java @@ -24,7 +24,6 @@ import java.util.HashMap; import java.util.Map; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Create; diff --git a/zanata-war/src/main/java/org/zanata/limits/RateLimitManager.java b/zanata-war/src/main/java/org/zanata/limits/RateLimitManager.java index 4fe55c558a..e6feae77a4 100644 --- a/zanata-war/src/main/java/org/zanata/limits/RateLimitManager.java +++ b/zanata-war/src/main/java/org/zanata/limits/RateLimitManager.java @@ -8,7 +8,6 @@ import com.google.common.annotations.VisibleForTesting; import lombok.AccessLevel; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Create; @@ -24,6 +23,7 @@ import com.google.common.collect.Lists; import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.zanata.util.ServiceLocator; /** * @author Patrick Huang call() throws Exception { TranslationService translationServiceImpl = - (TranslationService) Component - .getInstance(TranslationServiceImpl.class); + ServiceLocator.instance().getInstance( + TranslationServiceImpl.class); // Translate List messages = diff --git a/zanata-war/src/main/java/org/zanata/rest/service/ResourceUtils.java b/zanata-war/src/main/java/org/zanata/rest/service/ResourceUtils.java index 16fc6908bf..a1909ce2b9 100644 --- a/zanata-war/src/main/java/org/zanata/rest/service/ResourceUtils.java +++ b/zanata-war/src/main/java/org/zanata/rest/service/ResourceUtils.java @@ -34,7 +34,6 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.fedorahosted.tennera.jgettext.HeaderFields; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @@ -71,6 +70,7 @@ import org.zanata.rest.dto.resource.TextFlow; import org.zanata.rest.dto.resource.TextFlowTarget; import org.zanata.rest.dto.resource.TranslationsResource; +import org.zanata.util.ServiceLocator; import org.zanata.util.StringUtil; import com.google.common.base.Optional; @@ -919,8 +919,9 @@ private String getSystemVersion() { try { return ZANATA_GENERATOR_PREFIX + " " - + ((ApplicationConfiguration) Component.getInstance( - ApplicationConfiguration.class)).getVersion(); + + (ServiceLocator.instance() + .getInstance(ApplicationConfiguration.class)) + .getVersion(); } catch (Exception e) { return ZANATA_GENERATOR_PREFIX + " UNKNOWN"; } diff --git a/zanata-war/src/main/java/org/zanata/seam/FixedSafeActions.java b/zanata-war/src/main/java/org/zanata/seam/FixedSafeActions.java index 4d46648881..1e5a612a8a 100644 --- a/zanata-war/src/main/java/org/zanata/seam/FixedSafeActions.java +++ b/zanata-war/src/main/java/org/zanata/seam/FixedSafeActions.java @@ -12,13 +12,13 @@ import javax.faces.context.FacesContext; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.contexts.Contexts; +import org.zanata.util.ServiceLocator; /** * Maintains a set of "safe" actions that may be performed by <s:link/>, @@ -99,8 +99,7 @@ public static FixedSafeActions instance() { if (!Contexts.isApplicationContextActive()) { throw new IllegalStateException("No active application context"); } - return (FixedSafeActions) Component.getInstance(FixedSafeActions.class, - ScopeType.APPLICATION); + return ServiceLocator.instance().getInstance(FixedSafeActions.class); } } diff --git a/zanata-war/src/main/java/org/zanata/seam/interceptor/MonitoringWrapper.java b/zanata-war/src/main/java/org/zanata/seam/interceptor/MonitoringWrapper.java index bf22b54283..089300944b 100644 --- a/zanata-war/src/main/java/org/zanata/seam/interceptor/MonitoringWrapper.java +++ b/zanata-war/src/main/java/org/zanata/seam/interceptor/MonitoringWrapper.java @@ -28,12 +28,11 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.jboss.seam.servlet.ContextualHttpServletRequest; import org.zanata.security.ZanataIdentity; import net.bull.javamelody.MonitoringFilter; +import org.zanata.util.ServiceLocator; public class MonitoringWrapper extends MonitoringFilter { @@ -49,8 +48,8 @@ public void doFilter(final ServletRequest request, @Override public void process() throws Exception { ZanataIdentity identity = - (ZanataIdentity) Component.getInstance( - ZanataIdentity.class, ScopeType.SESSION); + ServiceLocator.instance().getInstance( + ZanataIdentity.class); if (identity == null || !identity.isLoggedIn()) { String signInUrl = httpRequest.getContextPath() diff --git a/zanata-war/src/main/java/org/zanata/seam/mail/ZanataMailSession.java b/zanata-war/src/main/java/org/zanata/seam/mail/ZanataMailSession.java index 30b107f7b0..156342e652 100644 --- a/zanata-war/src/main/java/org/zanata/seam/mail/ZanataMailSession.java +++ b/zanata-war/src/main/java/org/zanata/seam/mail/ZanataMailSession.java @@ -20,7 +20,6 @@ */ package org.zanata.seam.mail; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; @@ -28,6 +27,7 @@ import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.mail.MailSession; import org.zanata.ApplicationConfiguration; +import org.zanata.util.ServiceLocator; /** * Overrides Seam's default MailSession component to dynamically define @@ -53,8 +53,8 @@ public ZanataMailSession(String transport) { protected void setup() { ApplicationConfiguration appConfig = - (ApplicationConfiguration) Component - .getInstance(ApplicationConfiguration.class); + ServiceLocator.instance().getInstance( + ApplicationConfiguration.class); // Override default properties setHost(appConfig.getEmailServerHost()); diff --git a/zanata-war/src/main/java/org/zanata/seam/scope/ConversationScopeMessages.java b/zanata-war/src/main/java/org/zanata/seam/scope/ConversationScopeMessages.java index c0d5ec69a2..431c549992 100644 --- a/zanata-war/src/main/java/org/zanata/seam/scope/ConversationScopeMessages.java +++ b/zanata-war/src/main/java/org/zanata/seam/scope/ConversationScopeMessages.java @@ -26,13 +26,13 @@ import java.util.List; import javax.faces.application.FacesMessage; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Begin; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import com.google.common.collect.Lists; +import org.zanata.util.ServiceLocator; /** * @author Alex Eng aeng@redhat.com @@ -68,7 +68,7 @@ public boolean hasMessages() { } public static ConversationScopeMessages instance() { - return (ConversationScopeMessages) Component - .getInstance(ConversationScopeMessages.class); + return ServiceLocator.instance().getInstance( + ConversationScopeMessages.class); } } diff --git a/zanata-war/src/main/java/org/zanata/security/AuthenticationManager.java b/zanata-war/src/main/java/org/zanata/security/AuthenticationManager.java index 7daa18ee97..d2f1953af4 100644 --- a/zanata-war/src/main/java/org/zanata/security/AuthenticationManager.java +++ b/zanata-war/src/main/java/org/zanata/security/AuthenticationManager.java @@ -23,7 +23,6 @@ import java.util.List; import org.apache.commons.lang.StringUtils; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.In; @@ -39,6 +38,7 @@ import org.zanata.security.openid.OpenIdAuthCallback; import org.zanata.security.openid.OpenIdProviderType; import org.zanata.service.UserAccountService; +import org.zanata.util.ServiceLocator; /** * Centralizes all attempts to authenticate locally or externally. @@ -155,8 +155,7 @@ public String jaasLogin() { public void kerberosLogin() { if (applicationConfiguration.isKerberosAuth()) { SpNegoIdentity spNegoIdentity = - (SpNegoIdentity) Component.getInstance( - SpNegoIdentity.class, ScopeType.SESSION); + ServiceLocator.instance().getInstance(SpNegoIdentity.class); spNegoIdentity.authenticate(); if (!isNewUser() && !isAuthenticatedAccountWaitingForActivation() && isAccountEnabledAndActivated()) { diff --git a/zanata-war/src/main/java/org/zanata/security/FedoraOpenIdPhaseListener.java b/zanata-war/src/main/java/org/zanata/security/FedoraOpenIdPhaseListener.java index 3e1524d31c..8289e47154 100644 --- a/zanata-war/src/main/java/org/zanata/security/FedoraOpenIdPhaseListener.java +++ b/zanata-war/src/main/java/org/zanata/security/FedoraOpenIdPhaseListener.java @@ -29,10 +29,10 @@ import javax.faces.event.PhaseListener; import javax.servlet.http.HttpServletResponse; -import org.jboss.seam.Component; import org.jboss.seam.navigation.Pages; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.zanata.util.ServiceLocator; public class FedoraOpenIdPhaseListener implements PhaseListener { private static final Logger LOGGER = LoggerFactory @@ -48,7 +48,7 @@ public void beforePhase(PhaseEvent event) { } ZanataOpenId openid = - (ZanataOpenId) Component.getInstance(ZanataOpenId.class); + ServiceLocator.instance().getInstance(ZanataOpenId.class); if (openid.getId() == null) { try { sendXRDS(); @@ -74,7 +74,7 @@ private void sendXRDS() throws IOException { // XXX ENCODE THE URL! ZanataOpenId open = - (ZanataOpenId) Component.getInstance(ZanataOpenId.class); + ServiceLocator.instance().getInstance(ZanataOpenId.class); out.println("" + "http://specs.openid.net/auth/2.0/return_to" diff --git a/zanata-war/src/main/java/org/zanata/security/OpenIdLoginModule.java b/zanata-war/src/main/java/org/zanata/security/OpenIdLoginModule.java index f2d709aea7..eb675ff1bd 100644 --- a/zanata-war/src/main/java/org/zanata/security/OpenIdLoginModule.java +++ b/zanata-war/src/main/java/org/zanata/security/OpenIdLoginModule.java @@ -31,8 +31,7 @@ import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; +import org.zanata.util.ServiceLocator; public class OpenIdLoginModule implements LoginModule { protected Set roles = new HashSet(); @@ -68,8 +67,7 @@ public boolean login() throws LoginException { callbackHandler.handle(new Callback[] { cbName, cbPassword }); username = cbName.getName(); ZanataOpenId openid = - (ZanataOpenId) Component.getInstance(ZanataOpenId.class, - ScopeType.SESSION); + ServiceLocator.instance().getInstance(ZanataOpenId.class); openid.login(ZanataIdentity.instance().getCredentials()); } catch (Exception ex) { LoginException le = new LoginException(ex.getMessage()); diff --git a/zanata-war/src/main/java/org/zanata/security/SecurityFunctions.java b/zanata-war/src/main/java/org/zanata/security/SecurityFunctions.java index f3cde1c780..e2ee8a17d7 100644 --- a/zanata-war/src/main/java/org/zanata/security/SecurityFunctions.java +++ b/zanata-war/src/main/java/org/zanata/security/SecurityFunctions.java @@ -20,7 +20,6 @@ */ package org.zanata.security; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.security.management.JpaIdentityStore; import org.zanata.dao.PersonDAO; @@ -28,6 +27,7 @@ import org.zanata.model.HAccountRole; import org.zanata.model.HLocale; import org.zanata.model.HProject; +import org.zanata.util.ServiceLocator; /** * Contains static helper functions used inside the rules files. @@ -61,7 +61,7 @@ public static boolean isUserAllowedAccess(HProject project) { public static boolean isUserTranslatorOfLanguage(HLocale lang) { HAccount authenticatedAccount = getAuthenticatedAccount(); PersonDAO personDAO = - (PersonDAO) Component.getInstance(PersonDAO.class); + ServiceLocator.instance().getInstance(PersonDAO.class); if (authenticatedAccount != null) { return personDAO.isUserInLanguageTeamWithRoles( @@ -74,7 +74,7 @@ public static boolean isUserTranslatorOfLanguage(HLocale lang) { public static boolean isUserReviewerOfLanguage(HLocale lang) { HAccount authenticatedAccount = getAuthenticatedAccount(); PersonDAO personDAO = - (PersonDAO) Component.getInstance(PersonDAO.class); + ServiceLocator.instance().getInstance(PersonDAO.class); if (authenticatedAccount != null) { return personDAO.isUserInLanguageTeamWithRoles( @@ -87,7 +87,7 @@ public static boolean isUserReviewerOfLanguage(HLocale lang) { public static boolean isUserCoordinatorOfLanguage(HLocale lang) { HAccount authenticatedAccount = getAuthenticatedAccount(); PersonDAO personDAO = - (PersonDAO) Component.getInstance(PersonDAO.class); + ServiceLocator.instance().getInstance(PersonDAO.class); if (authenticatedAccount != null) { return personDAO.isUserInLanguageTeamWithRoles( @@ -100,7 +100,7 @@ public static boolean isUserCoordinatorOfLanguage(HLocale lang) { public static boolean isLanguageTeamMember(HLocale lang) { HAccount authenticatedAccount = getAuthenticatedAccount(); PersonDAO personDAO = - (PersonDAO) Component.getInstance(PersonDAO.class); + ServiceLocator.instance().getInstance(PersonDAO.class); if (authenticatedAccount != null) { return personDAO.isUserInLanguageTeamWithRoles( @@ -111,12 +111,12 @@ public static boolean isLanguageTeamMember(HLocale lang) { } private static final ZanataIdentity getIdentity() { - return (ZanataIdentity) Component.getInstance(ZanataIdentity.class, - ScopeType.SESSION); + return ServiceLocator.instance().getInstance(ZanataIdentity.class); } private static final HAccount getAuthenticatedAccount() { - return (HAccount) Component.getInstance( - JpaIdentityStore.AUTHENTICATED_USER, ScopeType.SESSION); + return ServiceLocator.instance().getInstance( + JpaIdentityStore.AUTHENTICATED_USER, ScopeType.SESSION, + HAccount.class); } } diff --git a/zanata-war/src/main/java/org/zanata/security/SpNegoIdentity.java b/zanata-war/src/main/java/org/zanata/security/SpNegoIdentity.java index 3dcf51fc2c..54873f28c8 100644 --- a/zanata-war/src/main/java/org/zanata/security/SpNegoIdentity.java +++ b/zanata-war/src/main/java/org/zanata/security/SpNegoIdentity.java @@ -28,8 +28,6 @@ import javax.faces.context.FacesContext; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; @@ -39,6 +37,7 @@ import org.jboss.security.SecurityContextAssociation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.zanata.util.ServiceLocator; @Name("org.jboss.seam.security.spNegoIdentity") @Scope(SESSION) @@ -53,8 +52,7 @@ public class SpNegoIdentity implements Serializable { public void authenticate() { ZanataIdentity identity = - (ZanataIdentity) Component.getInstance(ZanataIdentity.class, - ScopeType.SESSION); + ServiceLocator.instance().getInstance(ZanataIdentity.class); if (identity.isLoggedIn()) { if (Events.exists()) { Events.instance().raiseEvent(Identity.EVENT_ALREADY_LOGGED_IN); @@ -84,8 +82,7 @@ public void authenticate() { public void login() { try { ZanataIdentity identity = - (ZanataIdentity) Component.getInstance( - ZanataIdentity.class, ScopeType.SESSION); + ServiceLocator.instance().getInstance(ZanataIdentity.class); if (identity.isLoggedIn()) { if (Events.exists()) { Events.instance().raiseEvent( diff --git a/zanata-war/src/main/java/org/zanata/security/ZanataIdentity.java b/zanata-war/src/main/java/org/zanata/security/ZanataIdentity.java index a4ee94ac8f..251b1a5cfc 100644 --- a/zanata-war/src/main/java/org/zanata/security/ZanataIdentity.java +++ b/zanata-war/src/main/java/org/zanata/security/ZanataIdentity.java @@ -28,8 +28,6 @@ import org.drools.FactHandle; import org.drools.StatefulSession; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Observer; @@ -47,6 +45,7 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; import org.zanata.model.HAccount; +import org.zanata.util.ServiceLocator; import static org.jboss.seam.ScopeType.SESSION; import static org.jboss.seam.annotations.Install.APPLICATION; @@ -89,8 +88,7 @@ public static ZanataIdentity instance() { } ZanataIdentity instance = - (ZanataIdentity) Component.getInstance(ZanataIdentity.class, - ScopeType.SESSION); + ServiceLocator.instance().getInstance(ZanataIdentity.class); if (instance == null) { throw new IllegalStateException("No Identity could be created"); @@ -259,8 +257,8 @@ public String login(AuthenticationType authType) { @Nullable public String getAccountUsername() { HAccount authenticatedAccount = - (HAccount) Component - .getInstance(JpaIdentityStore.AUTHENTICATED_USER); + ServiceLocator.instance().getInstance( + JpaIdentityStore.AUTHENTICATED_USER, HAccount.class); if (authenticatedAccount != null) { return authenticatedAccount.getUsername(); } diff --git a/zanata-war/src/main/java/org/zanata/security/ZanataJpaIdentityStore.java b/zanata-war/src/main/java/org/zanata/security/ZanataJpaIdentityStore.java index e345375539..e20f488b32 100644 --- a/zanata-war/src/main/java/org/zanata/security/ZanataJpaIdentityStore.java +++ b/zanata-war/src/main/java/org/zanata/security/ZanataJpaIdentityStore.java @@ -20,7 +20,6 @@ */ package org.zanata.security; -import org.jboss.seam.Component; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; @@ -37,6 +36,7 @@ import org.jboss.seam.util.AnnotatedBeanProperty; import org.zanata.dao.AccountDAO; import org.zanata.model.type.UserApiKey; +import org.zanata.util.ServiceLocator; import static org.jboss.seam.ScopeType.APPLICATION; @@ -158,7 +158,7 @@ public boolean isNewUser(String username) { // also look in the credentials table if (user == null) { AccountDAO accountDAO = - (AccountDAO) Component.getInstance(AccountDAO.class); + ServiceLocator.instance().getInstance(AccountDAO.class); user = accountDAO.getByCredentialsId(username); } return user == null; diff --git a/zanata-war/src/main/java/org/zanata/security/ZanataOpenId.java b/zanata-war/src/main/java/org/zanata/security/ZanataOpenId.java index 2fcccacfdc..f45bb65189 100644 --- a/zanata-war/src/main/java/org/zanata/security/ZanataOpenId.java +++ b/zanata-war/src/main/java/org/zanata/security/ZanataOpenId.java @@ -27,8 +27,6 @@ import javax.faces.context.ExternalContext; import javax.servlet.http.HttpServletRequest; -import org.jboss.seam.Component; -import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.In; @@ -43,7 +41,6 @@ import org.jboss.seam.security.Identity; import org.jboss.seam.security.openid.OpenIdPrincipal; import org.openid4java.OpenIDException; -import org.openid4java.consumer.ConsumerException; import org.openid4java.consumer.ConsumerManager; import org.openid4java.consumer.VerificationResult; import org.openid4java.discovery.DiscoveryInformation; @@ -65,6 +62,7 @@ import org.zanata.security.openid.OpenIdProvider; import org.zanata.security.openid.OpenIdProviderType; import org.zanata.security.openid.YahooOpenIdProvider; +import org.zanata.util.ServiceLocator; @Name("org.jboss.seam.security.zanataOpenId") @Scope(SESSION) @@ -233,10 +231,9 @@ public void init() { authResult = new OpenIdAuthenticationResult(); // TODO inject these identity = - (ZanataIdentity) Component.getInstance(ZanataIdentity.class, - ScopeType.SESSION); + ServiceLocator.instance().getInstance(ZanataIdentity.class); applicationConfiguration = - (ApplicationConfiguration) Component.getInstance( + ServiceLocator.instance().getInstance( ApplicationConfiguration.class); } diff --git a/zanata-war/src/main/java/org/zanata/service/impl/AsyncTaskManagerServiceImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/AsyncTaskManagerServiceImpl.java index 1618cf709b..3c63cdb236 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/AsyncTaskManagerServiceImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/AsyncTaskManagerServiceImpl.java @@ -23,7 +23,6 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.collect.Maps; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; @@ -32,6 +31,7 @@ import org.zanata.async.AsyncTask; import org.zanata.async.TaskExecutor; import org.zanata.service.AsyncTaskManagerService; +import org.zanata.util.ServiceLocator; import java.io.Serializable; import java.util.Collection; @@ -68,7 +68,7 @@ public class AsyncTaskManagerServiceImpl implements AsyncTaskManagerService { public > String startTask( AsyncTask task) { TaskExecutor taskExecutor = - (TaskExecutor) Component.getInstance(TaskExecutor.class); + ServiceLocator.instance().getInstance(TaskExecutor.class); AsyncTaskHandle handle = taskExecutor.startTask(task); Long taskKey; taskKey = generateNextAvailableKey(); diff --git a/zanata-war/src/main/java/org/zanata/service/impl/LockManagerServiceImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/LockManagerServiceImpl.java index 6f3d2e9ff0..74f8b1bbc3 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/LockManagerServiceImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/LockManagerServiceImpl.java @@ -23,7 +23,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; @@ -33,6 +32,7 @@ import org.zanata.lock.LockNotAcquiredException; import org.zanata.model.HAccount; import org.zanata.service.LockManagerService; +import org.zanata.util.ServiceLocator; /** * Default implementation of the {@link LockManagerService} interface. Manages @@ -79,8 +79,8 @@ public void release(Lock l) { private String getCurrentUser() { HAccount user = - (HAccount) Component - .getInstance(JpaIdentityStore.AUTHENTICATED_USER); + ServiceLocator.instance().getInstance( + JpaIdentityStore.AUTHENTICATED_USER, HAccount.class); String newLocker = user != null ? user.getUsername() : "unknown"; return newLocker; } diff --git a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java index 65a2dd71f7..21aa7aaa9e 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/TranslationStateCacheImpl.java @@ -31,7 +31,6 @@ import lombok.Getter; import net.sf.ehcache.CacheManager; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Create; @@ -49,6 +48,7 @@ import org.zanata.model.HTextFlowTarget; import org.zanata.service.TranslationStateCache; import org.zanata.service.ValidationFactoryProvider; +import org.zanata.util.ServiceLocator; import org.zanata.webtrans.shared.model.DocumentId; import org.zanata.webtrans.shared.model.DocumentStatus; import org.zanata.webtrans.shared.model.ValidationAction; @@ -164,11 +164,12 @@ private void updateDocStatusCache(Long documentId, LocaleId localeId, } DocumentDAO getDocumentDAO() { - return (DocumentDAO) Component.getInstance(DocumentDAO.class); + return ServiceLocator.instance().getInstance(DocumentDAO.class); } TextFlowTargetDAO getTextFlowTargetDAO() { - TextFlowTargetDAO textFlowTargetDAO = (TextFlowTargetDAO) Component.getInstance(TextFlowTargetDAO.class); + TextFlowTargetDAO textFlowTargetDAO = + ServiceLocator.instance().getInstance(TextFlowTargetDAO.class); return textFlowTargetDAO; } @@ -179,7 +180,7 @@ private void invalidateTargetValidationCache(Long textFlowTargetId) { private static class HTextFlowTargetIdLoader extends CacheLoader { DocumentDAO getDocumentDAO() { - return (DocumentDAO) Component.getInstance(DocumentDAO.class); + return ServiceLocator.instance().getInstance(DocumentDAO.class); } @Override diff --git a/zanata-war/src/main/java/org/zanata/service/impl/VersionManager.java b/zanata-war/src/main/java/org/zanata/service/impl/VersionManager.java index 4a5f26d888..834c27111c 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/VersionManager.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/VersionManager.java @@ -7,8 +7,7 @@ import org.jboss.seam.annotations.Scope; @Name("versionManager") -// Singleton with no state -@Scope(ScopeType.APPLICATION) +@Scope(ScopeType.STATELESS) @Slf4j public class VersionManager { diff --git a/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java index f12c940384..b9dd2119df 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/VersionStateCacheImpl.java @@ -24,7 +24,6 @@ import net.sf.ehcache.CacheManager; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.Destroy; @@ -131,8 +130,8 @@ private static class VersionStatisticLoader extends CacheLoader { ProjectIterationDAO getProjectIterationDAO() { - return (ProjectIterationDAO) Component - .getInstance(ProjectIterationDAO.class); + return ServiceLocator.instance().getInstance( + ProjectIterationDAO.class); } @Override diff --git a/zanata-war/src/main/java/org/zanata/servlet/FileUploadServlet.java b/zanata-war/src/main/java/org/zanata/servlet/FileUploadServlet.java index bea7505dd3..86acd79f12 100644 --- a/zanata-war/src/main/java/org/zanata/servlet/FileUploadServlet.java +++ b/zanata-war/src/main/java/org/zanata/servlet/FileUploadServlet.java @@ -37,10 +37,7 @@ import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.jboss.seam.Component; import org.jboss.seam.servlet.ContextualHttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.zanata.common.LocaleId; import org.zanata.common.MergeType; import org.zanata.exception.ZanataServiceException; @@ -51,6 +48,7 @@ import org.zanata.service.TranslationService; import org.zanata.service.impl.TranslationFileServiceImpl; import org.zanata.service.impl.TranslationServiceImpl; +import org.zanata.util.ServiceLocator; import org.zanata.webtrans.client.ui.FileUploadDialog; /** @@ -102,11 +100,11 @@ private void doWork(HttpServletRequest req, HttpServletResponse resp) // process only multipart requests if (ServletFileUpload.isMultipartContent(req)) { translationFileServiceImpl = - (TranslationFileService) Component - .getInstance(TranslationFileServiceImpl.class); + ServiceLocator.instance().getInstance( + TranslationFileServiceImpl.class); translationServiceImpl = - (TranslationService) Component - .getInstance(TranslationServiceImpl.class); + ServiceLocator.instance().getInstance( + TranslationServiceImpl.class); // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); diff --git a/zanata-war/src/main/java/org/zanata/ui/AbstractAutocomplete.java b/zanata-war/src/main/java/org/zanata/ui/AbstractAutocomplete.java index 08bcd80755..d3cfb11365 100644 --- a/zanata-war/src/main/java/org/zanata/ui/AbstractAutocomplete.java +++ b/zanata-war/src/main/java/org/zanata/ui/AbstractAutocomplete.java @@ -24,8 +24,8 @@ import java.util.List; -import org.jboss.seam.Component; import org.zanata.seam.scope.ConversationScopeMessages; +import org.zanata.util.ServiceLocator; import org.zanata.util.ZanataMessages; import lombok.Getter; @@ -36,8 +36,8 @@ */ public abstract class AbstractAutocomplete { - protected ZanataMessages zanataMessages = (ZanataMessages) Component - .getInstance(ZanataMessages.class); + protected ZanataMessages zanataMessages = + ServiceLocator.instance().getInstance(ZanataMessages.class); protected ConversationScopeMessages conversationScopeMessages = ConversationScopeMessages.instance(); diff --git a/zanata-war/src/main/java/org/zanata/ui/autocomplete/LocaleAutocomplete.java b/zanata-war/src/main/java/org/zanata/ui/autocomplete/LocaleAutocomplete.java index 2e316f86f7..32ebdbf6cf 100644 --- a/zanata-war/src/main/java/org/zanata/ui/autocomplete/LocaleAutocomplete.java +++ b/zanata-war/src/main/java/org/zanata/ui/autocomplete/LocaleAutocomplete.java @@ -2,11 +2,7 @@ import java.util.Collection; import java.util.List; -import java.util.Set; -import javax.annotation.Nullable; - -import org.jboss.seam.Component; import org.zanata.model.HLocale; import org.zanata.service.LocaleService; import org.zanata.service.impl.LocaleServiceImpl; @@ -16,12 +12,13 @@ import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.Lists; +import org.zanata.util.ServiceLocator; /** * @author Alex Eng aeng@redhat.com */ public abstract class LocaleAutocomplete extends AbstractAutocomplete { - protected LocaleService localeServiceImpl = (LocaleService) Component + protected LocaleService localeServiceImpl = ServiceLocator.instance() .getInstance(LocaleServiceImpl.class); protected List supportedLocales = localeServiceImpl diff --git a/zanata-war/src/main/java/org/zanata/ui/autocomplete/MaintainerAutocomplete.java b/zanata-war/src/main/java/org/zanata/ui/autocomplete/MaintainerAutocomplete.java index 7f2913c543..c00c811db8 100644 --- a/zanata-war/src/main/java/org/zanata/ui/autocomplete/MaintainerAutocomplete.java +++ b/zanata-war/src/main/java/org/zanata/ui/autocomplete/MaintainerAutocomplete.java @@ -2,14 +2,11 @@ import java.util.List; -import org.apache.commons.lang.StringUtils; -import org.jboss.seam.Component; import org.zanata.dao.PersonDAO; import org.zanata.model.HPerson; -import org.zanata.seam.scope.ConversationScopeMessages; import org.zanata.ui.AbstractAutocomplete; import org.zanata.ui.FilterUtil; -import org.zanata.util.ZanataMessages; +import org.zanata.util.ServiceLocator; /** * @author Alex Eng aeng@redhat.com @@ -17,8 +14,8 @@ public abstract class MaintainerAutocomplete extends AbstractAutocomplete { - protected PersonDAO personDAO = (PersonDAO) Component - .getInstance(PersonDAO.class); + protected PersonDAO personDAO = ServiceLocator.instance().getInstance( + PersonDAO.class); protected abstract List getMaintainers(); diff --git a/zanata-war/src/main/java/org/zanata/util/ServiceLocator.java b/zanata-war/src/main/java/org/zanata/util/ServiceLocator.java index 8c59f553b1..acc1c975e2 100644 --- a/zanata-war/src/main/java/org/zanata/util/ServiceLocator.java +++ b/zanata-war/src/main/java/org/zanata/util/ServiceLocator.java @@ -60,6 +60,10 @@ public T getInstance(String name, Class clazz) { return (T) Component.getInstance(name); } + public T getInstance(String name, ScopeType scope, Class clazz) { + return (T) Component.getInstance(name, scope); + } + public EntityManager getEntityManager() { return (EntityManager) Component.getInstance("entityManager"); } diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/HibernateIntegrator.java b/zanata-war/src/main/java/org/zanata/webtrans/server/HibernateIntegrator.java index 3468a47865..cb0c994ddb 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/HibernateIntegrator.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/HibernateIntegrator.java @@ -4,13 +4,12 @@ import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.event.service.spi.EventListenerRegistry; import org.hibernate.event.spi.EventType; -import org.hibernate.event.spi.PostUpdateEventListener; import org.hibernate.integrator.spi.Integrator; import org.hibernate.metamodel.source.MetadataImplementor; import org.hibernate.service.spi.SessionFactoryServiceRegistry; -import org.jboss.seam.Component; import org.jboss.seam.contexts.Contexts; import lombok.extern.slf4j.Slf4j; +import org.zanata.util.ServiceLocator; /** * Hibernate SPI. Register event listener for entity lifecycle events. @@ -28,8 +27,8 @@ public void integrate(Configuration configuration, final EventListenerRegistry eventListenerRegistry = serviceRegistry.getService(EventListenerRegistry.class); TranslationUpdateListener updateListener = - (TranslationUpdateListener) Component - .getInstance(TranslationUpdateListener.class); + ServiceLocator.instance().getInstance( + TranslationUpdateListener.class); log.info("register event listener: {}", updateListener); // We have to use POST_UPDATE not POST_UPDATE_COMMIT. Because we // still need to access some other entities to make transunit. After diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/SeamDispatch.java b/zanata-war/src/main/java/org/zanata/webtrans/server/SeamDispatch.java index 8e71cc7bc7..8eea2c713c 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/SeamDispatch.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/SeamDispatch.java @@ -16,7 +16,6 @@ import net.customware.gwt.dispatch.shared.Result; import net.customware.gwt.dispatch.shared.UnsupportedActionException; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; @@ -26,6 +25,7 @@ import org.jboss.seam.security.AuthorizationException; import org.jboss.seam.security.NotLoggedInException; import org.jboss.seam.web.ServletContexts; +import org.zanata.util.ServiceLocator; import org.zanata.webtrans.shared.auth.AuthenticationError; import org.zanata.webtrans.shared.auth.AuthorizationError; import org.zanata.webtrans.shared.auth.InvalidTokenError; @@ -162,7 +162,7 @@ private , R extends Result> R doExecute(A action, Class handlerClazz = handlers.get(action.getClass()); final ActionHandler handler = - (ActionHandler) Component.getInstance(handlerClazz); + ServiceLocator.instance().getInstance(handlerClazz); if (handler == null) throw new UnsupportedActionException(action); diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationUpdateListener.java b/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationUpdateListener.java index af1bfb346a..8461ae6180 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationUpdateListener.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationUpdateListener.java @@ -6,7 +6,6 @@ import org.hibernate.event.spi.PostInsertEventListener; import org.hibernate.event.spi.PostUpdateEvent; import org.hibernate.event.spi.PostUpdateEventListener; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.In; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationWorkspaceManagerImpl.java b/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationWorkspaceManagerImpl.java index 5f148f8c8f..a94f097fc8 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationWorkspaceManagerImpl.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/TranslationWorkspaceManagerImpl.java @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; -import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Destroy; import org.jboss.seam.annotations.Name; @@ -33,6 +32,10 @@ import org.zanata.service.GravatarService; import org.zanata.service.LocaleService; import org.zanata.service.ValidationService; +import org.zanata.service.impl.GravatarServiceImpl; +import org.zanata.service.impl.LocaleServiceImpl; +import org.zanata.service.impl.ValidationServiceImpl; +import org.zanata.util.ServiceLocator; import org.zanata.webtrans.shared.NoSuchWorkspaceException; import org.zanata.webtrans.shared.auth.EditorClientId; import org.zanata.webtrans.shared.model.Person; @@ -83,25 +86,24 @@ public TranslationWorkspaceManagerImpl() { } AccountDAO getAccountDAO() { - return (AccountDAO) Component.getInstance("accountDAO"); + return ServiceLocator.instance().getInstance(AccountDAO.class); } GravatarService getGravatarService() { - return (GravatarService) Component.getInstance("gravatarServiceImpl"); + return ServiceLocator.instance().getInstance(GravatarServiceImpl.class); } ProjectIterationDAO getProjectIterationDAO() { - return (ProjectIterationDAO) Component - .getInstance("projectIterationDAO"); + return ServiceLocator.instance().getInstance(ProjectIterationDAO.class); } LocaleService getLocaleService() { - return (LocaleService) Component.getInstance("localeServiceImpl"); + return ServiceLocator.instance().getInstance(LocaleServiceImpl.class); } ValidationService getValidationService() { - return (ValidationService) Component - .getInstance("validationServiceImpl"); + return ServiceLocator.instance().getInstance( + ValidationServiceImpl.class); } @Observer(ZanataInit.EVENT_Zanata_Startup) diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitUpdateHelper.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitUpdateHelper.java index c1ff100ba9..7372b25875 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitUpdateHelper.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitUpdateHelper.java @@ -101,7 +101,8 @@ public UpdateTransUnitResult generateUpdateTransUnitResult( } private static TransUnitTransformer getTransUnitTransformer() { - return (TransUnitTransformer) Component.getInstance(TransUnitTransformer.class); + return ServiceLocator.instance() + .getInstance(TransUnitTransformer.class); } private static TransUnitUpdateInfo build(