Author: vjrj_ Date: 2012-03-13 14:17:36 +0100 (Tue, 13 Mar 2012) New Revision: 1763 Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundUploadManager.java trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManager.java trunk/src/main/java/cc/kune/core/server/persist/DataSourceKunePersistModule.java trunk/src/main/java/cc/kune/core/server/persist/DataSourceOpenfirePersistModule.java trunk/src/main/java/cc/kune/core/server/rack/filters/rest/TransactionalServiceExecutor.java trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java trunk/src/main/java/cc/kune/core/server/rpc/I18nRPC.java trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java Log: NEW - # 201: Add openfire to the persist system http://kune.ourproject.org/issues/ticket/201 Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -19,6 +19,9 @@ */ package cc.kune.core.server; +import static com.google.inject.matcher.Matchers.annotatedWith; +import static com.google.inject.matcher.Matchers.any; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -41,6 +44,8 @@ import cc.kune.core.server.manager.file.UserLogoDownloadManager; import cc.kune.core.server.manager.impl.GroupServerUtils; import cc.kune.core.server.persist.DataSourceKunePersistModule; +import cc.kune.core.server.persist.DataSourceOpenfirePersistModule; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.rack.RackBuilder; import cc.kune.core.server.rack.RackModule; import cc.kune.core.server.rack.filters.ForwardFilter; @@ -55,8 +60,8 @@ import cc.kune.core.server.rest.UserJSONService; import cc.kune.core.server.scheduler.CronServerTasksManager; import cc.kune.docs.server.DocumentServerModule; +import cc.kune.events.server.EventsServerModule; import cc.kune.events.server.EventsServlet; -import cc.kune.events.server.EventsServerModule; import cc.kune.events.server.utils.EventsServerConversionUtil; import cc.kune.hspace.client.ClientStatsService; import cc.kune.lists.client.rpc.ListsService; @@ -169,14 +174,18 @@ builder.use(new ServletModule() { @Override protected void configureServlets() { - install(new DataSourceKunePersistModule()); - // install(new MyDataSourceTwoPersistModule()); + final DataSourceKunePersistModule kuneDataSource = new DataSourceKunePersistModule(); + install(kuneDataSource); + install(new DataSourceOpenfirePersistModule()); + bindInterceptor(annotatedWith(KuneTransactional.class), any(), + kuneDataSource.getTransactionInterceptor()); + bindInterceptor(any(), annotatedWith(KuneTransactional.class), + kuneDataSource.getTransactionInterceptor()); // more bindings filter("/*").through(DataSourceKunePersistModule.MY_DATA_SOURCE_ONE_FILTER_KEY); - // filter("/*").through(MyDataSourceTwoPersistModule.MY_DATA_SOURCE_TWO_FILTER_KEY); - + filter("/*").through(DataSourceOpenfirePersistModule.MY_DATA_SOURCE_TWO_FILTER_KEY); super.configureServlets(); } }); Modified: trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -35,6 +35,7 @@ import cc.kune.core.server.manager.LicenseManager; import cc.kune.core.server.manager.UserManager; import cc.kune.core.server.manager.impl.ContentConstants; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.KuneBasicProperties; import cc.kune.core.shared.domain.ContentStatus; import cc.kune.core.shared.dto.GroupType; @@ -48,7 +49,6 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import com.google.inject.persist.Transactional; @Singleton public class DatabaseInitializer { @@ -70,10 +70,7 @@ final GroupManager groupManager, final LicenseManager licenseManager, final I18nLanguageManager languageManager, final I18nCountryManager countryManager, final I18nTranslationManager translationManager, final ContentManager contentManager, - final I18nTranslationServiceDefault translationService - - // , final XmppRosterProvider borrar) { - ) { + final I18nTranslationServiceDefault translationService) { this.properties = properties; this.userManager = userManager; this.groupManager = groupManager; @@ -83,8 +80,6 @@ this.translationManager = translationManager; this.translationService = translationService; this.contentManager = contentManager; - // assert borrar != null; - // LOG.info("Roster items: " + borrar.count()); } private void createDefUsersGroup() throws Exception, UserMustBeLoggedException { @@ -188,7 +183,7 @@ translationService.init(); } - @Transactional + @KuneTransactional public void initDatabase() throws Exception { createLicenses(); createOthers(); Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundUploadManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundUploadManager.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundUploadManager.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -31,6 +31,7 @@ import cc.kune.core.server.auth.Authorizated; import cc.kune.core.server.manager.FileManager; import cc.kune.core.server.manager.GroupManager; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.KuneProperties; import cc.kune.core.shared.domain.AccessRol; import cc.kune.core.shared.domain.utils.StateToken; @@ -38,7 +39,6 @@ import cc.kune.domain.Group; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class EntityBackgroundUploadManager extends FileGwtUploadAbstractServlet { @@ -60,7 +60,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional + @KuneTransactional protected String createUploadedFile(final String userHash, final StateToken stateToken, final String fileName, final FileItem origFile, final String typeId) { try { Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -34,6 +34,7 @@ import cc.kune.core.server.auth.Authenticated; import cc.kune.core.server.auth.Authorizated; import cc.kune.core.server.manager.GroupManager; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.KuneProperties; import cc.kune.core.shared.FileConstants; import cc.kune.core.shared.domain.AccessRol; @@ -42,7 +43,6 @@ import cc.kune.domain.Group; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class EntityLogoUploadManager extends FileGwtUploadAbstractServlet { @@ -89,7 +89,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional + @KuneTransactional protected String createUploadedFile(final String userHash, final StateToken stateToken, final String fileName, final FileItem file, final String typeId) { final String mimeTypeS = file.getContentType(); Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManager.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManager.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -34,6 +34,7 @@ import cc.kune.core.server.content.ContentUtils; import cc.kune.core.server.content.CreationService; import cc.kune.core.server.manager.FileManager; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.KuneProperties; import cc.kune.core.server.utils.StringW; import cc.kune.core.shared.domain.AccessRol; @@ -44,7 +45,6 @@ import cc.kune.domain.User; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; import com.google.inject.servlet.RequestScoped; @RequestScoped @@ -100,7 +100,7 @@ @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container, mustCheckMembership = false) - @Transactional + @KuneTransactional Content createUploadedFileWrapped(final String userHash, final StateToken stateToken, final String fileName, final FileItem fileUploadItem, final String typeId) throws Exception { final String relDir = FileUtils.toDir(stateToken); Modified: trunk/src/main/java/cc/kune/core/server/persist/DataSourceKunePersistModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/persist/DataSourceKunePersistModule.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/persist/DataSourceKunePersistModule.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -24,12 +24,13 @@ import cc.kune.domain.finders.TagUserContentFinder; import cc.kune.domain.finders.UserFinder; -import com.google.inject.AbstractModule; import com.google.inject.Key; +import com.google.inject.PrivateModule; import com.google.inject.Provider; import com.google.inject.persist.jpa.JpaPersistModule; +import com.google.inject.persist.jpa.KuneJpaLocalTxnInterceptor; -public class DataSourceKunePersistModule extends AbstractModule { +public class DataSourceKunePersistModule extends PrivateModule { // FIXME Trying to make this PrivateModule so we can have two Persist sources // http://code.google.com/p/google-guice/wiki/GuicePersistMultiModules @@ -38,6 +39,7 @@ CustomPersistFilter.class, DataSourceKune.class); private String settedJpaUnit = null; private String settedProperties = null; + private KuneJpaLocalTxnInterceptor transactionInterceptor; /** * Instantiates this module (main constructor) @@ -104,40 +106,35 @@ bind(Session.class).annotatedWith(DataSourceKune.class).toProvider( DataSourceKuneSessionProvider.class); - // FIXME: Trying to use a custom JpaLocalTxnInterceptor because when this - // module is private the objects are not persisted with the guice-persist - // @Transactional - - // final KuneJpaLocalTxnInterceptor transactionInterceptor = new - // KuneJpaLocalTxnInterceptor(); - // requestInjection(transactionInterceptor); - // bindInterceptor(annotatedWith(KuneTransactional.class), any(), - // transactionInterceptor); - // bindInterceptor(any(), annotatedWith(KuneTransactional.class), - // transactionInterceptor); - final Provider<EntityManager> entityManagerProvider = binder().getProvider(EntityManager.class); bind(EntityManager.class).annotatedWith(DataSourceKune.class).toProvider(entityManagerProvider); + transactionInterceptor = new KuneJpaLocalTxnInterceptor(); + requestInjection(transactionInterceptor); + bind(MY_DATA_SOURCE_ONE_FILTER_KEY).to(CustomPersistFilter.class); - // expose(EntityManager.class).annotatedWith(DataSourceKune.class); - // expose(Session.class).annotatedWith(DataSourceKune.class); - // expose(KuneProperties.class); - // expose(ContainerFinder.class); - // expose(ContentFinder.class); - // expose(ExtMediaDescripFinder.class); - // expose(GroupFinder.class); - // expose(I18nCountryFinder.class); - // expose(I18nLanguageFinder.class); - // expose(I18nTranslationFinder.class); - // expose(LicenseFinder.class); - // expose(RateFinder.class); - // expose(TagFinder.class); - // expose(TagUserContentFinder.class); - // expose(UserFinder.class); - // expose(MY_DATA_SOURCE_ONE_FILTER_KEY); + expose(EntityManager.class).annotatedWith(DataSourceKune.class); + expose(Session.class).annotatedWith(DataSourceKune.class); + expose(KuneProperties.class); + expose(ContainerFinder.class); + expose(ContentFinder.class); + expose(ExtMediaDescripFinder.class); + expose(GroupFinder.class); + expose(I18nCountryFinder.class); + expose(I18nLanguageFinder.class); + expose(I18nTranslationFinder.class); + expose(LicenseFinder.class); + expose(RateFinder.class); + expose(TagFinder.class); + expose(TagUserContentFinder.class); + expose(UserFinder.class); + expose(MY_DATA_SOURCE_ONE_FILTER_KEY); bind(GenericPersistenceInitializer.class).asEagerSingleton(); } + + public KuneJpaLocalTxnInterceptor getTransactionInterceptor() { + return transactionInterceptor; + } } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/core/server/persist/DataSourceOpenfirePersistModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/persist/DataSourceOpenfirePersistModule.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/persist/DataSourceOpenfirePersistModule.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -55,6 +55,6 @@ bind(MY_DATA_SOURCE_TWO_FILTER_KEY).to(CustomPersistFilter.class); expose(MY_DATA_SOURCE_TWO_FILTER_KEY); - // bind(KunePersistenceInitializer.class).asEagerSingleton(); + bind(GenericPersistenceInitializer.class).asEagerSingleton(); } } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/rest/TransactionalServiceExecutor.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rack/filters/rest/TransactionalServiceExecutor.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rack/filters/rest/TransactionalServiceExecutor.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -19,27 +19,29 @@ */ package cc.kune.core.server.rack.filters.rest; +import cc.kune.core.server.persist.KuneTransactional; + import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class TransactionalServiceExecutor { - private final RESTMethodFinder methodFinder; - private final RESTSerializer serializer; + private final RESTMethodFinder methodFinder; + private final RESTSerializer serializer; - @Inject - public TransactionalServiceExecutor(RESTMethodFinder methodFinder, RESTSerializer serializer) { - this.methodFinder = methodFinder; - this.serializer = serializer; - } + @Inject + public TransactionalServiceExecutor(final RESTMethodFinder methodFinder, + final RESTSerializer serializer) { + this.methodFinder = methodFinder; + this.serializer = serializer; + } - @Transactional - public String doService(Class<?> serviceClass, String methodName, ParametersAdapter parameters, - Object serviceInstance) { - String output = null; - RESTMethod rest = methodFinder.findMethod(methodName, parameters, serviceClass); - if (rest != null && rest.invoke(serviceInstance)) { - output = serializer.serialize(rest.getResponse(), rest.getFormat()); - } - return output; + @KuneTransactional + public String doService(final Class<?> serviceClass, final String methodName, + final ParametersAdapter parameters, final Object serviceInstance) { + String output = null; + final RESTMethod rest = methodFinder.findMethod(methodName, parameters, serviceClass); + if (rest != null && rest.invoke(serviceInstance)) { + output = serializer.serialize(rest.getResponse(), rest.getFormat()); } + return output; + } } Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -48,6 +48,7 @@ import cc.kune.core.server.manager.KuneWaveManager; import cc.kune.core.server.manager.TagUserContentManager; import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.state.StateContainer; import cc.kune.core.server.state.StateContent; import cc.kune.core.server.state.StateEventContainer; @@ -73,7 +74,6 @@ import cc.kune.domain.User; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class ContentRPC implements ContentService, RPC { private final AccessService accessService; @@ -115,7 +115,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public void addAuthor(final String userHash, final StateToken token, final String authorShortName) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -126,7 +126,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title, final String typeId) throws DefaultException { return createContent(parentToken, title, typeId); @@ -135,7 +135,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateContainerDTO addFolder(final String userHash, final StateToken parentToken, final String title, final String contentTypeId) throws DefaultException { final User user = getCurrentUser(); @@ -147,7 +147,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.content, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public void addGadgetToContent(final String userHash, final StateToken currentStateToken, final String gadgetName) throws DefaultException { final User user = getCurrentUser(); @@ -159,7 +159,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateContentDTO addNewContentWithGadget(final String userHash, final StateToken parentToken, final String gadgetname, final String typeId, final String title, final String body) throws DefaultException { @@ -170,7 +170,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateContentDTO addNewContentWithGadgetAndState(final String userHash, final StateToken parentToken, final String gadgetname, final String typeId, final String title, final String body, final Map<String, String> gadgetProperties) throws DefaultException { @@ -185,7 +185,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public Boolean addParticipant(final String userHash, final StateToken token, final String participant) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -196,7 +196,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = true) - @Transactional + @KuneTransactional public Boolean addParticipants(final String userHash, final StateToken token, final String groupName, final SocialNetworkSubGroup subGroup) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -208,16 +208,17 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public StateContainerDTO addRoom(final String userHash, final StateToken parentToken, final String roomName) throws DefaultException { final User user = getCurrentUser(); return getState(user, chatManager.addRoom(userHash, user, parentToken, roomName, "")); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = true) - @Transactional + @KuneTransactional public StateContentDTO copyContent(final String userHash, final StateToken parentToken, final StateToken token) throws DefaultException { final User user = getCurrentUser(); @@ -253,7 +254,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public StateContentDTO delContent(final String userHash, final StateToken token) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -262,7 +263,7 @@ @Override @Authenticated(mandatory = false) - @Transactional + @KuneTransactional public StateAbstractDTO getContent(final String userHash, final StateToken token) throws DefaultException { Group defaultGroup; @@ -335,7 +336,7 @@ @Override @Authenticated(mandatory = false) @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional + @KuneTransactional public TagCloudResult getSummaryTags(final String userHash, final StateToken groupToken) { final Group group = groupManager.findByShortName(groupToken.getGroup()); return getSummaryTags(group); @@ -381,7 +382,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateContainerDTO moveContent(final String userHash, final StateToken movedToken, final StateToken newContainerToken) throws DefaultException { final User user = getCurrentUser(); @@ -414,7 +415,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional + @KuneTransactional public RateResult rateContent(final String userHash, final StateToken token, final Double value) throws DefaultException { final User rater = getCurrentUser(); @@ -430,7 +431,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public void removeAuthor(final String userHash, final StateToken token, final String authorShortName) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -441,7 +442,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateAbstractDTO renameContainer(final String userHash, final StateToken token, final String newName) throws DefaultException { renameFolder(token.getGroup(), ContentUtils.parseId(token.getFolder()), newName); @@ -451,7 +452,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public StateAbstractDTO renameContent(final String userHash, final StateToken token, final String newName) throws DefaultException { final User user = getCurrentUser(); @@ -482,7 +483,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public void save(final String userHash, final StateToken token, final String textContent) throws DefaultException { @@ -494,7 +495,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public String sendFeedback(final String userHash, final String title, final String body) throws DefaultException { final User user = getCurrentUser(); @@ -504,7 +505,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public ContentSimpleDTO setAsDefaultContent(final String userHash, final StateToken token) { final Content content = contentManager.find(ContentUtils.parseId(token.getDocument())); groupManager.setDefaultContent(token.getGroup(), content); @@ -514,7 +515,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor) - @Transactional + @KuneTransactional public void setGadgetProperties(final String userHash, final StateToken currentStateToken, final String gadgetName, final Map<String, String> properties) { final User user = getCurrentUser(); @@ -526,7 +527,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public I18nLanguageDTO setLanguage(final String userHash, final StateToken token, final String languageCode) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -537,7 +538,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public void setPublishedOn(final String userHash, final StateToken token, final Date publishedOn) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -548,7 +549,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor) - @Transactional + @KuneTransactional public StateAbstractDTO setStatus(final String userHash, final StateToken token, final ContentStatus status) { if (status.equals(ContentStatus.publishedOnline) || status.equals(ContentStatus.rejected) @@ -563,7 +564,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public StateAbstractDTO setStatusAsAdmin(final String userHash, final StateToken token, final ContentStatus status) { final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()), @@ -574,7 +575,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public TagCloudResult setTags(final String userHash, final StateToken token, final String tags) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -586,7 +587,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public String writeTo(final String userHash, final StateToken token, final boolean onlyToAdmins) throws DefaultException { final User user = getCurrentUser(); @@ -595,16 +596,17 @@ @Override @Authenticated - @Transactional + @KuneTransactional public String writeTo(final String userHash, final StateToken token, final boolean onlyToAdmins, final String title, final String message) throws DefaultException { final User user = getCurrentUser(); return waveManager.writeTo(user, token.getGroup(), onlyToAdmins, title, message); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.content, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional + @KuneTransactional public String writeToParticipants(final String userHash, final StateToken token) throws DefaultException { final User user = getCurrentUser(); Modified: trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -29,6 +29,7 @@ import cc.kune.core.server.content.ContentManager; import cc.kune.core.server.manager.GroupManager; import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.ReservedWordsRegistry; import cc.kune.core.shared.domain.AccessRol; import cc.kune.core.shared.domain.AdmissionType; @@ -41,7 +42,6 @@ import cc.kune.domain.User; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class GroupRPC implements RPC, GroupService { private final ContentManager contentManager; @@ -66,7 +66,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public void changeDefLicense(final String userHash, final StateToken groupToken, final LicenseDTO license) { final User user = getUserLogged(); @@ -77,7 +77,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme) throws DefaultException { final User user = getUserLogged(); @@ -88,7 +88,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) { final Group group = groupManager.findByShortName(token.getGroup()); groupManager.clearGroupBackImage(group); @@ -97,7 +97,7 @@ @Override @Authenticated - @Transactional(rollbackOn = DefaultException.class) + @KuneTransactional(rollbackOn = DefaultException.class) public StateAbstractDTO createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc, final String tags, final String[] enabledTools) throws DefaultException { final User user = getUserLogged(); @@ -127,7 +127,7 @@ @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional + @KuneTransactional public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token, final AdmissionType admissionPolicy) { final Group group = groupManager.findByShortName(token.getGroup()); @@ -137,7 +137,7 @@ @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional + @KuneTransactional public void setSocialNetworkVisibility(final String userHash, final StateToken token, final SocialNetworkVisibility visibility) { final Group group = groupManager.findByShortName(token.getGroup()); @@ -147,7 +147,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public void setToolEnabled(final String userHash, final StateToken groupToken, final String toolName, final boolean enabled) { groupManager.setToolEnabled(getUserLogged(), groupToken.getGroup(), toolName, enabled); @@ -155,7 +155,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) public StateAbstractDTO updateGroup(final String userHash, final StateToken token, final GroupDTO groupDTO) throws DefaultException { Modified: trunk/src/main/java/cc/kune/core/server/rpc/I18nRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/I18nRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/I18nRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -34,6 +34,7 @@ import cc.kune.core.server.manager.I18nLanguageManager; import cc.kune.core.server.manager.I18nTranslationManager; import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.shared.domain.AccessRol; import cc.kune.core.shared.dto.I18nLanguageDTO; import cc.kune.core.shared.dto.I18nTranslationDTO; @@ -42,7 +43,6 @@ import com.google.inject.Inject; import com.google.inject.Provider; -import com.google.inject.persist.Transactional; public class I18nRPC implements RPC, I18nService { private final I18nTranslationManager i18nTranslationManager; @@ -63,7 +63,7 @@ } @Override - @Transactional + @KuneTransactional public I18nLanguageDTO getInitialLanguage(final String localeParam) { String initLanguage; I18nLanguage lang; @@ -97,14 +97,14 @@ } @Override - @Transactional + @KuneTransactional public HashMap<String, String> getLexicon(final String language) { return i18nTranslationManager.getLexicon(language); } @Override @Authenticated - @Transactional + @KuneTransactional public List<I18nTranslationDTO> getTranslatedLexicon(final String userHash, final String language, final boolean toTranslate) { if (toTranslate) { @@ -115,7 +115,7 @@ } @Override - @Transactional + @KuneTransactional public String getTranslation(final String userHash, final String language, final String text, final String noteForTranslators) { String translation = null; @@ -134,7 +134,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional @SuperAdmin(rol = AccessRol.Editor) public String setTranslation(final String userHash, final Long id, final String translation) throws DefaultException { Modified: trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -33,6 +33,7 @@ import cc.kune.core.server.manager.LicenseManager; import cc.kune.core.server.manager.UserManager; import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.ChatProperties; import cc.kune.core.server.properties.KuneProperties; import cc.kune.core.server.properties.ReservedWordsRegistry; @@ -45,7 +46,6 @@ import cc.kune.core.shared.dto.UserInfoDTO; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class SiteRPC implements RPC, SiteService { private final ChatProperties chatProperties; @@ -88,7 +88,7 @@ } @Override - @Transactional + @KuneTransactional public InitDataDTO getInitData(final String userHash) throws DefaultException { final InitDataDTO dataMapped = mapper.map(data, InitDataDTO.class); Modified: trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -29,6 +29,7 @@ import cc.kune.core.server.manager.SocialNetworkManager; import cc.kune.core.server.mapper.Mapper; import cc.kune.core.server.notifier.NotificationService; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.shared.domain.AccessRol; import cc.kune.core.shared.domain.utils.StateToken; import cc.kune.core.shared.dto.SocialNetworkDataDTO; @@ -38,7 +39,6 @@ import cc.kune.domain.finders.UserFinder; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class SocialNetworkRPC implements SocialNetService, RPC { @@ -64,7 +64,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO acceptJoinGroup(final String hash, final StateToken groupToken, final String groupToAcceptShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -80,7 +80,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO addAdminMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -95,7 +95,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public void addAsBuddie(final String hash, final String userName) throws DefaultException { final User userLogged = userSessionManager.getUser(); final User toUser = userFinder.findByShortName(userName); @@ -105,7 +105,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO addCollabMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -121,7 +121,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO addViewerMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -142,7 +142,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO deleteMember(final String hash, final StateToken groupToken, final String groupToDeleleShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -158,7 +158,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO denyJoinGroup(final String hash, final StateToken groupToken, final String groupToDenyShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -180,7 +180,7 @@ @Authenticated(mandatory = false) // At least you can access as Viewer to the Group @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer) - @Transactional + @KuneTransactional public SocialNetworkDataDTO getSocialNetwork(final String hash, final StateToken groupToken) throws DefaultException { final User user = userSessionManager.getUser(); @@ -190,7 +190,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public SocialNetworkRequestResult requestJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { final User user = userSessionManager.getUser(); @@ -204,7 +204,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO setAdminAsCollab(final String hash, final StateToken groupToken, final String groupToSetCollabShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -220,7 +220,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional + @KuneTransactional public SocialNetworkDataDTO setCollabAsAdmin(final String hash, final StateToken groupToken, final String groupToSetAdminShortName) throws DefaultException { final User userLogged = userSessionManager.getUser(); @@ -235,7 +235,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public void unJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { final User userLogged = userSessionManager.getUser(); final Group group = groupManager.findByShortName(groupToken.getGroup()); Modified: trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -44,6 +44,7 @@ import cc.kune.core.server.manager.UserManager; import cc.kune.core.server.manager.impl.EmailConfirmationType; import cc.kune.core.server.mapper.Mapper; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.properties.ReservedWordsRegistry; import cc.kune.core.server.users.UserInfo; import cc.kune.core.server.users.UserInfoService; @@ -64,7 +65,6 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.name.Named; -import com.google.inject.persist.Transactional; public class UserRPC implements RPC, UserService { @@ -100,14 +100,14 @@ @Authenticated @Override - @Transactional + @KuneTransactional public void askForEmailConfirmation(final String userHash) throws DefaultException { final User user = userSessionManager.getUser(); userManager.askForEmailConfirmation(user, EmailConfirmationType.emailVerification); } @Override - @Transactional + @KuneTransactional public void askForPasswordReset(final String email) throws EmailNotFoundException { try { final User user = userFinder.findByEmail(email); @@ -119,7 +119,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public void changePasswd(final String userHash, final String oldPassword, final String newPassword) throws DefaultException { final Long userId = userSessionManager.getUser().getId(); @@ -127,7 +127,7 @@ } @Override - @Transactional(rollbackOn = DefaultException.class) + @KuneTransactional(rollbackOn = DefaultException.class) public void createUser(final UserDTO userDTO, final boolean wantPersonalHomepage) throws DefaultException { reserverdWords.check(userDTO.getShortName(), userDTO.getName()); @@ -138,7 +138,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) public String getUserAvatarBaser64(final String userHash, final StateToken userToken) throws DefaultException { @@ -169,7 +169,7 @@ } @Override - @Transactional + @KuneTransactional public UserInfoDTO login(final String nickOrEmail, final String passwd, final String waveToken) throws DefaultException { // final SessionService sessionService = sessionServiceProvider.get(); @@ -189,14 +189,14 @@ @Override @Authenticated - @Transactional + @KuneTransactional public void logout(final String userHash) throws DefaultException { userSessionManager.logout(); } @Override @Authenticated(mandatory = false) - @Transactional + @KuneTransactional public void onlyCheckSession(final String userHash) throws DefaultException { // Do almost nothing @Authenticated checks user session userSessionManager.updateLoggedUser(); @@ -204,7 +204,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public UserInfoDTO reloadUserInfo(final String userHash) throws DefaultException { final User user = userSessionManager.getUser(); userSessionManager.updateLoggedUser(); @@ -212,7 +212,7 @@ } @Override - @Transactional + @KuneTransactional public void resetPassword(final String passwdHash, final String newpasswd) throws EmailHashInvalidException { try { @@ -227,7 +227,7 @@ @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional + @KuneTransactional public void setBuddiesVisibility(final String userHash, final StateToken groupToken, final UserSNetVisibility visibility) { final User user = userSessionManager.getUser(); @@ -239,7 +239,7 @@ @Override @Authenticated - @Transactional + @KuneTransactional public StateAbstractDTO updateUser(final String userHash, final UserDTO user, final I18nLanguageSimpleDTO lang) throws DefaultException, EmailAddressInUseException, GroupLongNameInUseException { @@ -254,7 +254,7 @@ @Authenticated @Override - @Transactional + @KuneTransactional public void verifyPasswordHash(final String userHash, final String emailReceivedHash) throws EmailHashInvalidException, EmailHashExpiredException { final User user = userSessionManager.getUser(); Modified: trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java =================================================================== --- trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -26,6 +26,7 @@ import cc.kune.core.server.auth.Authorizated; import cc.kune.core.server.content.ContainerManager; import cc.kune.core.server.content.ContentUtils; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.core.server.rpc.ContentRPC; import cc.kune.core.server.rpc.RPC; import cc.kune.core.shared.domain.AccessRol; @@ -40,7 +41,6 @@ import cc.kune.lists.shared.ListsConstants; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class ListsRPC implements ListsService, RPC { private final ContainerManager contentManager; @@ -63,7 +63,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.container) - @Transactional + @KuneTransactional public StateContainerDTO createList(final String userHash, final StateToken parentToken, final String listaName, final String description, final boolean isPublic) { final StateContainerDTO result = contentRPC.addFolder(userHash, parentToken, @@ -84,7 +84,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer, actionLevel = ActionLevel.container) - @Transactional + @KuneTransactional public StateContentDTO newPost(final String userHash, final StateToken parentToken, final String postTitle) { final Container container = getContainer(parentToken); @@ -108,7 +108,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.container) - @Transactional + @KuneTransactional public StateContainerDTO setPublic(final String hash, final StateToken token, final Boolean isPublic) { final Container container = setPublicAcl(token, isPublic); return contentRPC.getState(container); @@ -130,7 +130,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer, actionLevel = ActionLevel.container) - @Transactional + @KuneTransactional public StateContainerDTO subscribeToList(final String userHash, final StateToken token, final Boolean subscribe) { final Container container = getContainer(token); Modified: trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -37,13 +37,13 @@ import cc.kune.core.server.manager.I18nLanguageManager; import cc.kune.core.server.manager.I18nTranslationManager; import cc.kune.core.server.manager.LicenseManager; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.domain.Container; import cc.kune.domain.Content; import cc.kune.domain.Group; import cc.kune.domain.ToolConfiguration; import com.google.inject.Inject; -import com.google.inject.persist.Transactional; public class DatabaseInitializerTest { @Inject @@ -62,7 +62,7 @@ @Inject I18nTranslationManager transManager; - @Transactional + @KuneTransactional @Before public void init() { new IntegrationTestHelper(this); Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-13 12:08:46 UTC (rev 1762) +++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-13 13:17:36 UTC (rev 1763) @@ -19,6 +19,9 @@ */ package cc.kune.core.server.integration; +import static com.google.inject.matcher.Matchers.annotatedWith; +import static com.google.inject.matcher.Matchers.any; + import javax.servlet.http.HttpServletRequest; import org.apache.commons.configuration.ConfigurationException; @@ -35,7 +38,9 @@ import cc.kune.core.server.PlatformServerModule; import cc.kune.core.server.TestConstants; import cc.kune.core.server.persist.DataSourceKunePersistModule; +import cc.kune.core.server.persist.DataSourceOpenfirePersistModule; import cc.kune.core.server.persist.KunePersistenceService; +import cc.kune.core.server.persist.KuneTransactional; import cc.kune.docs.server.DocumentServerModule; import cc.kune.events.server.EventsServerModule; import cc.kune.lists.server.ListsServerModule; @@ -59,8 +64,12 @@ TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class)); final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class); final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class); + final DataSourceKunePersistModule kuneDataSource = new DataSourceKunePersistModule( + "kune.properties", TestConstants.PERSISTENCE_UNIT); final Injector childInjector = injector.createChildInjector( wavePersistModule, + kuneDataSource, + new DataSourceOpenfirePersistModule(), new AbstractModule() { @Override protected void configure() { @@ -68,10 +77,14 @@ bindScope(RequestScoped.class, Scopes.SINGLETON); bind(HttpServletRequest.class).to(HttpServletRequestMocked.class); + bindInterceptor(annotatedWith(KuneTransactional.class), any(), + kuneDataSource.getTransactionInterceptor()); + bindInterceptor(any(), annotatedWith(KuneTransactional.class), + kuneDataSource.getTransactionInterceptor()); + install(kuneDataSource); } }, - new DataSourceKunePersistModule("kune.properties", TestConstants.PERSISTENCE_UNIT), // new MyDataSourceTwoPersistModule(), new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),