/* * * Copyright (C) 2007-2015 Licensed to the Comunes Association (CA) under * one or more contributor license agreements (see COPYRIGHT for details). * The CA licenses this file to you under the GNU Affero General Public * License version 3, (the "License"); you may not use this file except in * compliance with the License. This file is part of kune. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package cc.kune.core.server; import static cc.kune.core.server.OutermostCallInterceptor.outermostCall; import cc.kune.chat.server.ChatManager; import cc.kune.chat.server.ChatManagerDefault; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.client.rpcservices.ContentService; import cc.kune.core.client.rpcservices.GroupService; import cc.kune.core.client.rpcservices.I18nService; import cc.kune.core.client.rpcservices.InvitationService; import cc.kune.core.client.rpcservices.SiteService; import cc.kune.core.client.rpcservices.SocialNetService; import cc.kune.core.client.rpcservices.UpDownService; import cc.kune.core.client.rpcservices.UserService; import cc.kune.core.server.access.AccessRightsService; import cc.kune.core.server.access.AccessRightsServiceDefault; import cc.kune.core.server.access.AccessRightsUtils; import cc.kune.core.server.access.AccessService; import cc.kune.core.server.access.AccessServiceDefault; import cc.kune.core.server.access.FinderService; import cc.kune.core.server.access.FinderServiceDefault; import cc.kune.core.server.auth.Authenticated; import cc.kune.core.server.auth.AuthenticatedMethodInterceptor; import cc.kune.core.server.auth.Authorizated; import cc.kune.core.server.auth.AuthorizatedMethodInterceptor; import cc.kune.core.server.auth.ShouldBeMember; import cc.kune.core.server.auth.ShouldBeMemberMethodInterceptor; import cc.kune.core.server.content.ContainerManager; import cc.kune.core.server.content.ContainerManagerDefault; import cc.kune.core.server.content.ContentManager; import cc.kune.core.server.content.ContentManagerDefault; import cc.kune.core.server.content.CreationService; import cc.kune.core.server.content.CreationServiceDefault; import cc.kune.core.server.content.XMLActionReader; import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang; import cc.kune.core.server.i18n.impl.I18nTranslationServiceDefault; import cc.kune.core.server.mail.MailService; import cc.kune.core.server.mail.MailServiceDefault; import cc.kune.core.server.manager.ExtMediaDescripManager; import cc.kune.core.server.manager.FileManager; import cc.kune.core.server.manager.GroupManager; import cc.kune.core.server.manager.I18nCountryManager; import cc.kune.core.server.manager.I18nLanguageManager; import cc.kune.core.server.manager.I18nTranslationManager; import cc.kune.core.server.manager.InvitationManager; import cc.kune.core.server.manager.KuneWaveManager; import cc.kune.core.server.manager.LicenseManager; import cc.kune.core.server.manager.ParticipantEntityManager; import cc.kune.core.server.manager.RateManager; import cc.kune.core.server.manager.SiteManager; import cc.kune.core.server.manager.SocialNetworkManager; import cc.kune.core.server.manager.TagManager; import cc.kune.core.server.manager.TagUserContentManager; import cc.kune.core.server.manager.ToolConfigurationManager; import cc.kune.core.server.manager.UserManager; import cc.kune.core.server.manager.UserSignInLogManager; import cc.kune.core.server.manager.WaveEntityManager; import cc.kune.core.server.manager.file.EntityLogoDownloadManager; import cc.kune.core.server.manager.file.FileDownloadManager; import cc.kune.core.server.manager.file.FileManagerDefault; import cc.kune.core.server.manager.file.FileUploadManager; import cc.kune.core.server.manager.impl.ExtMediaDescripManagerDefault; import cc.kune.core.server.manager.impl.GroupManagerDefault; import cc.kune.core.server.manager.impl.I18nCountryManagerDefault; import cc.kune.core.server.manager.impl.I18nLanguageManagerDefault; import cc.kune.core.server.manager.impl.I18nTranslationManagerDefault; import cc.kune.core.server.manager.impl.InvitationManagerDefault; import cc.kune.core.server.manager.impl.KuneWaveManagerDefault; import cc.kune.core.server.manager.impl.LicenseManagerDefault; import cc.kune.core.server.manager.impl.ParticipantEntityManagerDefault; import cc.kune.core.server.manager.impl.RateManagerDefault; import cc.kune.core.server.manager.impl.SiteManagerDefault; import cc.kune.core.server.manager.impl.SocialNetworkManagerDefault; import cc.kune.core.server.manager.impl.TagManagerDefault; import cc.kune.core.server.manager.impl.TagUserContentManagerDefault; import cc.kune.core.server.manager.impl.ToolConfigurationManagerDefault; import cc.kune.core.server.manager.impl.UserManagerDefault; import cc.kune.core.server.manager.impl.UserSignInLogManagerDefault; import cc.kune.core.server.manager.impl.WaveEntityManagerDefault; import cc.kune.core.server.mapper.KuneMapper; import cc.kune.core.server.mapper.KuneMapperDefault; import cc.kune.core.server.notifier.NotificationSender; import cc.kune.core.server.notifier.NotificationSenderDefault; import cc.kune.core.server.notifier.PendingNotificationSender; import cc.kune.core.server.persist.KunePersistenceService; import cc.kune.core.server.rpc.ContentRPC; import cc.kune.core.server.rpc.GroupRPC; import cc.kune.core.server.rpc.I18nRPC; import cc.kune.core.server.rpc.InvitationRPC; import cc.kune.core.server.rpc.SiteRPC; import cc.kune.core.server.rpc.SocialNetworkRPC; import cc.kune.core.server.rpc.StatsRPC; import cc.kune.core.server.rpc.UpDownRPC; import cc.kune.core.server.rpc.UserRPC; import cc.kune.core.server.scheduler.CronServerTasksManager; import cc.kune.core.server.state.StateService; import cc.kune.core.server.state.StateServiceDefault; import cc.kune.core.server.stats.StatsService; import cc.kune.core.server.stats.StatsServiceDefault; import cc.kune.core.server.tool.ServerToolRegistry; import cc.kune.core.server.users.UserInfoService; import cc.kune.core.server.users.UserInfoServiceDefault; import cc.kune.core.server.utils.ServerChangedLogosRegistry; import cc.kune.core.server.xmpp.XmppManager; import cc.kune.core.server.xmpp.XmppManagerDefault; import cc.kune.core.shared.utils.ChangedLogosRegistry; import cc.kune.hspace.client.ClientStatsService; import cc.kune.lists.client.rpc.ListsService; import cc.kune.lists.server.ListServerService; import cc.kune.lists.server.ListServerServiceDefault; import cc.kune.lists.server.rpc.ListsRPC; import cc.kune.wave.server.kspecific.KuneWaveService; import cc.kune.wave.server.kspecific.KuneWaveServiceDefault; import cc.kune.wave.server.kspecific.ParticipantUtils; import cc.kune.wave.server.kspecific.WaveEmailNotifier; import com.google.inject.Singleton; import com.google.inject.matcher.Matchers; // TODO: Auto-generated Javadoc /** * The Class PlatformServerModule. * * @author danigb@gmail.com * @author vjrj@ourproject.org (Vicente J. Ruiz Jurado) */ public class PlatformServerModule extends AbstractExtendedModule { /** * Bind managers. */ private void bindManagers() { bind(SiteManager.class).to(SiteManagerDefault.class); bind(UserManager.class).to(UserManagerDefault.class); bind(GroupManager.class).to(GroupManagerDefault.class); bind(ContentManager.class).to(ContentManagerDefault.class); bind(ToolConfigurationManager.class).to(ToolConfigurationManagerDefault.class); bind(ContainerManager.class).to(ContainerManagerDefault.class); bind(LicenseManager.class).to(LicenseManagerDefault.class); bind(SocialNetworkManager.class).to(SocialNetworkManagerDefault.class); bind(XmppManager.class).to(XmppManagerDefault.class); bind(ChatManager.class).to(ChatManagerDefault.class); bind(RateManager.class).to(RateManagerDefault.class); bind(I18nCountryManager.class).to(I18nCountryManagerDefault.class); bind(I18nLanguageManager.class).to(I18nLanguageManagerDefault.class); bind(I18nTranslationManager.class).to(I18nTranslationManagerDefault.class); bind(TagManager.class).to(TagManagerDefault.class); bind(TagUserContentManager.class).to(TagUserContentManagerDefault.class); bind(FileManager.class).to(FileManagerDefault.class); bind(ExtMediaDescripManager.class).to(ExtMediaDescripManagerDefault.class); bind(KuneWaveManager.class).to(KuneWaveManagerDefault.class); bind(UserSignInLogManager.class).to(UserSignInLogManagerDefault.class); bind(InvitationManager.class).to(InvitationManagerDefault.class); bind(WaveEntityManager.class).to(WaveEntityManagerDefault.class); bind(ParticipantEntityManager.class).to(ParticipantEntityManagerDefault.class); } /** * Bind rpc. */ private void bindRPC() { bind(SiteService.class).to(SiteRPC.class); bind(GroupService.class).to(GroupRPC.class); bind(ContentService.class).to(ContentRPC.class); bind(UserService.class).to(UserRPC.class); bind(SocialNetService.class).to(SocialNetworkRPC.class); bind(I18nService.class).to(I18nRPC.class); bind(ListsService.class).to(ListsRPC.class); bind(ClientStatsService.class).to(StatsRPC.class); bind(InvitationService.class).to(InvitationRPC.class); bind(UpDownService.class).to(UpDownRPC.class); } /** * Bind services. */ private void bindServices() { bind(UserInfoService.class).to(UserInfoServiceDefault.class); bind(CreationService.class).to(CreationServiceDefault.class); bind(AccessRightsService.class).to(AccessRightsServiceDefault.class); bind(AccessService.class).to(AccessServiceDefault.class); bind(FinderService.class).to(FinderServiceDefault.class); bind(StateService.class).to(StateServiceDefault.class); bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class); bind(I18nTranslationServiceMultiLang.class).to(I18nTranslationServiceDefault.class); bind(KuneWaveService.class).to(KuneWaveServiceDefault.class); bind(MailService.class).to(MailServiceDefault.class); bind(StatsService.class).to(StatsServiceDefault.class); bind(ListServerService.class).to(ListServerServiceDefault.class); } /* * (non-Javadoc) * * @see com.google.inject.AbstractModule#configure() */ @Override protected void configure() { // install(PersistService.usingJpa().across(UnitOfWork.TRANSACTION).buildModule()); bind(KunePersistenceService.class); bindManagers(); bindRPC(); bindServices(); bind(KuneMapper.class).to(KuneMapperDefault.class); bind(ServerToolRegistry.class).in(Singleton.class); bind(FileUploadManager.class).in(Singleton.class); bind(FileDownloadManager.class).in(Singleton.class); bind(EntityLogoDownloadManager.class).in(Singleton.class); bind(ParticipantUtils.class).in(Singleton.class); // bind(UserSessionManager.class).to(UserSessionManagerImpl.class).in(Singleton.class); // bind(UsersOnline.class).to(UserSessionManagerImpl.class).asEagerSingleton(); requestStaticInjection(AccessRightsUtils.class); bind(WaveEmailNotifier.class).in(Singleton.class); bind(PendingNotificationSender.class).in(Singleton.class); bind(NotificationSender.class).to(NotificationSenderDefault.class).in(Singleton.class); bind(CronServerTasksManager.class).in(Singleton.class); bind(XMLActionReader.class).in(Singleton.class); bind(ChangedLogosRegistry.class).to(ServerChangedLogosRegistry.class).in(Singleton.class); bindInterceptor(Matchers.any(), Matchers.annotatedWith(Authenticated.class), outermostCall(new AuthenticatedMethodInterceptor())); bindInterceptor(Matchers.any(), Matchers.annotatedWith(Authorizated.class), outermostCall(new AuthorizatedMethodInterceptor())); bindInterceptor(Matchers.any(), Matchers.annotatedWith(ShouldBeMember.class), outermostCall(new ShouldBeMemberMethodInterceptor())); } }