r1251 - in branches/wave-jetty-embed-guice: . src/main/java/cc/kune/core/client/errors src/main/java/cc/kune/core/client/sitebar src/main/java/cc/kune/core/client/state src/main/java/cc/kune/domain src/main/java/cc/kune/domain/finders src/main/java/cc/kune/wave/server src/main/java/org/ourproject/kune/app/server src/main/java/org/ourproject/kune/platf/client/actions/ui src/main/java/org/ourproject/kune/platf/client/shortcuts src/main/java/org/ourproject/kune/platf/client/ui/rte/basic src/main
Author: vjrj_ Date: 2011-02-13 12:00:54 +0100 (Sun, 13 Feb 2011) New Revision: 1251 Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/ branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/ branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java Modified: branches/wave-jetty-embed-guice/.classpath branches/wave-jetty-embed-guice/pom.xml branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java Log: wiab and kune in the same port Modified: branches/wave-jetty-embed-guice/.classpath =================================================================== --- branches/wave-jetty-embed-guice/.classpath 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/.classpath 2011-02-13 11:00:54 UTC (rev 1251) @@ -33,10 +33,10 @@ <classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/> <classpathentry kind="var" path="M2_REPO/com/googlecode/gwt/inject/gin/r137/gin-r137.jar"/> <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/> - <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice/2.1-SNAPSHOT-r1160/guice-2.1-SNAPSHOT-r1160.jar"/> - <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/2.0/guice-2.0.jar"/> + <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/> - <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice-servlet/2.0.1/guice-servlet-2.0.1.jar"/> + <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/> + <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/> <classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/> <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/> @@ -105,7 +105,6 @@ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/> <classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/> <classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/> - <classpathentry kind="var" path="M2_REPO/com/wideplay/warp-persist/2.0-SNAPSHOT/warp-persist-2.0-SNAPSHOT.jar"/> <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-custom/0.3.6/waveinabox-server-custom-0.3.6.jar"/> <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/> <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/> Modified: branches/wave-jetty-embed-guice/pom.xml =================================================================== --- branches/wave-jetty-embed-guice/pom.xml 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/pom.xml 2011-02-13 11:00:54 UTC (rev 1251) @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>cc.kune</groupId> <artifactId>kune</artifactId> - <packaging>war</packaging> + <packaging>jar</packaging> <version>0.0.7</version> <name>kune</name> <description> kune free/open/libre collaboration platform </description> @@ -187,6 +187,10 @@ <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url> <name>Google Web Toolkit Plugin Repository</name> </pluginRepository> + <pluginRepository> + <id>onejar-maven-plugin.googlecode.com</id> + <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> + </pluginRepository> </pluginRepositories> <dependencies> <dependency> @@ -202,9 +206,10 @@ </dependency> <!-- guice --> <dependency> - <groupId>com.google.code.guice</groupId> + <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> - <version>2.1-SNAPSHOT-r1160</version> + <!-- <version>2.1-SNAPSHOT-r1160</version> --> + <version>3.0-rc2</version> </dependency> <dependency> <groupId>com.googlecode.gwt.inject</groupId> @@ -212,45 +217,50 @@ <version>r137</version> </dependency> <dependency> - <groupId>com.google.code.guice</groupId> + <groupId>com.google.inject.extensions</groupId> <artifactId>guice-servlet</artifactId> - <version>2.0.1</version> + <version>3.0-rc2</version> </dependency> <dependency> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-persist</artifactId> + <version>3.0-rc2</version> + </dependency> + <dependency> <groupId>com.extjs</groupId> <artifactId>gxt</artifactId> <version>2.2.1</version> - <scope>compile</scope> + <scope>provided</scope> </dependency> <dependency> <groupId>org.cobogw.gwt</groupId> <artifactId>cobogw</artifactId> <version>1.3.1</version> </dependency> -<dependency> - <groupId>com.gwtplatform</groupId> - <artifactId>gwtp-all</artifactId> - <version>0.5</version> - <exclusions> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - </exclusion> - </exclusions> -</dependency> <dependency> + <groupId>com.gwtplatform</groupId> + <artifactId>gwtp-all</artifactId> + <version>0.5</version> + <exclusions> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> <groupId>org.adamtacy</groupId> <artifactId>gwt-fx</artifactId> <version>r464</version> @@ -395,27 +405,21 @@ <version>3.2.3.GA</version> </dependency> <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-c3p0</artifactId> - <version>3.3.1.GA</version> - </dependency> - <!-- <dependency> - <groupId>c3p0</groupId> - <artifactId>c3p0</artifactId> - <version>0.9.1.2</version> - </dependency> --> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-c3p0</artifactId> + <version>3.3.1.GA</version> + </dependency> + <!-- <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> + <version>0.9.1.2</version> </dependency> --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <!-- wave use 2.5 --> <version>2.5</version> </dependency> + <!-- <dependency> <groupId>com.wideplay</groupId> <artifactId>warp-persist</artifactId> + <version>2.0-SNAPSHOT</version> </dependency> --> <dependency> - <groupId>com.wideplay</groupId> - <artifactId>warp-persist</artifactId> - <version>2.0-SNAPSHOT</version> - </dependency> - <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> @@ -775,11 +779,23 @@ <!-- =roo --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> - <version>2.2-beta-5</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> + <dependencySets> + <dependencySet> + <scope>runtime</scope> + <unpackOptions> + <excludes> + <exclude>**/gxt/**</exclude> + <exclude>**/extjs/**</exclude> + <exclude>**extjs**</exclude> + <exclude>**gxt**</exclude> + </excludes> + </unpackOptions> + </dependencySet> + </dependencySets> </configuration> </plugin> <plugin> @@ -916,6 +932,24 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <mainClass>cc.kune.wave.server.WaveMain</mainClass> + <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> --> + <!-- <classpathLayoutType>repository</classpathLayoutType> --> + <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType' + instead. --> + <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout> + <!-- <packageName>cc.kune.wave.server</packageName> --> + </manifest> + <manifestEntries> + <mode>development</mode> + <url>${pom.url}</url> + </manifestEntries> + </archive> + </configuration> <executions> <!-- <execution> --> <!-- <id>core</id> --> @@ -950,21 +984,53 @@ <!-- </includes> --> <!-- </configuration> --> <!-- </execution> --> + <!-- <execution> --> + <!-- <id>helloworldmodule</id> --> + <!-- <phase>package</phase> --> + <!-- <goals> --> + <!-- <goal>jar</goal> --> + <!-- </goals> --> + <!-- <configuration> --> + <!-- <classifier>helloworldmodule</classifier> --> + <!-- <includes> --> + <!-- <include>**/HelloWorld*</include> --> + <!-- </includes> --> + <!-- </configuration> --> + <!-- </execution> --> + </executions> + </plugin> + <plugin> + <groupId>org.dstovall</groupId> + <artifactId>onejar-maven-plugin</artifactId> + <version>1.4.4</version> + <executions> <execution> - <id>helloworldmodule</id> - <phase>package</phase> + <configuration> + <!-- Optional --> + <!-- <onejarVersion>0.97</onejarVersion> --> + <!-- Optional, use only if you need to include native libraries + (dll's) --> +<!-- <binlibs>--> +<!-- <fileSet>--> +<!-- <directory>${project.build.directory}/${project.build.finalName}</directory>--> +<!-- <includes>--> +<!-- <include>**</include>--> +<!-- </includes>--> +<!-- </fileSet>--> +<!-- </binlibs>--> + <!-- Optional, default is false --> + <attachToBuild>true</attachToBuild> + <!-- Optional, default is "onejar" --> + <classifier>onejar</classifier> + </configuration> <goals> - <goal>jar</goal> + <goal>one-jar</goal> </goals> - <configuration> - <classifier>helloworldmodule</classifier> - <includes> - <include>**/HelloWorld*</include> - </includes> - </configuration> </execution> </executions> </plugin> + + <!-- <plugin> --> <!-- <groupId>org.codehaus.mojo</groupId> --> <!-- <artifactId>selenium-maven-plugin</artifactId> --> Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,7 +22,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class SessionExpiredEvent extends GwtEvent<SessionExpiredEvent.SessionExpiredHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -71,9 +71,10 @@ this.siteOptions = siteOptions; this.gotoGroupAction = gotoGroupAction; createActions(); - if (session.isLogged()) { - onUserSignIn(session.getCurrentUserInfo()); // NOPMD by vjrj on 11/02/11 3:37 - } + // if (session.isLogged()) { + // onUserSignIn(session.getCurrentUserInfo()); // NOPMD by vjrj on + // 11/02/11 3:37 + // } session.onUserSignIn(new UserSignInHandler() { @Override public void onUserSignIn(final UserSignInEvent event) { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -3,7 +3,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class AccessRightsChangedEvent extends GwtEvent<AccessRightsChangedEvent.AccessRightsChangedHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,7 +22,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class GroupChangedEvent extends GwtEvent<GroupChangedEvent.GroupChangedHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,7 +22,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class SocialNetworkChangedEvent extends GwtEvent<SocialNetworkChangedEvent.SocialNetworkChangedHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,7 +22,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class StateChangedEvent extends GwtEvent<StateChangedEvent.StateChangedHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,7 +22,6 @@ import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; - import com.google.gwt.event.shared.HasHandlers; public class ToolChangedEvent extends GwtEvent<ToolChangedEvent.ToolChangedHandler> { Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -53,29 +53,46 @@ import cc.kune.domain.utils.HasId; import cc.kune.domain.utils.HasStateToken; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Indexed @Table(name = "containers") public class Container implements HasId, HasStateToken { + @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private List<Container> absolutePath; + + @OneToOne(cascade = CascadeType.ALL) + private AccessLists accessLists; + + @OrderBy("createdOn DESC") + @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + private Set<Container> childs; + + @OneToMany(cascade = CascadeType.ALL) + private List<ContainerTranslation> containerTranslations; + + @ContainedIn + @OrderBy("createdOn DESC") + @OneToMany(mappedBy = "container", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + private Set<Content> contents; + + @Basic(optional = false) + private Long createdOn; + + @Basic(optional = true) + private Date deletedOn; + @Id @GeneratedValue @DocumentId Long id; + @ManyToOne + private I18nLanguage language; + @Column @Field(index = Index.TOKENIZED, store = Store.NO) private String name; - private String toolName; - - private String typeId; - - @ManyToOne - private I18nLanguage language; - @IndexedEmbedded(depth = 1, prefix = "owner_") @OneToOne private Group owner; @@ -87,30 +104,10 @@ @JoinColumn private Container parent; - @OrderBy("createdOn DESC") - @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER) - private Set<Container> childs; + private String toolName; - @ContainedIn - @OrderBy("createdOn DESC") - @OneToMany(mappedBy = "container", cascade = CascadeType.ALL, fetch = FetchType.EAGER) - private Set<Content> contents; + private String typeId; - @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) - private List<Container> absolutePath; - - @OneToMany(cascade = CascadeType.ALL) - private List<ContainerTranslation> containerTranslations; - - @OneToOne(cascade = CascadeType.ALL) - private AccessLists accessLists; - - @Basic(optional = false) - private Long createdOn; - - @Basic(optional = true) - private Date deletedOn; - public Container() { this(null, null, null); } @@ -137,11 +134,6 @@ contents.add(descriptor); } - @Finder(query = "SELECT COUNT(*) FROM Container c WHERE c.parent = :container AND c.name LIKE :title") - public Long findIfExistsTitle(@Named("container") final Container container, @Named("title") final String title) { - return null; - } - public List<Container> getAbsolutePath() { return absolutePath; } @@ -175,6 +167,7 @@ return deletedOn; } + @Override public Long getId() { return id; } @@ -199,6 +192,7 @@ return parent != null ? parent.getId() : null; } + @Override @Transient public StateToken getStateToken() { return new StateToken(getOwner().getShortName(), getToolName(), getId()); @@ -264,6 +258,7 @@ this.deletedOn = deletedOn; } + @Override public void setId(final Long id) { this.id = id; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -56,23 +56,17 @@ import cc.kune.core.shared.domain.utils.StateToken; import cc.kune.domain.utils.HasStateToken; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; -import com.wideplay.warp.persist.dao.FirstResult; -import com.wideplay.warp.persist.dao.MaxResults; - @Entity @Table(name = "contents") @Indexed @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Content implements HasStateToken { - private static final String GROUP = "group"; - private static final String MIMETYPE = "mimetype"; + public static final String GROUP = "group"; + public static final String MIMETYPE = "mimetype"; public static final Content NO_CONTENT = new Content(); + public static final String TITLE = "title"; - private static final String TITLE = "title"; - @OneToOne(cascade = CascadeType.ALL) private AccessLists accessLists; @@ -170,36 +164,6 @@ } } - @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC") - public List<Content> find2Mime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2, - @FirstResult final int offset, @MaxResults final int limit) { - return null; - } - - @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null") - public int find2MimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2) { - return 0; - } - - @Finder(query = "select count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title") - public Long findIfExistsTitle(@Named("container") final Container container, @Named(TITLE) final String title) { - return null; - } - - @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC") - public List<Content> findMime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype, @FirstResult final int offset, @MaxResults final int limit) { - return null; - } - - @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null") - public int findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, - @Named(MIMETYPE) final String mimetype) { - return 0; - } - @Transient public AccessLists getAccessLists() { return hasAccessList() ? accessLists : getContainer().getAccessLists(); Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,6 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -31,28 +29,26 @@ import cc.kune.domain.utils.HasId; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Table(name = "ext_media_descriptors") public class ExtMediaDescrip implements HasId { + @Column(nullable = false) + private String detectRegex; + @Column(nullable = false) + @Length(max = 1000) + private String embedTemplate; + private int height; @Id @GeneratedValue private Long id; @Column(nullable = false) + private String idRegex; + @Column(nullable = false) private String name; @Column(nullable = false) private String siteurl; - @Column(nullable = false) - private String detectRegex; - @Column(nullable = false) - private String idRegex; - @Column(nullable = false) - @Length(max = 1000) - private String embedTemplate; private int width; - private int height; public ExtMediaDescrip() { this(null, null, null, null, null, 0, 0); @@ -69,11 +65,6 @@ height = defHeight; } - @Finder(query = "from ExtMediaDescrip") - public List<ExtMediaDescrip> getAll() { - return null; - } - public String getDetectRegex() { return detectRegex; } @@ -86,6 +77,7 @@ return height; } + @Override public Long getId() { return id; } @@ -118,6 +110,7 @@ this.height = height; } + @Override public void setId(final Long id) { this.id = id; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,7 +20,6 @@ package cc.kune.domain; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.persistence.Basic; @@ -51,9 +50,6 @@ import cc.kune.core.shared.dto.GroupType; import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Indexed @Table(name = "groups") @@ -159,26 +155,6 @@ return toolsConfig.get(toolName) != null; } - @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)") - public List<Group> findAdminInGroups(@Named("groupid") final Long groupId) { - return null; - } - - @Finder(query = "FROM Group g WHERE g.shortName = :shortName") - public Group findByShortName(@Named("shortName") final String shortName) { - return null; - } - - @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)") - public List<Group> findCollabInGroups(@Named("groupid") final Long groupId) { - return null; - } - - @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t WHERE t.enabled=true AND t.root.owner.id = :groupid") - public List<String> findEnabledTools(@Named("groupid") final Long groupId) { - return null; - } - @Transient public AccessLists getAccessLists() { return getSocialNetwork().getAccessLists(); @@ -188,11 +164,6 @@ return admissionType; } - @Finder(query = "FROM Group") - public List<Group> getAll() { - return null; - } - public Long getCreatedOn() { return createdOn; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,6 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @@ -31,9 +29,6 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - /** * GlobalizeCountries generated by hbm2java from original rails globalize schema * @@ -46,39 +41,39 @@ @Table(name = "globalize_countries") public class I18nCountry implements HasId { - @Id - // Is not a @GeneratedValue similar to I18nLanguage (we have already ids) - @DocumentId - @Column(name = "id", unique = true, nullable = false) - private Long id; - @Column(name = "code", length = 2) private String code; - @Column(name = "english_name") - private String englishName; + @Column(name = "currency_code", length = 3) + private String currencyCode; - @Column(name = "date_format") - private String dateFormat; + @Column(name = "currency_decimal_sep", length = 2) + private String currencyDecimalSep; @Column(name = "currency_format") private String currencyFormat; - @Column(name = "currency_code", length = 3) - private String currencyCode; + @Column(name = "date_format") + private String dateFormat; - @Column(name = "thousands_sep", length = 2) - private String thousandsSep; - @Column(name = "decimal_sep", length = 2) private String decimalSep; - @Column(name = "currency_decimal_sep", length = 2) - private String currencyDecimalSep; + @Column(name = "english_name") + private String englishName; + @Id + // Is not a @GeneratedValue similar to I18nLanguage (we have already ids) + @DocumentId + @Column(name = "id", unique = true, nullable = false) + private Long id; + @Column(name = "number_grouping_scheme") private String numberGroupingScheme; + @Column(name = "thousands_sep", length = 2) + private String thousandsSep; + public I18nCountry() { this(null, null, null, null, null, null, null, null, null, null); } @@ -98,16 +93,6 @@ this.numberGroupingScheme = numberGroupingScheme; } - @Finder(query = "FROM I18nCountry WHERE code = :country") - public I18nCountry findByCode(@Named("country") final String country) { - return null; - } - - @Finder(query = "FROM I18nCountry ORDER BY english_name") - public List<I18nCountry> getAll() { - return null; - } - public String getCode() { return this.code; } @@ -136,6 +121,7 @@ return this.englishName; } + @Override public Long getId() { return this.id; } @@ -176,6 +162,7 @@ this.englishName = englishName; } + @Override public void setId(final Long id) { this.id = id; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,6 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @@ -36,9 +34,6 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - /** * GlobalizeLanguages generated by hbm2java from original rails globalize schema * @@ -149,16 +144,6 @@ this.dateFormat = dateFormat; } - @Finder(query = "FROM I18nLanguage l WHERE code = :language") - public I18nLanguage findByCode(@Named("language") final String language) { - return null; - } - - @Finder(query = "FROM I18nLanguage ORDER BY englishName") - public List<I18nLanguage> getAll() { - return null; - } - public String getCode() { return code; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,6 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -28,8 +26,6 @@ import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; import javax.persistence.Table; import org.hibernate.search.annotations.DocumentId; @@ -37,11 +33,6 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; -import com.wideplay.warp.persist.dao.FirstResult; -import com.wideplay.warp.persist.dao.MaxResults; - /** * GlobalizeTranslations generated by hbm2java from original rails globalize * schema @@ -49,43 +40,26 @@ @Entity @Indexed @Table(name = "globalize_translations") -@NamedQueries( { - @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"), - @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"), - @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"), - @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") }) public class I18nTranslation implements HasId { public static final String DEF_NAMESPACE = "kune_core"; public static final Integer DEF_PLUR_INDEX = 1; public static final String DEFAULT_LANG = "en"; + public static final String UNTRANSLATED_VALUE = null; - private static final String TRANSLATED_QUERY = "translated"; - private static final String UNTRANSLATED_QUERY = "untranslated"; - private static final String TRANSLATED_COUNT_QUERY = "translatedcount"; - private static final String UNTRANSLATED_COUNT_QUERY = "untranslatedcount"; + @Column(name = "facet") + private String facet; + @Id @GeneratedValue @DocumentId @Column(name = "id", unique = true, nullable = false) private Long id; - @Column(name = "gtype") - private String type; - - @Column(name = "tr_key") - private String trKey; - - @Column(name = "table_name") - private String tableName; - @Column(name = "item_id") private Integer itemId; - @Column(name = "facet") - private String facet; - @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name = "language_id") private I18nLanguage language; @@ -93,161 +67,129 @@ @Column(name = "pluralization_index") private Integer pluralizationIndex; + @Column(name = "table_name") + private String tableName; + @Column(name = "text") private String text; + @Column(name = "tr_key") + private String trKey; + + @Column(name = "gtype") + private String type; + public I18nTranslation() { - this(null, null, null, null, null, null, null, null); + this(null, null, null, null, null, null, null, null); } public I18nTranslation(final String trKey, final I18nLanguage language, final String text) { - this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language); + this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language); } public I18nTranslation(final String facet, final Integer itemId, final Integer pluralizationIndex, - final String tableName, final String text, final String trKey, final String type, - final I18nLanguage language) { - this.type = type; - this.trKey = trKey; - this.tableName = tableName; - this.itemId = itemId; - this.facet = facet; - this.language = language; - this.pluralizationIndex = pluralizationIndex; - this.text = text; + final String tableName, final String text, final String trKey, final String type, + final I18nLanguage language) { + this.type = type; + this.trKey = trKey; + this.tableName = tableName; + this.itemId = itemId; + this.facet = facet; + this.language = language; + this.pluralizationIndex = pluralizationIndex; + this.text = text; } public I18nTranslation cloneForNewLanguage() { - final I18nTranslation clone = new I18nTranslation(); - clone.type = type; - clone.trKey = trKey; - clone.tableName = tableName; - clone.itemId = itemId; - clone.facet = facet; - clone.language = null; - clone.pluralizationIndex = pluralizationIndex; - clone.text = null; - return clone; + final I18nTranslation clone = new I18nTranslation(); + clone.type = type; + clone.trKey = trKey; + clone.tableName = tableName; + clone.itemId = itemId; + clone.facet = facet; + clone.language = null; + clone.pluralizationIndex = pluralizationIndex; + clone.text = null; + return clone; } - @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language") - public List<I18nTranslation> findByLanguage(@Named("language") final String language) { - return null; - } - public String getFacet() { - return this.facet; + return this.facet; } + @Override public Long getId() { - return this.id; + return this.id; } public Integer getItemId() { - return this.itemId; + return this.itemId; } public I18nLanguage getLanguage() { - return language; + return language; } - @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)") - public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage") final I18nLanguage deflanguage, - @Named("language") final I18nLanguage language) { - return null; - } - public Integer getPluralizationIndex() { - return this.pluralizationIndex; + return this.pluralizationIndex; } public String getTableName() { - return this.tableName; + return this.tableName; } public String getText() { - return this.text; + return this.text; } - @Finder(namedQuery = TRANSLATED_QUERY) - public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language) { - return null; - } - - @Finder(namedQuery = TRANSLATED_QUERY) - public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language, - @FirstResult final int first, @MaxResults final int max) { - return null; - } - - @Finder(namedQuery = TRANSLATED_COUNT_QUERY) - public Long getTranslatedLexiconCount(@Named("language") final I18nLanguage language) { - return null; - } - public String getTrKey() { - return this.trKey; + return this.trKey; } public String getType() { - return this.type; + return this.type; } - @Finder(namedQuery = UNTRANSLATED_QUERY) - public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language) { - return null; - } - - @Finder(namedQuery = UNTRANSLATED_QUERY) - public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language, - @FirstResult final int first, @MaxResults final int max) { - return null; - } - - @Finder(namedQuery = UNTRANSLATED_COUNT_QUERY) - public Long getUnstranslatedLexiconCount(@Named("language") final I18nLanguage language) { - return null; - } - public void setFacet(final String facet) { - this.facet = facet; + this.facet = facet; } + @Override public void setId(final Long id) { - this.id = id; + this.id = id; } public void setItemId(final Integer itemId) { - this.itemId = itemId; + this.itemId = itemId; } public void setLanguage(final I18nLanguage language) { - this.language = language; + this.language = language; } public void setPluralizationIndex(final Integer pluralizationIndex) { - this.pluralizationIndex = pluralizationIndex; + this.pluralizationIndex = pluralizationIndex; } public void setTableName(final String tableName) { - this.tableName = tableName; + this.tableName = tableName; } public void setText(final String text) { - this.text = text; + this.text = text; } public void setTrKey(final String trKey) { - this.trKey = trKey; + this.trKey = trKey; } public void setType(final String type) { - this.type = type; + this.type = type; } @Override public String toString() { - return "I18nTranslation[" + trKey + " (" + language + ") " + text + "]"; + return "I18nTranslation[" + trKey + " (" + language + ") " + text + "]"; } } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,6 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -29,32 +27,29 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Table(name = "licenses") public class License implements HasId { + private String description; + @Id @GeneratedValue private Long id; - @Column(unique = true) - private String shortName; - - @Column(unique = true) - private String longName; - - private String description; - @Column(nullable = false) - private String url; + private String imageUrl; + private boolean isCC; + private boolean isCopyleft; private boolean isDeprecated; + @Column(unique = true) + private String longName; private String rdf; + @Column(unique = true) + private String shortName; @Column(nullable = false) - private String imageUrl; + private String url; public License() { this(null, null, null, null, false, false, false, null, null); @@ -74,62 +69,35 @@ this.imageUrl = imageUrl; } - public Long getId() { - return id; - } - - public void setId(final Long id) { - this.id = id; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(final String shortName) { - this.shortName = shortName; - } - - public String getLongName() { - return longName; - } - - public void setLongName(final String longName) { - this.longName = longName; - } - public String getDescription() { return description; } - public void setDescription(final String description) { - this.description = description; + @Override + public Long getId() { + return id; } public String getImageUrl() { return imageUrl; } - public void setImageUrl(final String imageUrl) { - this.imageUrl = imageUrl; + public String getLongName() { + return longName; } public String getRdf() { return rdf; } - public void setRdf(final String rdf) { - this.rdf = rdf; + public String getShortName() { + return shortName; } public String getUrl() { return url; } - public void setUrl(final String url) { - this.url = url; - } - public boolean isCC() { return isCC; } @@ -154,23 +122,32 @@ this.isDeprecated = isDeprecated; } - @Finder(query = "from License l where l.shortName = :shortName") - public License findByShortName(@Named("shortName") final String shortName) { - return null; + public void setDescription(final String description) { + this.description = description; } - @Finder(query = "from License") - public List<License> getAll() { - return null; + @Override + public void setId(final Long id) { + this.id = id; } - @Finder(query = "from License where isCC = true") - public List<License> getCC() { - return null; + public void setImageUrl(final String imageUrl) { + this.imageUrl = imageUrl; } - @Finder(query = "from License where isCC = false") - public List<License> getNotCC() { - return null; + public void setLongName(final String longName) { + this.longName = longName; } + + public void setRdf(final String rdf) { + this.rdf = rdf; + } + + public void setShortName(final String shortName) { + this.shortName = shortName; + } + + public void setUrl(final String url) { + this.url = url; + } } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -29,28 +29,25 @@ import org.hibernate.validator.Range; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Table(name = "rates", uniqueConstraints = { @UniqueConstraint(columnNames = { "content_id", "rater_id" }) }) public class Rate { + @ManyToOne + Content content; + + @Basic(optional = false) + private final Long createdOn; + @Id @GeneratedValue Long id; @ManyToOne - Content content; - - @ManyToOne User rater; @Range(min = 0, max = 5) Double value; - @Basic(optional = false) - private final Long createdOn; - public Rate() { this(null, null, null); } @@ -62,21 +59,6 @@ this.createdOn = System.currentTimeMillis(); } - @Finder(query = "SELECT AVG(r.value) FROM Rate r WHERE r.content = :content") - public Double calculateRate(@Named("content") final Content content) { - return null; - } - - @Finder(query = "SELECT count(*) FROM Rate r WHERE r.content = :content") - public Long calculateRateNumberOfUsers(@Named("content") final Content content) { - return null; - } - - @Finder(query = "SELECT r FROM Rate r WHERE r.rater = :user AND r.content = :content") - public Rate find(@Named("user") final User user, @Named("content") final Content content) { - return null; - } - public Content getContent() { return content; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -34,14 +34,14 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Indexed @Table(name = "tags") public class Tag implements HasId { + @Basic(optional = false) + private final Long createdOn; + @Id @GeneratedValue @DocumentId @@ -51,9 +51,6 @@ @Column(unique = true) private String name; - @Basic(optional = false) - private final Long createdOn; - public Tag() { this(null); } @@ -63,15 +60,11 @@ this.createdOn = System.currentTimeMillis(); } - @Finder(query = "FROM Tag g WHERE g.name = :name") - public Tag findByTagName(@Named("name") final String tag) { - return null; - } - public Long getCreatedOn() { return createdOn; } + @Override public Long getId() { return id; } @@ -80,6 +73,7 @@ return name; } + @Override public void setId(final Long id) { this.id = id; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,16 +19,12 @@ */ package cc.kune.domain; -import java.util.List; - import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToOne; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; import javax.persistence.Table; import org.hibernate.search.annotations.DocumentId; @@ -38,24 +34,10 @@ import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - -//See: -//http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_langref_resultt... -@NamedQueries({ - @NamedQuery(name = "tagsgrouped", query = "SELECT NEW cc.kune.core.shared.domain.TagCount(t.name, COUNT(tuc.content.id)) " - + "FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group " - + "GROUP BY t.name ORDER BY t.name"), - @NamedQuery(name = "tagsmaxgrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1"), - @NamedQuery(name = "tagsmingrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") }) @Entity @Indexed @Table(name = "tag_user_content") public class TagUserContent implements HasId { - public static final String TAGSGROUPED = "tagsgrouped"; - public static final String TAGSMAXGROUPED = "tagsmaxgrouped"; - public static final String TAGSMINGROUPED = "tagsmingrouped"; @IndexedEmbedded @NotNull @@ -91,16 +73,6 @@ this.createdOn = System.currentTimeMillis(); } - @Finder(query = "FROM TagUserContent t WHERE t.user = :user AND t.content = :content") - public List<TagUserContent> find(@Named("user") final User user, @Named("content") final Content content) { - return null; - } - - @Finder(query = "SELECT t.tag FROM TagUserContent t WHERE t.user = :user AND t.content = :content") - public List<Tag> findTags(@Named("user") final User user, @Named("content") final Content content) { - return null; - } - public Content getContent() { return content; } Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,7 +19,6 @@ */ package cc.kune.domain; -import java.util.List; import java.util.TimeZone; import javax.persistence.Basic; @@ -48,9 +47,6 @@ import cc.kune.core.shared.domain.utils.StateToken; import cc.kune.domain.utils.HasId; -import com.google.inject.name.Named; -import com.wideplay.warp.persist.dao.Finder; - @Entity @Indexed @Table(name = "kusers") @@ -163,25 +159,10 @@ // this.properties = properties; } - @Finder(query = "from User") - public List<User> getAll() { - return null; - } - public UserBuddiesVisibility getBuddiesVisibility() { return buddiesVisibility; } - @Finder(query = "from User where email = :email") - public User getByEmail(@Named("email") final String email) { - return null; - } - - @Finder(query = "from User where shortName = :shortName") - public User getByShortName(@Named("shortName") final String shortName) { - return null; - } - public I18nCountry getCountry() { return country; } Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,30 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import cc.kune.domain.Container; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface ContainerFinder { + @Finder(query = "SELECT COUNT(*) FROM Container c WHERE c.parent = :container AND c.name LIKE :title") + public Long findIfExistsTitle(@Named("container") final Container container, @Named("title") final String title); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,57 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import static cc.kune.domain.Content.GROUP; +import static cc.kune.domain.Content.MIMETYPE; +import static cc.kune.domain.Content.TITLE; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.Container; +import cc.kune.domain.Content; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; +import com.google.inject.persist.finder.FirstResult; +import com.google.inject.persist.finder.MaxResults; + +public interface ContentFinder { + @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) + public List<Content> find2Mime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, + @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2, + @FirstResult final int offset, @MaxResults final int limit); + + @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null") + public int find2MimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, + @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2); + + @Finder(query = "SELECT count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title") + public Long findIfExistsTitle(@Named("container") final Container container, @Named(TITLE) final String title); + + @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class) + public List<Content> findMime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, + @Named(MIMETYPE) final String mimetype, @FirstResult final int offset, @MaxResults final int limit); + + @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null") + public int findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title, + @Named(MIMETYPE) final String mimetype); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,33 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.ExtMediaDescrip; + +import com.google.inject.persist.finder.Finder; + +public interface ExtMediaDescripFinder { + + @Finder(query = "from ExtMediaDescrip", returnAs = ArrayList.class) + public List<ExtMediaDescrip> getAll(); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,27 @@ +package cc.kune.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.Group; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface GroupFinder { + + @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)", returnAs = ArrayList.class) + public List<Group> findAdminInGroups(@Named("groupid") final Long groupId); + + @Finder(query = "FROM Group g WHERE g.shortName = :shortName") + public Group findByShortName(@Named("shortName") final String shortName); + + @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)", returnAs = ArrayList.class) + public List<Group> findCollabInGroups(@Named("groupid") final Long groupId); + + @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t WHERE t.enabled=true AND t.root.owner.id = :groupid", returnAs = ArrayList.class) + public List<String> findEnabledTools(@Named("groupid") final Long groupId); + + @Finder(query = "FROM Group", returnAs = ArrayList.class) + public List<Group> getAll(); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,38 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.I18nCountry; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface I18nCountryFinder { + + @Finder(query = "FROM I18nCountry WHERE code = :country") + public I18nCountry findByCode(@Named("country") final String country); + + @Finder(query = "FROM I18nCountry ORDER BY english_name", returnAs = ArrayList.class) + public List<I18nCountry> getAll(); + +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,38 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.I18nLanguage; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface I18nLanguageFinder { + + @Finder(query = "FROM I18nLanguage l WHERE code = :language") + public I18nLanguage findByCode(@Named("language") final String language); + + @Finder(query = "FROM I18nLanguage ORDER BY englishName", returnAs = ArrayList.class) + public List<I18nLanguage> getAll(); + +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,74 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; + +import cc.kune.domain.I18nLanguage; +import cc.kune.domain.I18nTranslation; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; +import com.google.inject.persist.finder.FirstResult; +import com.google.inject.persist.finder.MaxResults; + +@NamedQueries({ + @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"), + @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"), + @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"), + @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") }) +public interface I18nTranslationFinder { + String TRANSLATED_COUNT_QUERY = "translatedcount"; + String TRANSLATED_QUERY = "translated"; + String UNTRANSLATED_COUNT_QUERY = "untranslatedcount"; + String UNTRANSLATED_QUERY = "untranslated"; + + @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language", returnAs = ArrayList.class) + public List<I18nTranslation> findByLanguage(@Named("language") final String language); + + @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)", returnAs = ArrayList.class) + public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage") final I18nLanguage deflanguage, + @Named("language") final I18nLanguage language); + + @Finder(namedQuery = TRANSLATED_QUERY, returnAs = ArrayList.class) + public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language); + + @Finder(namedQuery = TRANSLATED_QUERY, returnAs = ArrayList.class) + public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language, + @FirstResult final int first, @MaxResults final int max); + + @Finder(namedQuery = TRANSLATED_COUNT_QUERY) + public Long getTranslatedLexiconCount(@Named("language") final I18nLanguage language); + + @Finder(namedQuery = UNTRANSLATED_QUERY, returnAs = ArrayList.class) + public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language); + + @Finder(namedQuery = UNTRANSLATED_QUERY, returnAs = ArrayList.class) + public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language, + @FirstResult final int first, @MaxResults final int max); + + @Finder(namedQuery = UNTRANSLATED_COUNT_QUERY) + public Long getUnstranslatedLexiconCount(@Named("language") final I18nLanguage language); + +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,43 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.License; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface LicenseFinder { + + @Finder(query = "from License l where l.shortName = :shortName") + public License findByShortName(@Named("shortName") final String shortName); + + @Finder(query = "from License", returnAs = ArrayList.class) + public List<License> getAll(); + + @Finder(query = "from License where isCC = true", returnAs = ArrayList.class) + public List<License> getCC(); + + @Finder(query = "from License where isCC = false", returnAs = ArrayList.class) + public List<License> getNotCC(); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,40 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import cc.kune.domain.Content; +import cc.kune.domain.Rate; +import cc.kune.domain.User; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface RateFinder { + + @Finder(query = "SELECT AVG(r.value) FROM Rate r WHERE r.content = :content") + public Double calculateRate(@Named("content") final Content content); + + @Finder(query = "SELECT count(*) FROM Rate r WHERE r.content = :content") + public Long calculateRateNumberOfUsers(@Named("content") final Content content); + + @Finder(query = "SELECT r FROM Rate r WHERE r.rater = :user AND r.content = :content") + public Rate find(@Named("user") final User user, @Named("content") final Content content); + +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,32 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import cc.kune.domain.Tag; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface TagFinder { + + @Finder(query = "FROM Tag g WHERE g.name = :name") + public Tag findByTagName(@Named("name") final String tag); + +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,53 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.core.shared.domain.TagCount; +import cc.kune.domain.Content; +import cc.kune.domain.Group; +import cc.kune.domain.Tag; +import cc.kune.domain.TagUserContent; +import cc.kune.domain.User; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface TagUserContentFinder { + + @Finder(query = "FROM TagUserContent t WHERE t.user = :user AND t.content = :content", returnAs = ArrayList.class) + public List<TagUserContent> find(@Named("user") final User user, @Named("content") final Content content); + + @Finder(query = "SELECT t.tag FROM TagUserContent t WHERE t.user = :user AND t.content = :content", returnAs = ArrayList.class) + public List<Tag> findTags(@Named("user") final User user, @Named("content") final Content content); + + @Finder(query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") + public int getMaxGrouped(@Named("group") final Group group); + + @Finder(query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1") + public int getMinGrouped(@Named("group") final Group group); + + @Finder(query = "SELECT NEW cc.kune.core.shared.domain.TagCount(t.name, COUNT(tuc.content.id)) " + + "FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group " + + "GROUP BY t.name ORDER BY t.name", returnAs = ArrayList.class) + public List<TagCount> getTagsGroups(@Named("group") final Group group); +} Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,41 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import java.util.ArrayList; +import java.util.List; + +import cc.kune.domain.User; + +import com.google.inject.name.Named; +import com.google.inject.persist.finder.Finder; + +public interface UserFinder { + + @Finder(query = "from User", returnAs = ArrayList.class) + public List<User> getAll(); + + @Finder(query = "from User where email = :email") + public User getByEmail(@Named("email") final String email); + + @Finder(query = "from User where shortName = :shortName") + public User getByShortName(@Named("shortName") final String shortName); + +} Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -23,6 +23,7 @@ import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.websocket.WebSocket; import org.eclipse.jetty.websocket.WebSocketServlet; +import org.jruby.rack.RackFilter; import org.ourproject.kune.rack.RackServletFilter; import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate; import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult; @@ -50,7 +51,6 @@ import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.name.Named; -import com.google.inject.servlet.GuiceFilter; import com.google.inject.servlet.GuiceServletContextListener; import com.google.protobuf.Descriptors; import com.google.protobuf.Descriptors.MethodDescriptor; @@ -59,6 +59,8 @@ import com.google.protobuf.Service; import com.google.protobuf.UnknownFieldSet; +import de.spieleck.servlets.ProxyServlet; + /** * ServerRpcProvider can provide instances of type Service over an incoming * network socket and service incoming RPCs to these services and their methods. @@ -417,12 +419,69 @@ httpServer.addConnector(connector); } + // final WebAppContext context = new WebAppContext(); final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); if (jettySessionManager != null) { context.getSessionHandler().setSessionManager(jettySessionManager); } context.setResourceBase(resourceBase); context.setContextPath(baseUrl); + + // context.setWar(baseUrl); + + final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class); + httpbindHolder.setInitParameter("remotePath", "/http-bind/"); + httpbindHolder.setInitParameter("remotePort", "5280"); + context.addServlet(httpbindHolder, "/http-bind/"); + + final FilterHolder rubyRack = new FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class); + rubyRack.setFilter(new RackFilter()); + rubyRack.setInitParameter("jruby.standalone", "true"); + rubyRack.setInitParameter("rails.root", "/WEB-INF/publicspace/"); + rubyRack.setInitParameter("files.prefix", "/WEB-INF/publicspace/public"); + rubyRack.setInitParameter("rails.env", "production"); + rubyRack.setInitParameter("jruby.max.runtimes", "1"); + rubyRack.setInitParameter("public.root", "/public/"); + context.addFilter(rubyRack, "/public/*", 0); + + // <context-param> + // <param-name>jruby.standalone</param-name> + // <param-value>true</param-value> + // </context-param> + // <context-param> + // <param-name>rails.root</param-name> + // <param-value>/WEB-INF/publicspace/ + // </param-value> + // </context-param> + // <context-param> + // <param-name>files.prefix</param-name> + // <param-value>/WEB-INF/publicspace/public + // </param-value> + // </context-param> + // <context-param> + // <param-name>rails.env</param-name> + // <param-value>production</param-value> + // </context-param> + // <context-param> + // <param-name>jruby.max.runtimes</param-name> + // <param-value>1</param-value> + // </context-param> + // <context-param> + // <param-name>public.root</param-name> + // <param-value>/public/</param-value> + // </context-param> + // <filter> + // <filter-name>RackFilter</filter-name> + // <filter-class>org.jruby.rack.RackFilter</filter-class> + // </filter> + // <filter-mapping> + // <filter-name>RackFilter</filter-name> + // <url-pattern>/public/*</url-pattern> + // </filter-mapping> + // <listener> + // <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class> + // </listener> + context.addEventListener(new GuiceServletContextListener() { @Override protected Injector getInjector() { @@ -430,12 +489,13 @@ } }); context.setAttribute(RackServletFilter.INJECTOR_PARENT_ATTRIBUTE, injector); - context.addFilter(GuiceFilter.class, "/*", 0); final FilterHolder filterHolder = new FilterHolder(RackServletFilter.class); filterHolder.setInitParameter("org.ourproject.kune.rack.RackModule", "org.ourproject.kune.app.server.KuneRackModule"); - context.addFilter(filterHolder, "/ws*", 0); + context.addFilter(filterHolder, "/ws/*", 0); + // context.addFilter(GuiceFilter.class, "/*", 0); + // Servlet where the websocket connection is served from. final ServletHolder wsholder = new ServletHolder(new WaveWebSocketServlet()); context.addServlet(wsholder, "/socket"); @@ -477,11 +537,16 @@ final ServletHolder defaultServlet = new ServletHolder(new DefaultServlet()); context.addServlet(defaultServlet, "/static/*"); context.addServlet(defaultServlet, "/webclient/*"); + context.addServlet(defaultServlet, "/ws/*"); for (final Pair<String, ServletHolder> servlet : servletRegistry) { context.addServlet(servlet.getSecond(), servlet.getFirst()); } + // final ContextHandlerCollection contexts = new + // ContextHandlerCollection(); + // contexts.setHandlers(new Handler[] { context, webContext }); + httpServer.setHandler(context); try { Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,3 @@ +package cc.kune.wave.server; + + Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -42,8 +42,6 @@ import org.waveprotocol.box.server.rpc.AuthenticationServlet; import org.waveprotocol.box.server.rpc.FetchServlet; import org.waveprotocol.box.server.rpc.SignOutServlet; -import org.waveprotocol.box.server.rpc.UserRegistrationServlet; -import org.waveprotocol.box.server.rpc.WaveClientServlet; import org.waveprotocol.box.server.waveserver.WaveBus; import org.waveprotocol.box.server.waveserver.WaveServerException; import org.waveprotocol.box.server.waveserver.WaveletProvider; @@ -128,7 +126,7 @@ server.addServlet(SessionManager.SIGN_IN_URL, injector.getInstance(AuthenticationServlet.class)); server.addServlet("/auth/signout", injector.getInstance(SignOutServlet.class)); - server.addServlet("/auth/register", injector.getInstance(UserRegistrationServlet.class)); + server.addServlet("/auth/register", injector.getInstance(CustomUserRegistrationServlet.class)); server.addServlet("/fetch/*", injector.getInstance(FetchServlet.class)); @@ -147,7 +145,7 @@ final ServletHolder proxyServletHolder = server.addServlet("/gadgets/*", proxyServlet); proxyServletHolder.setInitParameter("HostHeader", gadgetServerHostname); - server.addServlet("/", injector.getInstance(WaveClientServlet.class)); + server.addServlet("/", injector.getInstance(CustomWaveClientServlet.class)); } public static void main(final String... args) { Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,6 +27,7 @@ import org.ourproject.kune.gallery.server.GalleryServerModule; import org.ourproject.kune.platf.server.LoggerMethodInterceptor; import org.ourproject.kune.platf.server.PlatformServerModule; +import org.ourproject.kune.platf.server.init.FinderRegistry; import org.ourproject.kune.platf.server.manager.file.EntityLogoDownloadManager; import org.ourproject.kune.platf.server.manager.file.EntityLogoUploadManager; import org.ourproject.kune.platf.server.manager.file.FileDownloadManager; @@ -57,10 +58,10 @@ import com.google.inject.Module; import com.google.inject.Scope; import com.google.inject.matcher.Matchers; +import com.google.inject.persist.jpa.JpaPersistModule; import com.google.inject.servlet.GuiceFilter; import com.google.inject.servlet.ServletModule; import com.google.inject.servlet.SessionScoped; -import com.wideplay.warp.jpa.JpaUnit; public class KuneRackModule implements RackModule { public static final Log LOG = LogFactory.getLog(KuneRackModule.class); @@ -75,8 +76,8 @@ configModule = new AbstractModule() { @Override public void configure() { + install(FinderRegistry.init(new JpaPersistModule(jpaUnit))); bindInterceptor(Matchers.any(), new NotInObject(), new LoggerMethodInterceptor()); - bindConstant().annotatedWith(JpaUnit.class).to(jpaUnit); bindConstant().annotatedWith(PropertiesFileName.class).to(propertiesFileName); if (sessionScope != null) { bindScope(SessionScoped.class, sessionScope); @@ -100,7 +101,7 @@ builder.exclude("/templates/.*"); /* Wave with context '/' */ - // builder.exclude("/*"); + builder.exclude("/"); builder.exclude("/attachment/.*"); builder.exclude("/auth/signin"); builder.exclude("/auth/signout"); @@ -114,6 +115,7 @@ builder.exclude("/gadgets"); builder.exclude("/gadgets/.*"); builder.exclude("/socket.io/*"); + builder.exclude("/socket.io/.*]"); builder.exclude("/socket"); builder.exclude("/static/.*"); builder.exclude("/webclient/.*"); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,8 +20,8 @@ package org.ourproject.kune.platf.client.actions.ui; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.OldAbstractAction; -import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.PropertyChangeEvent; import org.ourproject.kune.platf.client.actions.PropertyChangeListener; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,10 +19,10 @@ */ package org.ourproject.kune.platf.client.actions.ui; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.KeyStroke; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.PropertyChangeEvent; import org.ourproject.kune.platf.client.actions.PropertyChangeListener; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,8 @@ */ package org.ourproject.kune.platf.client.actions.ui; +import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.OldAbstractAction; -import org.ourproject.kune.platf.client.actions.ActionEvent; public abstract class AbstractSeparatorDescriptor extends OldGuiActionDescrip { Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,9 +19,9 @@ */ package org.ourproject.kune.platf.client.actions.ui; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.ActionEvent; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import com.google.gwt.resources.client.ImageResource; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,8 +19,8 @@ */ package org.ourproject.kune.platf.client.actions.ui; +import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.OldAbstractAction; -import org.ourproject.kune.platf.client.actions.Action; import com.google.gwt.resources.client.ImageResource; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,10 +20,10 @@ package org.ourproject.kune.platf.client.actions.ui; import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.ChangebleObject; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; /** * The Class AbstractUIActionDescriptor. Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,11 +19,11 @@ */ package org.ourproject.kune.platf.client.shortcuts; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.ChangebleObject; import org.ourproject.kune.platf.client.actions.InputMap; import org.ourproject.kune.platf.client.actions.KeyStroke; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Shortcut; import com.allen_sauer.gwt.log.client.Log; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,12 +20,12 @@ package org.ourproject.kune.platf.client.ui.rte.basic; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.KeyStroke; import org.ourproject.kune.platf.client.actions.OldAbstractAction; -import org.ourproject.kune.platf.client.actions.KeyStroke; -import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip; import org.ourproject.kune.platf.client.actions.ui.GuiAddCondition; import org.ourproject.kune.platf.client.actions.ui.IsActionExtensible; import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; +import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip; import com.calclab.suco.client.events.Listener0; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -23,13 +23,13 @@ import org.cobogw.gwt.user.client.CSS; import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.InputMap; import org.ourproject.kune.platf.client.actions.KeyStroke; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.ui.ComplexToolbar; +import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister; import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip; -import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister; import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister; import org.ourproject.kune.platf.client.ui.noti.NotifyUser; import org.ourproject.kune.platf.client.ui.rte.RichTextArea; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -28,22 +28,22 @@ import java.util.Map; import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.AbstractExtendedAction; import org.ourproject.kune.platf.client.actions.ActionEvent; import org.ourproject.kune.platf.client.actions.InputMap; import org.ourproject.kune.platf.client.actions.KeyStroke; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Shortcut; import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter; import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor; import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection; -import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip; import org.ourproject.kune.platf.client.actions.ui.GuiAddCondition; import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; -import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuRadioItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuSeparatorDescriptor; +import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip; +import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.PushButtonDescriptor; import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor; import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor.Type; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -23,20 +23,20 @@ import com.google.inject.Inject; import com.google.inject.Singleton; -import com.wideplay.warp.persist.PersistenceService; +import com.google.inject.persist.PersistService; @Singleton public class KunePersistenceService { @Inject DatabaseInitializer databaseInitializer; @Inject - PersistenceService persistenceService; + PersistService persistenceService; public void start() { try { persistenceService.start(); databaseInitializer.initConditional(); - } catch (Exception e) { + } catch (final Exception e) { throw new ServerException("Error starting persistence service", e); } } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -99,23 +99,9 @@ import cc.kune.core.client.rpcservices.UserService; import cc.kune.core.shared.i18n.I18nTranslationService; import cc.kune.domain.Comment; -import cc.kune.domain.Container; -import cc.kune.domain.Content; -import cc.kune.domain.ExtMediaDescrip; -import cc.kune.domain.Group; -import cc.kune.domain.I18nCountry; -import cc.kune.domain.I18nLanguage; -import cc.kune.domain.I18nTranslation; -import cc.kune.domain.License; -import cc.kune.domain.Rate; import cc.kune.domain.SocialNetwork; -import cc.kune.domain.Tag; -import cc.kune.domain.TagUserContent; -import cc.kune.domain.User; import com.google.inject.matcher.Matchers; -import com.wideplay.warp.persist.PersistenceService; -import com.wideplay.warp.persist.UnitOfWork; public class PlatformServerModule extends AbstractExtendedModule { private void bindFinders() { @@ -124,20 +110,8 @@ // created in an ancestor injector whenever possible (...) // (This fails with finders, then we make explicit bindings) - bind(User.class); - bind(Group.class); - bind(Content.class); - bind(Container.class); - bind(License.class); bind(SocialNetwork.class); - bind(Rate.class); - bind(I18nCountry.class); - bind(I18nLanguage.class); - bind(I18nTranslation.class); - bind(Tag.class); - bind(TagUserContent.class); bind(Comment.class); - bind(ExtMediaDescrip.class); } private void bindManagers() { @@ -182,7 +156,7 @@ @Override protected void configure() { - install(PersistenceService.usingJpa().across(UnitOfWork.TRANSACTION).buildModule()); + // install(PersistService.usingJpa().across(UnitOfWork.TRANSACTION).buildModule()); bind(KunePersistenceService.class); bindFinders(); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -38,9 +38,10 @@ import cc.kune.core.client.errors.NameInUseException; import cc.kune.domain.AccessLists; import cc.kune.domain.Container; -import cc.kune.domain.Content; import cc.kune.domain.Group; import cc.kune.domain.I18nLanguage; +import cc.kune.domain.finders.ContainerFinder; +import cc.kune.domain.finders.ContentFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -49,25 +50,26 @@ @Singleton public class ContainerManagerDefault extends DefaultManager<Container, Long> implements ContainerManager { - private final Container containerFinder; - private final Content contentFinder; + private final ContainerFinder containerFinder; + private final ContentFinder contentFinder; @Inject - public ContainerManagerDefault(final Content contentFinder, final Container containerFinder, + public ContainerManagerDefault(final ContentFinder contentFinder, final ContainerFinder containerFinder, final Provider<EntityManager> provider) { super(provider, Container.class); this.contentFinder = contentFinder; this.containerFinder = containerFinder; } + @Override public Container createFolder(final Group group, final Container parent, final String name, final I18nLanguage language, final String typeId) { FilenameUtils.checkBasicFilename(name); - String newtitle = findInexistentName(parent, name); + final String newtitle = findInexistentName(parent, name); final List<Container> parentAbsolutePath = parent.getAbsolutePath(); final List<Container> childAbsolutePath = new ArrayList<Container>(); - for (Container parentRef : parentAbsolutePath) { + for (final Container parentRef : parentAbsolutePath) { childAbsolutePath.add(parentRef); } // FIXME: use @@ -82,6 +84,7 @@ return child; } + @Override public Container createRootFolder(final Group group, final String toolName, final String name, final String type) { final Container container = new Container(name, group, toolName); container.setTypeId(type); @@ -92,15 +95,26 @@ } /** Duplicate code in ContentMD **/ + @Override public boolean findIfExistsTitle(final Container container, final String title) { return (contentFinder.findIfExistsTitle(container, title) > 0) || (containerFinder.findIfExistsTitle(container, title) > 0); } + /** Duplicate code in ContentMD **/ + private String findInexistentName(final Container container, final String title) { + String initialTitle = String.valueOf(title); + while (findIfExistsTitle(container, initialTitle)) { + initialTitle = FileUtils.getNextSequentialFileName(initialTitle); + } + return initialTitle; + } + + @Override public Container renameFolder(final Group group, final Container container, final String newName) throws DefaultException { FilenameUtils.checkBasicFilename(newName); - String newNameWithoutNT = FilenameUtils.chomp(newName); + final String newNameWithoutNT = FilenameUtils.chomp(newName); if (container.isRoot()) { throw new DefaultException("Root folder cannot be renamed"); } @@ -112,10 +126,12 @@ return container; } + @Override public SearchResult<Container> search(final String search) { return this.search(search, null, null); } + @Override public SearchResult<Container> search(final String search, final Integer firstResult, final Integer maxResults) { final MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name" }, new StandardAnalyzer()); Query query; @@ -127,18 +143,10 @@ return super.search(query, firstResult, maxResults); } + @Override public void setAccessList(final Container container, final AccessLists accessList) { container.setAccessLists(accessList); persist(container); } - /** Duplicate code in ContentMD **/ - private String findInexistentName(final Container container, final String title) { - String initialTitle = String.valueOf(title); - while (findIfExistsTitle(container, initialTitle)) { - initialTitle = FileUtils.getNextSequentialFileName(initialTitle); - } - return initialTitle; - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -48,6 +48,10 @@ import cc.kune.domain.Rate; import cc.kune.domain.Revision; import cc.kune.domain.User; +import cc.kune.domain.finders.ContainerFinder; +import cc.kune.domain.finders.ContentFinder; +import cc.kune.domain.finders.I18nLanguageFinder; +import cc.kune.domain.finders.UserFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -56,17 +60,17 @@ @Singleton public class ContentManagerDefault extends DefaultManager<Content, Long> implements ContentManager { + private final ContainerFinder containerFinder; + private final ContentFinder contentFinder; private final FinderService finder; - private final User userFinder; - private final I18nLanguage languageFinder; - private final Content contentFinder; - private final Container containerFinder; + private final I18nLanguageFinder languageFinder; private final TagUserContentManager tagManager; + private final UserFinder userFinder; @Inject - public ContentManagerDefault(final Content contentFinder, final Container containerFinder, - final Provider<EntityManager> provider, final FinderService finder, final User userFinder, - final I18nLanguage languageFinder, final TagUserContentManager tagManager) { + public ContentManagerDefault(final ContentFinder contentFinder, final ContainerFinder containerFinder, + final Provider<EntityManager> provider, final FinderService finder, final UserFinder userFinder, + final I18nLanguageFinder languageFinder, final TagUserContentManager tagManager) { super(provider, Content.class); this.contentFinder = contentFinder; this.containerFinder = containerFinder; @@ -76,6 +80,7 @@ this.tagManager = tagManager; } + @Override public void addAuthor(final User user, final Long contentId, final String authorShortName) throws DefaultException { final Content content = finder.getContent(contentId); final User author = userFinder.getByShortName(authorShortName); @@ -85,10 +90,11 @@ content.addAuthor(author); } + @Override public Content createContent(final String title, final String body, final User author, final Container container, final String typeId) { FilenameUtils.checkBasicFilename(title); - String newtitle = findInexistentTitle(container, title); + final String newtitle = findInexistentTitle(container, title); final Content newContent = new Content(); newContent.addAuthor(author); newContent.setLanguage(author.getLanguage()); @@ -102,19 +108,36 @@ return persist(newContent); } + private MultiFieldQueryParser createMultiFieldParser() { + final MultiFieldQueryParser parser = new MultiFieldQueryParser(DEF_GLOBAL_SEARCH_FIELDS, new StandardAnalyzer()); + return parser; + } + + @Override public boolean findIfExistsTitle(final Container container, final String title) { return (contentFinder.findIfExistsTitle(container, title) > 0) || (containerFinder.findIfExistsTitle(container, title) > 0); } + private String findInexistentTitle(final Container container, final String title) { + String initialTitle = String.valueOf(title); + while (findIfExistsTitle(container, initialTitle)) { + initialTitle = FileUtils.getNextSequentialFileName(initialTitle); + } + return initialTitle; + } + + @Override public Double getRateAvg(final Content content) { return finder.getRateAvg(content); } + @Override public Long getRateByUsers(final Content content) { return finder.getRateByUsers(content); } + @Override public Double getRateContent(final User rater, final Content content) { final Rate rate = finder.getRate(rater, content); if (rate != null) { @@ -124,6 +147,7 @@ } } + @Override public RateResult rateContent(final User rater, final Long contentId, final Double value) throws DefaultException { final Content content = finder.getContent(contentId); final Rate oldRate = finder.getRate(rater, content); @@ -134,11 +158,12 @@ oldRate.setValue(value); super.persist(oldRate, Rate.class); } - Double rateAvg = getRateAvg(content); - Long rateByUsers = getRateByUsers(content); + final Double rateAvg = getRateAvg(content); + final Long rateByUsers = getRateByUsers(content); return new RateResult(rateAvg != null ? rateAvg : 0D, rateByUsers != null ? rateByUsers.intValue() : 0, value); } + @Override public void removeAuthor(final User user, final Long contentId, final String authorShortName) throws DefaultException { final Content content = finder.getContent(contentId); @@ -149,8 +174,9 @@ content.removeAuthor(author); } + @Override public Content renameContent(final User user, final Long contentId, final String newTitle) throws DefaultException { - String newTitleWithoutNL = FilenameUtils.chomp(newTitle); + final String newTitleWithoutNL = FilenameUtils.chomp(newTitle); FilenameUtils.checkBasicFilename(newTitleWithoutNL); final Content content = finder.getContent(contentId); if (findIfExistsTitle(content.getContainer(), newTitleWithoutNL)) { @@ -160,6 +186,7 @@ return content; } + @Override public Content save(final User editor, final Content content, final String body) { final Revision revision = new Revision(content); revision.setEditor(editor); @@ -169,10 +196,12 @@ return persist(content); } + @Override public SearchResult<Content> search(final String search) { return this.search(search, null, null); } + @Override public SearchResult<Content> search(final String search, final Integer firstResult, final Integer maxResults) { final MultiFieldQueryParser parser = createMultiFieldParser(); Query query; @@ -184,22 +213,25 @@ return super.search(query, firstResult, maxResults); } + @Override public SearchResult<Content> searchMime(final String search, final Integer firstResult, final Integer maxResults, final String groupShortName, final String mimetype) { - List<Content> list = contentFinder.findMime(groupShortName, "%" + search + "%", mimetype, firstResult, + final List<Content> list = contentFinder.findMime(groupShortName, "%" + search + "%", mimetype, firstResult, maxResults); - int count = contentFinder.findMimeCount(groupShortName, "%" + search + "%", mimetype); + final int count = contentFinder.findMimeCount(groupShortName, "%" + search + "%", mimetype); return new SearchResult<Content>(count, list); } + @Override public SearchResult<?> searchMime(final String search, final Integer firstResult, final Integer maxResults, final String groupShortName, final String mimetype, final String mimetype2) { - List<Content> list = contentFinder.find2Mime(groupShortName, "%" + search + "%", mimetype, mimetype2, + final List<Content> list = contentFinder.find2Mime(groupShortName, "%" + search + "%", mimetype, mimetype2, firstResult, maxResults); - int count = contentFinder.find2MimeCount(groupShortName, "%" + search + "%", mimetype, mimetype2); + final int count = contentFinder.find2MimeCount(groupShortName, "%" + search + "%", mimetype, mimetype2); return new SearchResult<Content>(count, list); } + @Override public I18nLanguage setLanguage(final User user, final Long contentId, final String languageCode) throws DefaultException { final Content content = finder.getContent(contentId); @@ -211,11 +243,13 @@ return language; } + @Override public void setPublishedOn(final User user, final Long contentId, final Date publishedOn) throws DefaultException { final Content content = finder.getContent(contentId); content.setPublishedOn(publishedOn); } + @Override public Content setStatus(final Long contentId, final ContentStatus status) { final Content content = finder.getContent(contentId); content.setStatus(status); @@ -234,21 +268,9 @@ return content; } + @Override public void setTags(final User user, final Long contentId, final String tags) throws DefaultException { final Content content = finder.getContent(contentId); tagManager.setTags(user, content, tags); } - - private MultiFieldQueryParser createMultiFieldParser() { - final MultiFieldQueryParser parser = new MultiFieldQueryParser(DEF_GLOBAL_SEARCH_FIELDS, new StandardAnalyzer()); - return parser; - } - - private String findInexistentTitle(final Container container, final String title) { - String initialTitle = String.valueOf(title); - while (findIfExistsTitle(container, initialTitle)) { - initialTitle = FileUtils.getNextSequentialFileName(initialTitle); - } - return initialTitle; - } } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -26,8 +26,7 @@ import cc.kune.domain.User; import com.google.inject.Inject; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class DatabaseInitializer { private final ContentManager contentManager; @@ -205,7 +204,7 @@ } } - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void initDatabase() throws Exception { createOthers(); createLicenses(); Added: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java (rev 0) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,37 @@ +package org.ourproject.kune.platf.server.init; + +import cc.kune.domain.finders.ContainerFinder; +import cc.kune.domain.finders.ContentFinder; +import cc.kune.domain.finders.ExtMediaDescripFinder; +import cc.kune.domain.finders.GroupFinder; +import cc.kune.domain.finders.I18nCountryFinder; +import cc.kune.domain.finders.I18nLanguageFinder; +import cc.kune.domain.finders.I18nTranslationFinder; +import cc.kune.domain.finders.LicenseFinder; +import cc.kune.domain.finders.RateFinder; +import cc.kune.domain.finders.TagFinder; +import cc.kune.domain.finders.TagUserContentFinder; +import cc.kune.domain.finders.UserFinder; + +import com.google.inject.Module; +import com.google.inject.persist.jpa.JpaPersistModule; + +public class FinderRegistry { + + public static Module init(final JpaPersistModule jpaPersistModule) { + jpaPersistModule.addFinder(ContainerFinder.class); + jpaPersistModule.addFinder(ContentFinder.class); + jpaPersistModule.addFinder(ExtMediaDescripFinder.class); + jpaPersistModule.addFinder(GroupFinder.class); + jpaPersistModule.addFinder(I18nCountryFinder.class); + jpaPersistModule.addFinder(I18nLanguageFinder.class); + jpaPersistModule.addFinder(I18nTranslationFinder.class); + jpaPersistModule.addFinder(LicenseFinder.class); + jpaPersistModule.addFinder(RateFinder.class); + jpaPersistModule.addFinder(TagFinder.class); + jpaPersistModule.addFinder(TagUserContentFinder.class); + jpaPersistModule.addFinder(UserFinder.class); + return jpaPersistModule; + } + +} Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -22,6 +22,7 @@ import java.util.List; import cc.kune.domain.License; +import cc.kune.domain.finders.LicenseFinder; public interface LicenseManager { @@ -37,6 +38,6 @@ License persist(final License license); - void setLicenseFinder(final License licenseFinder); + void setLicenseFinder(final LicenseFinder licenseFinder); } \ No newline at end of file Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -24,7 +24,6 @@ import javax.persistence.EntityManager; import javax.persistence.NoResultException; -import javax.persistence.Query; import org.ourproject.kune.platf.server.manager.impl.DefaultManager; @@ -36,6 +35,7 @@ import cc.kune.domain.Tag; import cc.kune.domain.TagUserContent; import cc.kune.domain.User; +import cc.kune.domain.finders.TagUserContentFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -43,27 +43,45 @@ @Singleton public class TagUserContentManagerDefault extends DefaultManager<TagUserContent, Long> implements TagUserContentManager { + private final TagUserContentFinder finder; private final Provider<EntityManager> provider; private final TagManager tagManager; - private final TagUserContent finder; @Inject public TagUserContentManagerDefault(final Provider<EntityManager> provider, final TagManager tagManager, - final TagUserContent finder) { + final TagUserContentFinder finder) { super(provider, TagUserContent.class); this.provider = provider; this.tagManager = tagManager; this.finder = finder; } + @Override public List<Tag> find(final User user, final Content content) { return finder.findTags(user, content); } + private int getMaxCount(final Group group) { + // return finder.getMaxGrouped(group); + return 0; + } + + private int getMinCount(final Group group) { + // return finder.getMinGrouped(group); + return 0; + } + + private List<TagCount> getSummaryByGroup(final Group group) { + return new ArrayList<TagCount>(); + // return finder.getTagsGroups(group); + } + + @Override public TagCloudResult getTagCloudResultByGroup(final Group group) { return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group)); } + @Override public String getTagsAsString(final User user, final Content content) { String tagConcatenated = ""; if (user.getId() != null) { @@ -76,12 +94,14 @@ return tagConcatenated.replaceFirst(" ", ""); } + @Override public void remove(final User user, final Content content) { for (final TagUserContent item : finder.find(user, content)) { provider.get().remove(item); } } + @Override public void setTags(final User user, final Content content, final String tags) { final ArrayList<String> tagsStripped = TextUtils.splitTags(tags); final ArrayList<Tag> tagList = new ArrayList<Tag>(); @@ -104,26 +124,4 @@ persist(tagUserContent); } } - - private int getMaxCount(final Group group) { - final Query q = provider.get().createNamedQuery(TagUserContent.TAGSMAXGROUPED); - q.setParameter("group", group); - final List resultList = q.getResultList(); - return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); - } - - @SuppressWarnings("rawtypes") - private int getMinCount(final Group group) { - final Query q = provider.get().createNamedQuery(TagUserContent.TAGSMINGROUPED); - q.setParameter("group", group); - final List resultList = q.getResultList(); - return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue()); - } - - private List<TagCount> getSummaryByGroup(final Group group) { - final Query q = provider.get().createNamedQuery(TagUserContent.TAGSGROUPED); - q.setParameter("group", group); - final List<TagCount> results = q.getResultList(); - return results; - } } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -42,8 +42,7 @@ import cc.kune.domain.Group; import com.google.inject.Inject; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class EntityLogoUploadManager extends FileUploadManagerAbstract { @@ -95,7 +94,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional protected void createUploadedFile(final String userHash, final StateToken stateToken, final String fileName, final FileItem file, final String typeId) throws Exception { final String mimeTypeS = file.getContentType(); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -47,24 +47,23 @@ import cc.kune.domain.User; import com.google.inject.Inject; +import com.google.inject.persist.Transactional; import com.google.inject.servlet.RequestScoped; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; @RequestScoped public class FileUploadManager extends FileJsonUploadManagerAbstract { private static final long serialVersionUID = -7209922761735338754L; @Inject - UserSession userSession; + AccessService accessService; @Inject ContentManager contentManager; @Inject - AccessService accessService; - @Inject FileManager fileManager; @Inject I18nTranslationService i18n; + @Inject + UserSession userSession; @Override protected void beforePostStart() { @@ -104,7 +103,7 @@ @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional 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); @@ -137,8 +136,8 @@ final User user = userSession.getUser(); final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()), user, AccessRol.Editor); - final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(), - extension), preview, user, container, typeId); + final Content content = contentManager.createContent( + FileUtils.getFileNameWithoutExtension(file.getName(), extension), preview, user, container, typeId); content.setMimeType(basicMimeType); content.setFilename(file.getName()); return content; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -26,6 +26,7 @@ import org.ourproject.kune.platf.server.manager.ExtMediaDescripManager; import cc.kune.domain.ExtMediaDescrip; +import cc.kune.domain.finders.ExtMediaDescripFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -35,14 +36,16 @@ public class ExtMediaDescripManagerDefault extends DefaultManager<ExtMediaDescrip, Long> implements ExtMediaDescripManager { - private final ExtMediaDescrip extMediaFinder; + private final ExtMediaDescripFinder extMediaFinder; @Inject - public ExtMediaDescripManagerDefault(final Provider<EntityManager> provider, final ExtMediaDescrip extMediaFinder) { + public ExtMediaDescripManagerDefault(final Provider<EntityManager> provider, + final ExtMediaDescripFinder extMediaFinder) { super(provider, ExtMediaDescrip.class); this.extMediaFinder = extMediaFinder; } + @Override public List<ExtMediaDescrip> getAll() { return extMediaFinder.getAll(); } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -53,6 +53,9 @@ import cc.kune.domain.SocialNetwork; import cc.kune.domain.ToolConfiguration; import cc.kune.domain.User; +import cc.kune.domain.finders.GroupFinder; +import cc.kune.domain.finders.LicenseFinder; +import cc.kune.domain.finders.UserFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -61,19 +64,19 @@ @Singleton public class GroupManagerDefault extends DefaultManager<Group, Long> implements GroupManager { - private final Group finder; + private final GroupFinder finder; private final KuneProperties kuneProperties; - private final License licenseFinder; + private final LicenseFinder licenseFinder; private final LicenseManager licenseManager; private final DatabaseProperties properties; private final ServerToolRegistry registry; private final ServerToolRegistry serverToolRegistry; - private final User userFinder; + private final UserFinder userFinder; @Inject - public GroupManagerDefault(final Provider<EntityManager> provider, final Group finder, final User userFinder, - final KuneProperties kuneProperties, final DatabaseProperties properties, - final ServerToolRegistry registry, final LicenseManager licenseManager, final License licenseFinder, + public GroupManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder, + final UserFinder userFinder, final KuneProperties kuneProperties, final DatabaseProperties properties, + final ServerToolRegistry registry, final LicenseManager licenseManager, final LicenseFinder licenseFinder, final ServerToolRegistry serverToolRegistry) { super(provider, Group.class); this.finder = finder; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -26,6 +26,7 @@ import org.ourproject.kune.platf.server.manager.I18nCountryManager; import cc.kune.domain.I18nCountry; +import cc.kune.domain.finders.I18nCountryFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -34,19 +35,21 @@ @Singleton public class I18nCountryManagerDefault extends DefaultManager<I18nCountry, Long> implements I18nCountryManager { - private final I18nCountry finder; + private final I18nCountryFinder finder; @Inject - public I18nCountryManagerDefault(final Provider<EntityManager> provider, final I18nCountry finder) { + public I18nCountryManagerDefault(final Provider<EntityManager> provider, final I18nCountryFinder finder) { super(provider, I18nCountry.class); this.finder = finder; } + @Override + public I18nCountry findByCode(final String country) { + return finder.findByCode(country); + } + + @Override public List<I18nCountry> getAll() { return finder.getAll(); } - - public I18nCountry findByCode(final String country) { - return finder.findByCode(country); - } } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -26,6 +26,7 @@ import org.ourproject.kune.platf.server.manager.I18nLanguageManager; import cc.kune.domain.I18nLanguage; +import cc.kune.domain.finders.I18nLanguageFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -34,18 +35,20 @@ @Singleton public class I18nLanguageManagerDefault extends DefaultManager<I18nLanguage, Long> implements I18nLanguageManager { - private final I18nLanguage finder; + private final I18nLanguageFinder finder; @Inject - public I18nLanguageManagerDefault(final Provider<EntityManager> provider, final I18nLanguage finder) { + public I18nLanguageManagerDefault(final Provider<EntityManager> provider, final I18nLanguageFinder finder) { super(provider, I18nLanguage.class); this.finder = finder; } + @Override public I18nLanguage findByCode(final String language) { return finder.findByCode(language); } + @Override public List<I18nLanguage> getAll() { return finder.getAll(); } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -32,6 +32,7 @@ import cc.kune.core.client.errors.DefaultException; import cc.kune.domain.I18nLanguage; import cc.kune.domain.I18nTranslation; +import cc.kune.domain.finders.I18nTranslationFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -41,12 +42,12 @@ public class I18nTranslationManagerDefault extends DefaultManager<I18nTranslation, Long> implements I18nTranslationManager { - private final I18nTranslation finder; + private final I18nTranslationFinder finder; private final ConcurrentHashMap<String, HashMap<String, String>> langCache; private final I18nLanguageManager languageManager; @Inject - public I18nTranslationManagerDefault(final Provider<EntityManager> provider, final I18nTranslation finder, + public I18nTranslationManagerDefault(final Provider<EntityManager> provider, final I18nTranslationFinder finder, final I18nLanguageManager languageManager) { super(provider, I18nTranslation.class); this.finder = finder; @@ -54,6 +55,7 @@ langCache = new ConcurrentHashMap<String, HashMap<String, String>>(); } + @Override public HashMap<String, String> getLexicon(final String language) { HashMap<String, String> map = langCache.get(language); if (map == null) { @@ -62,11 +64,27 @@ return map; } + @SuppressWarnings("unchecked") + private HashMap<String, String> getLexiconFromDb(final String language) { + HashMap<String, String> map = new HashMap<String, String>(); + final List<I18nTranslation> set = finder.findByLanguage(language); + if (!language.equals(I18nTranslation.DEFAULT_LANG)) { + map = (HashMap<String, String>) getLexicon(I18nTranslation.DEFAULT_LANG).clone(); + } + for (final I18nTranslation trans : set) { + map.put(trans.getTrKey(), trans.getText()); + } + langCache.put(language, map); + return map; + } + + @Override public List<I18nTranslation> getTranslatedLexicon(final String languageCode) { final I18nLanguage language = languageManager.findByCode(languageCode); return finder.getTranslatedLexicon(language); } + @Override public SearchResult<I18nTranslation> getTranslatedLexicon(final String languageCode, final Integer firstResult, final Integer maxResults) { final I18nLanguage language = languageManager.findByCode(languageCode); @@ -75,6 +93,7 @@ return new SearchResult<I18nTranslation>(count.intValue(), list); } + @Override public String getTranslation(final String language, final String text) { final HashMap<String, String> lexicon = getLexicon(language); final String escapedText = TextUtils.escapeHtmlLight(text); @@ -95,23 +114,27 @@ } } + @Override public String getTranslation(final String language, final String text, final Integer arg) { String translation = getTranslation(language, text); translation = translation.replaceFirst("\\[%d\\]", arg.toString()); return translation; } + @Override public String getTranslation(final String language, final String text, final String arg) { String translation = getTranslation(language, text); translation = translation.replaceFirst("\\[%s\\]", arg); return translation; } + @Override public List<I18nTranslation> getUntranslatedLexicon(final String languageCode) { final I18nLanguage language = initUnstranlated(languageCode); return finder.getUnstranslatedLexicon(language); } + @Override public SearchResult<I18nTranslation> getUntranslatedLexicon(final String languageCode, final Integer firstResult, final Integer maxResults) { final I18nLanguage language = initUnstranlated(languageCode); @@ -120,6 +143,24 @@ return new SearchResult<I18nTranslation>(count.intValue(), list); } + private I18nLanguage initUnstranlated(final String languageCode) { + final I18nLanguage defLanguage = languageManager.findByCode(I18nTranslation.DEFAULT_LANG); + I18nLanguage language; + if (languageCode.equals(I18nTranslation.DEFAULT_LANG)) { + language = defLanguage; + } else { + language = languageManager.findByCode(languageCode); + final List<I18nTranslation> list = finder.getNonExistentFromDefault(defLanguage, language); + for (final I18nTranslation defTrans : list) { + final I18nTranslation newTrans = defTrans.cloneForNewLanguage(); + newTrans.setLanguage(language); + persist(newTrans); + } + } + return language; + } + + @Override public String setTranslation(final String id, final String translation) throws DefaultException { final I18nTranslation trans = super.find(Long.valueOf(id)); if (trans != null) { @@ -132,6 +173,7 @@ } } + @Override public void setTranslation(final String languageId, final String text, final String translation) { final I18nLanguage language = languageManager.findByCode(languageId); final I18nTranslation newTranslation = new I18nTranslation(text, language, translation); @@ -143,35 +185,4 @@ } } - @SuppressWarnings("unchecked") - private HashMap<String, String> getLexiconFromDb(final String language) { - HashMap<String, String> map = new HashMap<String, String>(); - final List<I18nTranslation> set = finder.findByLanguage(language); - if (!language.equals(I18nTranslation.DEFAULT_LANG)) { - map = (HashMap<String, String>) getLexicon(I18nTranslation.DEFAULT_LANG).clone(); - } - for (I18nTranslation trans : set) { - map.put(trans.getTrKey(), trans.getText()); - } - langCache.put(language, map); - return map; - } - - private I18nLanguage initUnstranlated(final String languageCode) { - final I18nLanguage defLanguage = languageManager.findByCode(I18nTranslation.DEFAULT_LANG); - I18nLanguage language; - if (languageCode.equals(I18nTranslation.DEFAULT_LANG)) { - language = defLanguage; - } else { - language = languageManager.findByCode(languageCode); - final List<I18nTranslation> list = finder.getNonExistentFromDefault(defLanguage, language); - for (I18nTranslation defTrans : list) { - final I18nTranslation newTrans = defTrans.cloneForNewLanguage(); - newTrans.setLanguage(language); - persist(newTrans); - } - } - return language; - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,6 +27,7 @@ import org.ourproject.kune.platf.server.properties.DatabaseProperties; import cc.kune.domain.License; +import cc.kune.domain.finders.LicenseFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -34,34 +35,39 @@ @Singleton public class LicenseManagerDefault extends DefaultManager<License, Long> implements LicenseManager { - private License licenseFinder; + private LicenseFinder licenseFinder; private final DatabaseProperties properties; @Inject public LicenseManagerDefault(final Provider<EntityManager> provider, final DatabaseProperties properties, - final License licenseFinder) { + final LicenseFinder licenseFinder) { super(provider, License.class); this.properties = properties; this.licenseFinder = licenseFinder; } + @Override public License findByShortName(final String shortName) { return licenseFinder.findByShortName(shortName); } + @Override public List<License> getAll() { return licenseFinder.getAll(); } + @Override public List<License> getCC() { return licenseFinder.getCC(); } + @Override public License getDefLicense() { final String licenseDefId = properties.getDefaultLicense(); return licenseFinder.findByShortName(licenseDefId); } + @Override public List<License> getNotCC() { return licenseFinder.getNotCC(); } @@ -71,8 +77,9 @@ return super.persist(license); } + @Override @Inject - public void setLicenseFinder(final License licenseFinder) { + public void setLicenseFinder(final LicenseFinder licenseFinder) { this.licenseFinder = licenseFinder; } } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,6 +27,7 @@ import cc.kune.domain.Content; import cc.kune.domain.Rate; import cc.kune.domain.User; +import cc.kune.domain.finders.RateFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -35,26 +36,29 @@ @Singleton public class RateManagerDefault extends DefaultManager<Rate, Long> implements RateManager { - private final Rate finder; + private final RateFinder finder; @Inject - public RateManagerDefault(final Provider<EntityManager> provider, final Rate finder) { + public RateManagerDefault(final Provider<EntityManager> provider, final RateFinder finder) { super(provider, Rate.class); this.finder = finder; } + @Override public Rate find(final User user, final Content content) { try { return finder.find(user, content); - } catch (NoResultException e) { + } catch (final NoResultException e) { return null; } } + @Override public Double getRateAvg(final Content content) { return finder.calculateRate(content); } + @Override public Long getRateByUsers(final Content content) { return finder.calculateRateNumberOfUsers(content); } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -44,6 +44,7 @@ import cc.kune.domain.Group; import cc.kune.domain.SocialNetwork; import cc.kune.domain.User; +import cc.kune.domain.finders.GroupFinder; import cc.kune.domain.utils.ParticipationData; import cc.kune.domain.utils.SocialNetworkData; import cc.kune.domain.utils.UserBuddiesData; @@ -55,12 +56,12 @@ @Singleton public class SocialNetworkManagerDefault extends DefaultManager<SocialNetwork, Long> implements SocialNetworkManager { - private final Group finder; private final AccessRightsService accessRightsService; + private final GroupFinder finder; private final UserManager userManager; @Inject - public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final Group finder, + public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder, final AccessRightsService accessRightsService, final UserManager userManager) { super(provider, SocialNetwork.class); this.finder = finder; @@ -68,6 +69,7 @@ this.userManager = userManager; } + @Override public void acceptJoinGroup(final User userLogged, final Group group, final Group inGroup) throws DefaultException, AccessViolationException { final SocialNetwork sn = inGroup.getSocialNetwork(); @@ -81,6 +83,12 @@ } } + void addAdmin(final User newAdmin, final Group group) { + final SocialNetwork sn = group.getSocialNetwork(); + sn.addAdmin(newAdmin.getUserGroup()); + } + + @Override public void addGroupToAdmins(final User userLogged, final Group group, final Group inGroup) throws DefaultException { checkGroupAddingToSelf(group, inGroup); final SocialNetwork sn = inGroup.getSocialNetwork(); @@ -92,6 +100,7 @@ } } + @Override public void addGroupToCollabs(final User userLogged, final Group group, final Group inGroup) throws DefaultException { checkGroupAddingToSelf(group, inGroup); @@ -104,6 +113,7 @@ } } + @Override public void addGroupToViewers(final User userLogged, final Group group, final Group inGroup) throws DefaultException { checkGroupAddingToSelf(group, inGroup); @@ -116,6 +126,25 @@ } } + private void checkGroupAddingToSelf(final Group group, final Group inGroup) throws DefaultException { + if (group.equals(inGroup)) { + throwGroupMemberException(group); + } + } + + private void checkGroupIsNotAlreadyAMember(final Group group, final SocialNetwork sn) throws DefaultException { + if (sn.isAdmin(group) || sn.isCollab(group) || sn.isViewer(group) && notEveryOneCanView(sn)) { + throwGroupMemberException(group); + } + } + + private void checkUserLoggedIsAdmin(final User userLogged, final SocialNetwork sn) throws AccessViolationException { + if (!accessRightsService.get(userLogged, sn.getAccessLists()).isAdministrable()) { + throw new AccessViolationException(); + } + } + + @Override public void deleteMember(final User userLogged, final Group group, final Group inGroup) throws DefaultException, AccessViolationException { final SocialNetwork sn = inGroup.getSocialNetwork(); @@ -124,6 +153,7 @@ unJoinGroup(group, inGroup); } + @Override public void denyJoinGroup(final User userLogged, final Group group, final Group inGroup) throws DefaultException { final SocialNetwork sn = inGroup.getSocialNetwork(); checkUserLoggedIsAdmin(userLogged, sn); @@ -135,6 +165,7 @@ } } + @Override public ParticipationData findParticipation(final User userLogged, final Group group) throws AccessViolationException { get(userLogged, group); // check access @@ -149,6 +180,7 @@ return new ParticipationData(adminInGroups, collabInGroups); } + @Override public SocialNetwork get(final User petitioner, final Group group) throws AccessViolationException { final SocialNetwork sn = group.getSocialNetwork(); if (!sn.getAccessLists().getViewers().includes(petitioner.getUserGroup())) { @@ -157,18 +189,19 @@ return sn; } + @Override public SocialNetworkData getSocialNetworkData(final User userLogged, final Group group) { - SocialNetworkData socialNetData = new SocialNetworkData(); + final SocialNetworkData socialNetData = new SocialNetworkData(); socialNetData.setGroupMembers(get(userLogged, group)); - AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists()); + final AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists()); socialNetData.setGroupRights(groupRights); socialNetData.setUserParticipation(findParticipation(userLogged, group)); socialNetData.setGroupMembers(get(userLogged, group)); if (group.isPersonal()) { - UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName()); - User userGroup = userManager.findByShortname(group.getShortName()); + final UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName()); + final User userGroup = userManager.findByShortname(group.getShortName()); socialNetData.setUserBuddies(userBuddies); - UserBuddiesVisibility buddiesVisibility = userGroup.getBuddiesVisibility(); + final UserBuddiesVisibility buddiesVisibility = userGroup.getBuddiesVisibility(); socialNetData.setIsBuddiesVisible(true); switch (buddiesVisibility) { case anyone: @@ -180,8 +213,8 @@ } break; case yourbuddies: - boolean notMe = !userLogged.equals(userGroup); - boolean notABuddie = !userBuddies.contains(userLogged.getShortName()); + final boolean notMe = !userLogged.equals(userGroup); + final boolean notABuddie = !userBuddies.contains(userLogged.getShortName()); if (notMe && notABuddie) { socialNetData.setIsBuddiesVisible(false); socialNetData.setUserBuddies(UserBuddiesData.EMPTY); @@ -190,7 +223,7 @@ } socialNetData.setUserBuddiesVisibility(buddiesVisibility); } else { - SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility(); + final SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility(); socialNetData.setIsMembersVisible(true); switch (visibility) { case anyone: @@ -214,6 +247,23 @@ return socialNetData; } + private boolean isClosed(final AdmissionType admissionType) { + return admissionType.equals(AdmissionType.Closed); + } + + private boolean isModerated(final AdmissionType admissionType) { + return admissionType.equals(AdmissionType.Moderated); + } + + private boolean isOpen(final AdmissionType admissionType) { + return admissionType.equals(AdmissionType.Open); + } + + private boolean notEveryOneCanView(final SocialNetwork sn) { + return !sn.getAccessLists().getViewers().getMode().equals(GroupListMode.EVERYONE); + } + + @Override public SocialNetworkRequestResult requestToJoin(final User userLogged, final Group inGroup) throws DefaultException, UserMustBeLoggedException { final SocialNetwork sn = inGroup.getSocialNetwork(); @@ -246,6 +296,7 @@ } } + @Override public void setAdminAsCollab(final User userLogged, final Group group, final Group inGroup) throws DefaultException { final SocialNetwork sn = inGroup.getSocialNetwork(); checkUserLoggedIsAdmin(userLogged, sn); @@ -260,6 +311,7 @@ } } + @Override public void setCollabAsAdmin(final User userLogged, final Group group, final Group inGroup) throws DefaultException { final SocialNetwork sn = inGroup.getSocialNetwork(); checkUserLoggedIsAdmin(userLogged, sn); @@ -271,6 +323,15 @@ } } + private void throwGroupMemberException(final Group group) throws DefaultException { + if (group.isPersonal()) { + throw new AlreadyUserMemberException(); + } else { + throw new AlreadyGroupMemberException(); + } + } + + @Override public void unJoinGroup(final Group groupToUnJoin, final Group inGroup) throws DefaultException { final SocialNetwork sn = inGroup.getSocialNetwork(); @@ -291,51 +352,4 @@ } } - void addAdmin(final User newAdmin, final Group group) { - final SocialNetwork sn = group.getSocialNetwork(); - sn.addAdmin(newAdmin.getUserGroup()); - } - - private void checkGroupAddingToSelf(final Group group, final Group inGroup) throws DefaultException { - if (group.equals(inGroup)) { - throwGroupMemberException(group); - } - } - - private void checkGroupIsNotAlreadyAMember(final Group group, final SocialNetwork sn) throws DefaultException { - if (sn.isAdmin(group) || sn.isCollab(group) || sn.isViewer(group) && notEveryOneCanView(sn)) { - throwGroupMemberException(group); - } - } - - private void checkUserLoggedIsAdmin(final User userLogged, final SocialNetwork sn) throws AccessViolationException { - if (!accessRightsService.get(userLogged, sn.getAccessLists()).isAdministrable()) { - throw new AccessViolationException(); - } - } - - private boolean isClosed(final AdmissionType admissionType) { - return admissionType.equals(AdmissionType.Closed); - } - - private boolean isModerated(final AdmissionType admissionType) { - return admissionType.equals(AdmissionType.Moderated); - } - - private boolean isOpen(final AdmissionType admissionType) { - return admissionType.equals(AdmissionType.Open); - } - - private boolean notEveryOneCanView(final SocialNetwork sn) { - return !sn.getAccessLists().getViewers().getMode().equals(GroupListMode.EVERYONE); - } - - private void throwGroupMemberException(final Group group) throws DefaultException { - if (group.isPersonal()) { - throw new AlreadyUserMemberException(); - } else { - throw new AlreadyGroupMemberException(); - } - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -24,6 +24,7 @@ import org.ourproject.kune.platf.server.manager.TagManager; import cc.kune.domain.Tag; +import cc.kune.domain.finders.TagFinder; import com.google.inject.Inject; import com.google.inject.Provider; @@ -32,14 +33,15 @@ @Singleton public class TagManagerDefault extends DefaultManager<Tag, Long> implements TagManager { - private final Tag tagFinder; + private final TagFinder tagFinder; @Inject - public TagManagerDefault(final Provider<EntityManager> provider, final Tag tagFinder) { + public TagManagerDefault(final Provider<EntityManager> provider, final TagFinder tagFinder) { super(provider, Tag.class); this.tagFinder = tagFinder; } + @Override public Tag findByTagName(final String tag) { return tagFinder.findByTagName(tag); } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -46,6 +46,7 @@ import cc.kune.domain.I18nCountry; import cc.kune.domain.I18nLanguage; import cc.kune.domain.User; +import cc.kune.domain.finders.UserFinder; import cc.kune.domain.utils.UserBuddiesData; import cc.kune.wave.server.CustomUserRegistrationServlet; @@ -56,7 +57,7 @@ @Singleton public class UserManagerDefault extends DefaultManager<User, Long> implements UserManager { private final I18nCountryManager countryManager; - private final User finder; + private final UserFinder finder; private final I18nTranslationService i18n; private final I18nLanguageManager languageManager; private final ChatProperties properties; @@ -65,7 +66,7 @@ private final XmppManager xmppManager; @Inject - public UserManagerDefault(final Provider<EntityManager> provider, final User finder, + public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder, final I18nLanguageManager languageManager, final I18nCountryManager countryManager, final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister) { Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -72,8 +72,7 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class ContentRPC implements ContentService, RPC { @@ -116,7 +115,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void addAuthor(final String userHash, final StateToken token, final String authorShortName) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -127,7 +126,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public CommentDTO addComment(final String userHash, final StateToken token, final Long parentCommentId, final String commentText) throws DefaultException { final User author = getCurrentUser(); @@ -139,7 +138,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public CommentDTO addComment(final String userHash, final StateToken token, final String commentText) throws DefaultException { final User author = getCurrentUser(); @@ -151,7 +150,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title, final String typeId) throws DefaultException { final String body = ""; @@ -161,7 +160,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateContainerDTO addFolder(final String userHash, final StateToken parentToken, final String title, final String contentTypeId) throws DefaultException { final User user = getCurrentUser(); @@ -173,7 +172,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateContainerDTO addRoom(final String userHash, final StateToken parentToken, final String roomName) throws DefaultException { // final String groupShortName = parentToken.getGroup(); @@ -205,7 +204,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateContentDTO addWave(final String userHash, final StateToken parentToken, final String typeId, final String waveId) throws DefaultException { return createContent(parentToken, "Wave embeded test", typeId, waveId); @@ -232,7 +231,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateContentDTO delContent(final String userHash, final StateToken token) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); return getState(getCurrentUser(), contentManager.setStatus(contentId, ContentStatus.inTheDustbin)); @@ -240,7 +239,7 @@ @Override @Authenticated(mandatory = false) - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public StateAbstractDTO getContent(final String userHash, final StateToken token) throws DefaultException { Group defaultGroup; final User user = getCurrentUser(); @@ -302,7 +301,7 @@ @Override @Authenticated(mandatory = false) @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public TagCloudResult getSummaryTags(final String userHash, final StateToken groupToken) { final Group group = groupManager.findByShortName(groupToken.getGroup()); return getSummaryTags(group); @@ -350,7 +349,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public CommentDTO markCommentAsAbuse(final String userHash, final StateToken token, final Long commentId) throws DefaultException { final User informer = getCurrentUser(); @@ -362,7 +361,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public RateResult rateContent(final String userHash, final StateToken token, final Double value) throws DefaultException { final User rater = getCurrentUser(); @@ -378,7 +377,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void removeAuthor(final String userHash, final StateToken token, final String authorShortName) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -389,7 +388,7 @@ @Override @Authenticated @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateAbstractDTO renameContainer(final String userHash, final StateToken token, final String newName) throws DefaultException { renameFolder(token.getGroup(), ContentUtils.parseId(token.getFolder()), newName); @@ -399,7 +398,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateAbstractDTO renameContent(final String userHash, final StateToken token, final String newName) throws DefaultException { final User user = getCurrentUser(); @@ -430,7 +429,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void save(final String userHash, final StateToken token, final String textContent) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -442,7 +441,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public ContentSimpleDTO setAsDefaultContent(final String userHash, final StateToken token) { final Content content = contentManager.find(ContentUtils.parseId(token.getDocument())); groupManager.setDefaultContent(token.getGroup(), content); @@ -452,7 +451,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public I18nLanguageDTO setLanguage(final String userHash, final StateToken token, final String languageCode) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -463,7 +462,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void setPublishedOn(final String userHash, final StateToken token, final Date publishedOn) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -474,7 +473,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateAbstractDTO setStatus(final String userHash, final StateToken token, final ContentStatus status) { if (status.equals(ContentStatus.publishedOnline) || status.equals(ContentStatus.rejected) || status.equals(ContentStatus.inTheDustbin)) { @@ -488,7 +487,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public StateAbstractDTO setStatusAsAdmin(final String userHash, final StateToken token, final ContentStatus status) { final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()), ContentStatus.valueOf(status.toString())); @@ -498,7 +497,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public TagCloudResult setTags(final String userHash, final StateToken token, final String tags) throws DefaultException { final Long contentId = ContentUtils.parseId(token.getDocument()); @@ -511,7 +510,7 @@ @Override @Authenticated @Authorizated(accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public CommentDTO voteComment(final String userHash, final StateToken token, final Long commentId, final boolean votePositive) throws DefaultException { final User voter = getCurrentUser(); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -43,15 +43,14 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class GroupRPC implements RPC, GroupService { + private final ContentManager contentManager; + private final GroupManager groupManager; private final Mapper mapper; - private final GroupManager groupManager; private final Provider<UserSession> userSessionProvider; - private final ContentManager contentManager; @Inject public GroupRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager, @@ -62,18 +61,20 @@ this.mapper = mapper; } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void changeDefLicense(final String userHash, final StateToken groupToken, final LicenseDTO license) { final User user = getUserLogged(); final Group group = groupManager.findByShortName(groupToken.getGroup()); groupManager.changeDefLicense(user, group, license.getShortName()); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme) throws DefaultException { final User user = getUserLogged(); @@ -81,17 +82,19 @@ groupManager.changeWsTheme(user, group, theme); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) { final Group group = groupManager.findByShortName(token.getGroup()); groupManager.clearGroupBackImage(group); return mapper.map(group, GroupDTO.class); } + @Override @Authenticated - @Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class) + @Transactional(rollbackOn = DefaultException.class) public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc, final String tags, final String[] enabledTools) throws DefaultException { final User user = getUserLogged(); @@ -103,6 +106,7 @@ return newGroup.getDefaultContent().getStateToken(); }; + @Override @Authenticated(mandatory = false) @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer) public GroupDTO getGroup(final String userHash, final StateToken groupToken) { @@ -110,9 +114,20 @@ return mapper.map(group, GroupDTO.class); } + private User getUserLogged() { + final UserSession userSession = getUserSession(); + final User user = userSession.getUser(); + return user; + } + + private UserSession getUserSession() { + return userSessionProvider.get(); + } + + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public GroupDTO setGroupBackImage(final String userHash, final StateToken token) { final Group group = groupManager.findByShortName(token.getGroup()); final Content content = contentManager.find(ContentUtils.parseId(token.getDocument())); @@ -120,40 +135,33 @@ return mapper.map(group, GroupDTO.class); } + @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token, final AdmissionType admissionPolicy) { final Group group = groupManager.findByShortName(token.getGroup()); group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString())); } + @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void setSocialNetworkVisibility(final String userHash, final StateToken token, final SocialNetworkVisibility visibility) { final Group group = groupManager.findByShortName(token.getGroup()); group.getSocialNetwork().setVisibility(SocialNetworkVisibility.valueOf(visibility.toString())); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void setToolEnabled(final String userHash, final StateToken groupToken, final String toolName, final boolean enabled) { groupManager.setToolEnabled(getUserLogged(), groupToken.getGroup(), toolName, enabled); } - private User getUserLogged() { - final UserSession userSession = getUserSession(); - final User user = userSession.getUser(); - return user; - } - - private UserSession getUserSession() { - return userSessionProvider.get(); - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -40,16 +40,15 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class I18nRPC implements RPC, I18nService { private final I18nTranslationManager i18nTranslationManager; - private final Provider<UserSession> userSessionProvider; - private final Provider<HttpServletRequest> requestProvider; private final I18nLanguageManager languageManager; private final Mapper mapper; + private final Provider<HttpServletRequest> requestProvider; + private final Provider<UserSession> userSessionProvider; @Inject public I18nRPC(final Provider<HttpServletRequest> requestProvider, final Provider<UserSession> userSessionProvider, @@ -62,7 +61,8 @@ this.mapper = mapper; } - @Transactional(type = TransactionType.READ_ONLY) + @Override + @Transactional public I18nLanguageDTO getInitialLanguage(final String localeParam) { String initLanguage; I18nLanguage lang; @@ -96,12 +96,14 @@ return mapper.map(lang, I18nLanguageDTO.class); } - @Transactional(type = TransactionType.READ_ONLY) + @Override + @Transactional public HashMap<String, String> getLexicon(final String language) { return i18nTranslationManager.getLexicon(language); } - @Transactional(type = TransactionType.READ_WRITE) + @Override + @Transactional public String getTranslation(final String userHash, final String language, final String text) { String translation = null; try { @@ -111,13 +113,6 @@ return translation; } - @Authenticated - @Transactional(type = TransactionType.READ_WRITE) - public String setTranslation(final String userHash, final String id, final String translation) - throws DefaultException { - return i18nTranslationManager.setTranslation(id, translation); - } - @Authenticated(mandatory = false) private String getTranslationWrapper(final String language, final String text) { return i18nTranslationManager.getTranslation(language, text); @@ -127,4 +122,12 @@ return userSessionProvider.get(); } + @Override + @Authenticated + @Transactional + public String setTranslation(final String userHash, final String id, final String translation) + throws DefaultException { + return i18nTranslationManager.setTranslation(id, translation); + } + } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -41,22 +41,21 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class SiteRPC implements RPC, SiteService { - private final Mapper mapper; - private final Provider<UserSession> userSessionProvider; - private final LicenseManager licenseManager; - private final UserManager userManager; private final ChatProperties chatProperties; - private final UserInfoService userInfoService; + private final I18nCountryManager countryManager; + private final ExtMediaDescripManager extMediaDescManager; private final KuneProperties kuneProperties; private final I18nLanguageManager languageManager; - private final I18nCountryManager countryManager; + private final LicenseManager licenseManager; + private final Mapper mapper; private final ServerToolRegistry serverToolRegistry; - private final ExtMediaDescripManager extMediaDescManager; + private final UserInfoService userInfoService; + private final UserManager userManager; + private final Provider<UserSession> userSessionProvider; // TODO: refactor: too many parameters! refactor to Facade Pattern @Inject @@ -78,7 +77,8 @@ this.extMediaDescManager = extMediaDescManager; } - @Transactional(type = TransactionType.READ_ONLY) + @Override + @Transactional public InitDataDTO getInitData(final String userHash) throws DefaultException { final InitData data = new InitData(); final UserSession userSession = getUserSession(); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -39,16 +39,15 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class SocialNetworkRPC implements SocialNetworkService, RPC { - private final Provider<UserSession> userSessionProvider; private final GroupManager groupManager; + private final Mapper mapper; private final SocialNetworkManager socialNetworkManager; - private final Mapper mapper; + private final Provider<UserSession> userSessionProvider; @Inject public SocialNetworkRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager, @@ -59,9 +58,10 @@ this.mapper = mapper; } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO acceptJoinGroup(final String hash, final StateToken groupToken, final String groupToAcceptShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -72,9 +72,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO addAdminMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -85,9 +86,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO addCollabMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -98,9 +100,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO addViewerMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -111,9 +114,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO deleteMember(final String hash, final StateToken groupToken, final String groupToDeleleShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -124,9 +128,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO denyJoinGroup(final String hash, final StateToken groupToken, final String groupToDenyShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -137,10 +142,15 @@ return generateResponse(userLogged, group); } + private SocialNetworkDataDTO generateResponse(final User userLogged, final Group group) { + return mapper.map(socialNetworkManager.getSocialNetworkData(userLogged, group), SocialNetworkDataDTO.class); + } + + @Override @Authenticated(mandatory = false) // At least you can access as Viewer to the Group @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer) - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public SocialNetworkDataDTO getSocialNetwork(final String hash, final StateToken groupToken) throws DefaultException { final UserSession userSession = getUserSession(); @@ -149,8 +159,13 @@ return generateResponse(user, group); } + private UserSession getUserSession() { + return userSessionProvider.get(); + } + + @Override @Authenticated - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkRequestResult requestJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { final UserSession userSession = getUserSession(); @@ -159,9 +174,10 @@ return socialNetworkManager.requestToJoin(user, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO setAdminAsCollab(final String hash, final StateToken groupToken, final String groupToSetCollabShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -172,9 +188,10 @@ return generateResponse(userLogged, group); } + @Override @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO setCollabAsAdmin(final String hash, final StateToken groupToken, final String groupToSetAdminShortName) throws DefaultException { final UserSession userSession = getUserSession(); @@ -185,8 +202,9 @@ return generateResponse(userLogged, group); } + @Override @Authenticated - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public SocialNetworkDataDTO unJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -195,12 +213,4 @@ return generateResponse(userLogged, group); } - private SocialNetworkDataDTO generateResponse(final User userLogged, final Group group) { - return mapper.map(socialNetworkManager.getSocialNetworkData(userLogged, group), SocialNetworkDataDTO.class); - } - - private UserSession getUserSession() { - return userSessionProvider.get(); - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -48,18 +48,17 @@ import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import com.wideplay.warp.persist.TransactionType; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; @Singleton public class UserRPC implements RPC, UserService { - private final UserManager userManager; - private final Provider<UserSession> userSessionProvider; private final GroupManager groupManager; private final Mapper mapper; + private final Provider<SessionService> sessionServiceProvider; private final UserInfoService userInfoService; - private final Provider<SessionService> sessionServiceProvider; + private final UserManager userManager; + private final Provider<UserSession> userSessionProvider; @Inject public UserRPC(final Provider<SessionService> sessionServiceProvider, @@ -74,7 +73,8 @@ this.mapper = mapper; } - @Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class) + @Override + @Transactional(rollbackOn = DefaultException.class) public UserInfoDTO createUser(final UserDTO userDTO, final boolean wantPersonalHomepage) throws DefaultException { final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(), userDTO.getEmail(), userDTO.getPassword(), userDTO.getLanguage().getCode(), userDTO.getCountry().getCode(), @@ -83,8 +83,9 @@ return login(userDTO.getShortName(), userDTO.getPassword()); } + @Override @Authenticated - @Transactional(type = TransactionType.READ_ONLY) + @Transactional @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) public String getUserAvatarBaser64(final String userHash, final StateToken userToken) throws DefaultException { final UserSession userSession = getUserSession(); @@ -100,7 +101,17 @@ } } - @Transactional(type = TransactionType.READ_ONLY) + private UserSession getUserSession() { + return userSessionProvider.get(); + } + + private UserInfoDTO loadUserInfo(final User user) throws DefaultException { + final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash()); + return mapper.map(userInfo, UserInfoDTO.class); + } + + @Override + @Transactional public UserInfoDTO login(final String nickOrEmail, final String passwd) throws DefaultException { final SessionService sessionService = sessionServiceProvider.get(); sessionService.getNewSession(); @@ -108,31 +119,45 @@ return loginUser(user); } + private UserInfoDTO loginUser(final User user) throws DefaultException { + if (user != null) { + // Maybe use terracotta.org for http session clustering + getUserSession().login(user, UUID.randomUUID().toString()); + return loadUserInfo(user); + } else { + throw new UserAuthException(); + } + } + + @Override @Authenticated - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public void logout(final String userHash) throws DefaultException { getUserSession().logout(); final SessionService sessionService = sessionServiceProvider.get(); sessionService.getNewSession(); - } + }; + @Override @Authenticated(mandatory = false) - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public void onlyCheckSession(final String userHash) throws DefaultException { // Do nothing @Authenticated checks user session } + @Override @Authenticated - @Transactional(type = TransactionType.READ_ONLY) + @Transactional public UserInfoDTO reloadUserInfo(final String userHash) throws DefaultException { final UserSession userSession = getUserSession(); final User user = userSession.getUser(); return loadUserInfo(user); } + @Override @Authenticated(mandatory = true) @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group) - @Transactional(type = TransactionType.READ_WRITE) + @Transactional public void setBuddiesVisibility(final String userHash, final StateToken groupToken, final UserBuddiesVisibility visibility) { final UserSession userSession = getUserSession(); @@ -141,25 +166,6 @@ throw new AccessViolationException(); } user.setBuddiesVisibility(UserBuddiesVisibility.valueOf(visibility.toString())); - }; - - private UserSession getUserSession() { - return userSessionProvider.get(); } - private UserInfoDTO loadUserInfo(final User user) throws DefaultException { - final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash()); - return mapper.map(userInfo, UserInfoDTO.class); - } - - private UserInfoDTO loginUser(final User user) throws DefaultException { - if (user != null) { - // Maybe use terracotta.org for http session clustering - getUserSession().login(user, UUID.randomUUID().toString()); - return loadUserInfo(user); - } else { - throw new UserAuthException(); - } - } - } Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -131,7 +131,6 @@ // final Injector waveChildInjector = waveStarter.runMain(); final Injector waveChildInjector = (Injector) filterConfig.getServletContext().getAttribute( INJECTOR_PARENT_ATTRIBUTE); - // final Injector waveChildInjector = Guice.createInjector(); final Injector kuneChildInjector = installInjector(filterConfig, rack, waveChildInjector); startContainerListeners(rack.getListeners(), kuneChildInjector); docks = rack.getDocks(); Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,7 +20,7 @@ package org.ourproject.kune.rack.filters.rest; import com.google.inject.Inject; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class TransactionalServiceExecutor { private final RESTMethodFinder methodFinder; Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java =================================================================== --- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -20,16 +20,16 @@ package org.ourproject.kune.workspace.client.hello; import org.ourproject.kune.platf.client.View; -import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.AbstractExtendedAction; import org.ourproject.kune.platf.client.actions.Action; import org.ourproject.kune.platf.client.actions.ActionEvent; +import org.ourproject.kune.platf.client.actions.OldAbstractAction; import org.ourproject.kune.platf.client.actions.Shortcut; import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor; -import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuRadioItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.MenuSeparatorDescriptor; +import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ui.PushButtonDescriptor; import org.ourproject.kune.platf.client.services.AbstractExtendedModule; import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister; Modified: branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml =================================================================== --- branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml 2011-02-13 11:00:54 UTC (rev 1251) @@ -7,6 +7,30 @@ <persistence-unit name="development" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> + <!-- JPA entities must be registered here --> + <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g' | sed 's/^/<class>cc.kune.domain./g' --> + <class>cc.kune.domain.AccessLists</class> + <class>cc.kune.domain.BasicMimeType</class> + <class>cc.kune.domain.Comment</class> + <class>cc.kune.domain.Container</class> + <class>cc.kune.domain.ContainerTranslation</class> + <class>cc.kune.domain.Content</class> + <class>cc.kune.domain.ContentTranslation</class> + <class>cc.kune.domain.CustomProperties</class> + <class>cc.kune.domain.ExtMediaDescrip</class> + <class>cc.kune.domain.Group</class> + <class>cc.kune.domain.GroupList</class> + <class>cc.kune.domain.I18nCountry</class> + <class>cc.kune.domain.I18nLanguage</class> + <class>cc.kune.domain.I18nTranslation</class> + <class>cc.kune.domain.License</class> + <class>cc.kune.domain.Rate</class> + <class>cc.kune.domain.Revision</class> + <class>cc.kune.domain.SocialNetwork</class> + <class>cc.kune.domain.Tag</class> + <class>cc.kune.domain.TagUserContent</class> + <class>cc.kune.domain.ToolConfiguration</class> + <class>cc.kune.domain.User</class> <properties> <property name="hibernate.archive.autodetection" value="class, hbm" /> <property name="hibernate.show_sql" value="false" /> @@ -19,7 +43,7 @@ <property name="hibernate.connection.username" value="kune" /> <property name="hibernate.connection.password" value="db4kune" /> - <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-p... + <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-p... (NO!, une liquibase, for instance) --> <!-- http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-po... --> <property name="hibernate.hbm2ddl.auto" value="update" /> @@ -41,6 +65,29 @@ <persistence-unit name="test_db" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> + <!-- JPA entities must be registered here --> + <class>cc.kune.domain.AccessLists</class> + <class>cc.kune.domain.BasicMimeType</class> + <class>cc.kune.domain.Comment</class> + <class>cc.kune.domain.Container</class> + <class>cc.kune.domain.ContainerTranslation</class> + <class>cc.kune.domain.Content</class> + <class>cc.kune.domain.ContentTranslation</class> + <class>cc.kune.domain.CustomProperties</class> + <class>cc.kune.domain.ExtMediaDescrip</class> + <class>cc.kune.domain.Group</class> + <class>cc.kune.domain.GroupList</class> + <class>cc.kune.domain.I18nCountry</class> + <class>cc.kune.domain.I18nLanguage</class> + <class>cc.kune.domain.I18nTranslation</class> + <class>cc.kune.domain.License</class> + <class>cc.kune.domain.Rate</class> + <class>cc.kune.domain.Revision</class> + <class>cc.kune.domain.SocialNetwork</class> + <class>cc.kune.domain.Tag</class> + <class>cc.kune.domain.TagUserContent</class> + <class>cc.kune.domain.ToolConfiguration</class> + <class>cc.kune.domain.User</class> <properties> <property name="hibernate.archive.autodetection" value="class, hbm" /> <property name="hibernate.show_sql" value="false" /> @@ -71,6 +118,29 @@ <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> + <!-- JPA entities must be registered here --> + <class>cc.kune.domain.AccessLists</class> + <class>cc.kune.domain.BasicMimeType</class> + <class>cc.kune.domain.Comment</class> + <class>cc.kune.domain.Container</class> + <class>cc.kune.domain.ContainerTranslation</class> + <class>cc.kune.domain.Content</class> + <class>cc.kune.domain.ContentTranslation</class> + <class>cc.kune.domain.CustomProperties</class> + <class>cc.kune.domain.ExtMediaDescrip</class> + <class>cc.kune.domain.Group</class> + <class>cc.kune.domain.GroupList</class> + <class>cc.kune.domain.I18nCountry</class> + <class>cc.kune.domain.I18nLanguage</class> + <class>cc.kune.domain.I18nTranslation</class> + <class>cc.kune.domain.License</class> + <class>cc.kune.domain.Rate</class> + <class>cc.kune.domain.Revision</class> + <class>cc.kune.domain.SocialNetwork</class> + <class>cc.kune.domain.Tag</class> + <class>cc.kune.domain.TagUserContent</class> + <class>cc.kune.domain.ToolConfiguration</class> + <class>cc.kune.domain.User</class> <properties> <property name="hibernate.show_sql" value="false" /> <property name="hibernate.format_sql" value="false" /> @@ -87,4 +157,6 @@ value="/var/lib/kune/lucene/kune_test/indexes" /> </properties> </persistence-unit> + + </persistence> Modified: branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml =================================================================== --- branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,48 +19,48 @@ <welcome-file>ws.html</welcome-file> </welcome-file-list> <!-- Wave proxies ========================================================================================= --> - <filter> - <filter-name>JettyContinuationFilter</filter-name> - <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>JettyContinuationFilter</filter-name> - <servlet-name>Wiab</servlet-name> - <!-- <url-pattern>/*</url-pattern> --> - </filter-mapping> - <servlet> - <servlet-name>Wiab</servlet-name> - <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class> - <init-param> - <param-name>ProxyTo</param-name> - <param-value>http://127.0.0.1:9898/</param-value> - </init-param> - <init-param> - <param-name>Prefix</param-name> - <param-value>/</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>Wiab</servlet-name> - <url-pattern>/attachment/*</url-pattern> - <url-pattern>/auth/signin</url-pattern> - <url-pattern>/auth/signout</url-pattern> - <url-pattern>/auth/register</url-pattern> - <url-pattern>/fetch/*</url-pattern> - <url-pattern>/robot/dataapi</url-pattern> - <url-pattern>/robot/dataapi/oauth/*</url-pattern> - <url-pattern>/robot/dataapi/rpc</url-pattern> - <url-pattern>/robot/register/*</url-pattern> - <url-pattern>/robot/rpc</url-pattern> - <url-pattern>/gadgets</url-pattern> - <url-pattern>/gadgets/*</url-pattern> - <url-pattern>/socket.io/*</url-pattern> - <url-pattern>/socket</url-pattern> - <url-pattern>/static/*</url-pattern> - <url-pattern>/webclient/*</url-pattern> - <!-- <url-pattern>/*</url-pattern> --> - <!-- <load-on-startup>1</load-on-startup> --> - </servlet-mapping> +<!-- <filter>--> +<!-- <filter-name>JettyContinuationFilter</filter-name>--> +<!-- <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class>--> +<!-- </filter>--> +<!-- <filter-mapping>--> +<!-- <filter-name>JettyContinuationFilter</filter-name>--> +<!-- <servlet-name>Wiab</servlet-name>--> +<!-- <url-pattern>/*</url-pattern> --> +<!-- </filter-mapping>--> +<!-- <servlet>--> +<!-- <servlet-name>Wiab</servlet-name>--> +<!-- <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>--> +<!-- <init-param>--> +<!-- <param-name>ProxyTo</param-name>--> +<!-- <param-value>http://127.0.0.1:9898/</param-value>--> +<!-- </init-param>--> +<!-- <init-param>--> +<!-- <param-name>Prefix</param-name>--> +<!-- <param-value>/</param-value>--> +<!-- </init-param>--> +<!-- </servlet>--> +<!-- <servlet-mapping>--> +<!-- <servlet-name>Wiab</servlet-name>--> +<!-- <url-pattern>/attachment/*</url-pattern>--> +<!-- <url-pattern>/auth/signin</url-pattern>--> +<!-- <url-pattern>/auth/signout</url-pattern>--> +<!-- <url-pattern>/auth/register</url-pattern>--> +<!-- <url-pattern>/fetch/*</url-pattern>--> +<!-- <url-pattern>/robot/dataapi</url-pattern>--> +<!-- <url-pattern>/robot/dataapi/oauth/*</url-pattern>--> +<!-- <url-pattern>/robot/dataapi/rpc</url-pattern>--> +<!-- <url-pattern>/robot/register/*</url-pattern>--> +<!-- <url-pattern>/robot/rpc</url-pattern>--> +<!-- <url-pattern>/gadgets</url-pattern>--> +<!-- <url-pattern>/gadgets/*</url-pattern>--> +<!-- <url-pattern>/socket.io/*</url-pattern>--> +<!-- <url-pattern>/socket</url-pattern>--> +<!-- <url-pattern>/static/*</url-pattern>--> +<!-- <url-pattern>/webclient/*</url-pattern>--> +<!-- <url-pattern>/*</url-pattern> --> +<!-- <load-on-startup>1</load-on-startup> --> +<!-- </servlet-mapping>--> <!-- JRuby servlets ======================================================================================= --> <!-- Note: this gives problems depending on the version of jetty or tomcat --> <context-param> @@ -139,20 +139,20 @@ </url-pattern> </servlet-mapping> <!-- Kune normal guice configuration ======================================================================== --> - <filter> - <filter-name>rack</filter-name> - <filter-class>org.ourproject.kune.rack.RackServletFilter</filter-class> - <init-param> - <param-name>org.ourproject.kune.rack.RackModule</param-name> - <param-value> - org.ourproject.kune.app.server.KuneRackModule - </param-value> - </init-param> - </filter> - <filter-mapping> - <filter-name>rack</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> +<!-- <filter>--> +<!-- <filter-name>rack</filter-name>--> +<!-- <filter-class>org.ourproject.kune.rack.RackServletFilter</filter-class>--> +<!-- <init-param>--> +<!-- <param-name>org.ourproject.kune.rack.RackModule</param-name>--> +<!-- <param-value>--> +<!-- org.ourproject.kune.app.server.KuneRackModule--> +<!-- </param-value>--> +<!-- </init-param>--> +<!-- </filter>--> +<!-- <filter-mapping>--> +<!-- <filter-name>rack</filter-name>--> +<!-- <url-pattern>/*</url-pattern>--> +<!-- </filter-mapping>--> <!-- Wave proxies with context /wiab/ ====================================================================== --> <!-- <servlet> --> <!-- <servlet-name>WiabSocketIO</servlet-name> --> Added: branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java (rev 0) +++ branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -0,0 +1,36 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * 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.domain.finders; + +import org.junit.Test; +import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; + +import com.google.inject.Inject; + +public class TagUserContentFinderTest extends PersistencePreLoadedDataTest { + + @Inject + TagUserContentFinder tag; + + @Test + public void test() { + tag.getTagsGroups(groupManager.getSiteDefaultGroup()); + } +} Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -43,7 +43,7 @@ import cc.kune.domain.ToolConfiguration; import com.google.inject.Inject; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class DatabaseInitializationTest { @Inject Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,6 +27,7 @@ import org.ourproject.kune.platf.server.KunePersistenceService; import org.ourproject.kune.platf.server.PlatformServerModule; import org.ourproject.kune.platf.server.TestConstants; +import org.ourproject.kune.platf.server.init.FinderRegistry; import org.ourproject.kune.platf.server.properties.PropertiesFileName; import org.ourproject.kune.wiki.server.WikiServerModule; import org.waveprotocol.box.server.CoreSettings; @@ -38,9 +39,9 @@ import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Scopes; +import com.google.inject.persist.jpa.JpaPersistModule; import com.google.inject.servlet.RequestScoped; import com.google.inject.servlet.SessionScoped; -import com.wideplay.warp.jpa.JpaUnit; public class IntegrationTestHelper { @@ -49,19 +50,16 @@ try { injector = Guice.createInjector(CustomSettingsBinder.bindSettings(TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class)); - final PersistenceModule persistenceModule = injector.getInstance(PersistenceModule.class); + final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class); - final Injector childInjector = injector.createChildInjector(persistenceModule, new PlatformServerModule(), - new DocumentServerModule(), new ChatServerModule(), new WikiServerModule(), new AbstractModule() { + final Injector childInjector = injector.createChildInjector(wavePersistModule, + FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)), + new PlatformServerModule(), new DocumentServerModule(), new ChatServerModule(), + new WikiServerModule(), new AbstractModule() { @Override protected void configure() { bindScope(SessionScoped.class, Scopes.SINGLETON); bindScope(RequestScoped.class, Scopes.SINGLETON); - // test: use - // memory - // test_db: use - // mysql - bindConstant().annotatedWith(JpaUnit.class).to(TestConstants.PERSISTENCE_UNIT); bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties"); bind(HttpServletRequest.class).to(HttpServletRequestMocked.class); } Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -19,7 +19,10 @@ */ package org.ourproject.kune.platf.integration.content; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.util.List; Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -34,20 +34,21 @@ import cc.kune.core.shared.dto.GroupType; import cc.kune.core.shared.dto.LicenseDTO; import cc.kune.domain.Group; +import cc.kune.domain.finders.GroupFinder; import com.google.inject.Inject; public class GroupServiceTest extends IntegrationTest { @Inject + GroupFinder groupFinder; + + @Inject GroupService service; @Inject UserSession session; - @Inject - Group groupFinder; - @Test public void createCommunity() throws Exception { doLogin(); Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -34,7 +34,7 @@ import cc.kune.domain.Group; import com.google.inject.Inject; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class SocialNetworkMembersTest extends IntegrationTest { @Inject Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -36,11 +36,13 @@ import cc.kune.domain.Container; import cc.kune.domain.Content; -import cc.kune.domain.Group; import cc.kune.domain.I18nCountry; import cc.kune.domain.I18nLanguage; import cc.kune.domain.License; import cc.kune.domain.User; +import cc.kune.domain.finders.GroupFinder; +import cc.kune.domain.finders.LicenseFinder; +import cc.kune.domain.finders.UserFinder; import com.google.inject.Inject; @@ -62,21 +64,21 @@ protected I18nLanguage english; protected I18nCountry gb; @Inject - protected Group groupFinder; + protected GroupFinder groupFinder; @Inject protected GroupManager groupManager; @Inject protected I18nLanguageManager languageManager; @Inject - protected License licenseFinder; + protected LicenseFinder licenseFinder; @Inject protected LicenseManager licenseManager; // @Inject // protected PropertyGroupManager propGroupManager; protected User user; @Inject - protected User userFinder; + protected UserFinder userFinder; @Inject protected UserManager userManager; Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,8 +27,8 @@ import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Provider; -import com.wideplay.warp.persist.PersistenceService; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.PersistService; +import com.google.inject.persist.Transactional; public abstract class PersistenceTest { private final String persistenceUnit; @@ -40,7 +40,7 @@ // test: use memory // test_db: use mysql // Also configurable ein TestHelper - this("test_db", "kune.properties"); + this(TestConstants.PERSISTENCE_UNIT, "kune.properties"); } public PersistenceTest(final String persistenceUnit, final String propetiesFileName) { @@ -77,7 +77,7 @@ @Before public void prepare() { final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName); - final PersistenceService persistence = injector.getInstance(PersistenceService.class); + final PersistService persistence = injector.getInstance(PersistService.class); // To Debug insert breakpoint here persistence.start(); injector.injectMembers(this); Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -3,7 +3,8 @@ public final class TestConstants { // test: use memory // test_db: use mysql - public static final String PERSISTENCE_UNIT = "test_db"; + // public static final String PERSISTENCE_UNIT = "test_db"; + public static final String PERSISTENCE_UNIT = "test"; public static final String WAVE_TEST_PROPFILE = "wave-server-testing.properties"; private TestConstants() { Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -23,6 +23,7 @@ import org.apache.commons.configuration.ConfigurationException; import org.ourproject.kune.platf.integration.HttpServletRequestMocked; +import org.ourproject.kune.platf.server.init.FinderRegistry; import org.ourproject.kune.platf.server.properties.PropertiesFileName; import org.waveprotocol.box.server.CoreSettings; import org.waveprotocol.box.server.authentication.AccountStoreHolder; @@ -39,26 +40,26 @@ import com.google.inject.Module; import com.google.inject.Scopes; import com.google.inject.name.Names; +import com.google.inject.persist.jpa.JpaPersistModule; import com.google.inject.servlet.RequestScoped; import com.google.inject.servlet.SessionScoped; -import com.wideplay.warp.jpa.JpaUnit; public abstract class TestHelper { public static Injector create(final Module module, final String persistenceUnit, final String propetiesFileName) { try { final Injector injector = Guice.createInjector(CustomSettingsBinder.bindSettings( TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class)); - final PersistenceModule persistenceModule = injector.getInstance(PersistenceModule.class); - final Injector childInjector = injector.createChildInjector(persistenceModule, module, new Module() { - @Override - public void configure(final Binder binder) { - binder.bindScope(SessionScoped.class, Scopes.SINGLETON); - binder.bindScope(RequestScoped.class, Scopes.SINGLETON); - binder.bindConstant().annotatedWith(JpaUnit.class).to(persistenceUnit); - binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName); - binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class); - } - }); + final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class); + final Injector childInjector = injector.createChildInjector(wavePersistModule, + FinderRegistry.init(new JpaPersistModule(persistenceUnit)), module, new Module() { + @Override + public void configure(final Binder binder) { + binder.bindScope(SessionScoped.class, Scopes.SINGLETON); + binder.bindScope(RequestScoped.class, Scopes.SINGLETON); + binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName); + binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class); + } + }); final AccountStore accountStore = childInjector.getInstance(AccountStore.class); accountStore.initializeAccountStore(); AccountStoreHolder.resetForTesting(); Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -33,7 +33,7 @@ import cc.kune.core.shared.domain.AccessRol; import cc.kune.core.shared.domain.utils.StateToken; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public class AuthorizatedMethodInterceptorTest extends IntegrationTest { Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -27,13 +27,19 @@ import org.ourproject.kune.platf.server.PersistenceTest; import cc.kune.domain.Group; +import cc.kune.domain.finders.GroupFinder; import com.google.inject.Inject; public class GroupFinderTest extends PersistenceTest { @Inject - Group groupFinder; + GroupFinder groupFinder; + @After + public void close() { + closeTransaction(); + } + @Before public void insertData() { openTransaction(); @@ -45,9 +51,4 @@ public void testGetAll() { assertEquals(2, groupFinder.getAll().size()); } - - @After - public void close() { - closeTransaction(); - } } Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -17,86 +17,87 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ -package org.ourproject.kune.platf.server.finders; - -import static junit.framework.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.List; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.ourproject.kune.platf.server.PersistenceTest; -import org.ourproject.kune.platf.server.properties.DatabaseProperties; - -import cc.kune.domain.License; - -import com.google.inject.Inject; - -public class LicenseFinderTest extends PersistenceTest { - @Inject - License finder; - @Inject - DatabaseProperties properties; - private License license1; - private License license2; - private License licenseDef; - - @Before - public void addData() { - openTransaction(); - licenseDef = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "", - "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", ""); - persist(licenseDef); - license1 = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs", "", - "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "", ""); - persist(license1); - license2 = new License("gfdl-v1.3", "GNU Free Documentation License", "", - "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", ""); - persist(license2); - } - - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } - - @Test - public void findAll() { - List<License> all = finder.getAll(); - assertEquals(3, all.size()); - } - - @Test - public void findById() { - License lic = finder.findByShortName(license1.getShortName()); - assertNotNull(lic); - assertEquals(license1.getShortName(), lic.getShortName()); - assertEquals(license1.getLongName(), lic.getLongName()); - } - - @Test - public void findCC() { - List<License> cc = finder.getCC(); - assertEquals(2, cc.size()); - } - - @Test - public void findDefaultLicense() { - String licenseDefId = properties.getDefaultLicense(); - License lic = finder.findByShortName(licenseDefId); - assertNotNull(lic); - assertEquals(licenseDef.getShortName(), lic.getShortName()); - assertEquals(licenseDef.getLongName(), lic.getLongName()); - } - - @Test - public void findNotCC() { - List<License> notCc = finder.getNotCC(); - assertEquals(1, notCc.size()); - } - -} +package org.ourproject.kune.platf.server.finders; + +import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.List; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.ourproject.kune.platf.server.PersistenceTest; +import org.ourproject.kune.platf.server.properties.DatabaseProperties; + +import cc.kune.domain.License; +import cc.kune.domain.finders.LicenseFinder; + +import com.google.inject.Inject; + +public class LicenseFinderTest extends PersistenceTest { + @Inject + LicenseFinder finder; + private License license1; + private License license2; + private License licenseDef; + @Inject + DatabaseProperties properties; + + @Before + public void addData() { + openTransaction(); + licenseDef = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "", + "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", ""); + persist(licenseDef); + license1 = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs", "", + "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "", ""); + persist(license1); + license2 = new License("gfdl-v1.3", "GNU Free Documentation License", "", + "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", ""); + persist(license2); + } + + @After + public void close() { + if (getTransaction().isActive()) { + getTransaction().rollback(); + } + } + + @Test + public void findAll() { + final List<License> all = finder.getAll(); + assertEquals(3, all.size()); + } + + @Test + public void findById() { + final License lic = finder.findByShortName(license1.getShortName()); + assertNotNull(lic); + assertEquals(license1.getShortName(), lic.getShortName()); + assertEquals(license1.getLongName(), lic.getLongName()); + } + + @Test + public void findCC() { + final List<License> cc = finder.getCC(); + assertEquals(2, cc.size()); + } + + @Test + public void findDefaultLicense() { + final String licenseDefId = properties.getDefaultLicense(); + final License lic = finder.findByShortName(licenseDefId); + assertNotNull(lic); + assertEquals(licenseDef.getShortName(), lic.getShortName()); + assertEquals(licenseDef.getLongName(), lic.getLongName()); + } + + @Test + public void findNotCC() { + final List<License> notCc = finder.getNotCC(); + assertEquals(1, notCc.size()); + } + +} Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -33,14 +33,15 @@ import cc.kune.domain.Content; import cc.kune.domain.Rate; import cc.kune.domain.User; +import cc.kune.domain.finders.RateFinder; import com.google.inject.Inject; public class RateFinderTest extends PersistencePreLoadedDataTest { + private EntityManager entityManager; @Inject - Rate rateFinder; - private EntityManager entityManager; + RateFinder rateFinder; @Before public void before() { Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -30,12 +30,13 @@ import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest; import cc.kune.domain.User; +import cc.kune.domain.finders.UserFinder; import com.google.inject.Inject; public class UserFinderTest extends PersistencePreLoadedDataTest { @Inject - User finder; + UserFinder finder; @Test public void findAll() { Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -28,16 +28,24 @@ import org.ourproject.kune.platf.server.PersistenceTest; import cc.kune.domain.License; +import cc.kune.domain.finders.LicenseFinder; import com.google.inject.Inject; public class LicenseManagerTest extends PersistenceTest { + private License license; @Inject + LicenseFinder licenseFinder; + @Inject LicenseManager licenseManager; - @Inject - License licenseFinder; - private License license; + @After + public void close() { + if (getTransaction().isActive()) { + getTransaction().rollback(); + } + } + @Before public void insertData() { openTransaction(); @@ -52,11 +60,4 @@ assertNotNull(license.getId()); assertEquals(1, licenseFinder.getAll().size()); } - - @After - public void close() { - if (getTransaction().isActive()) { - getTransaction().rollback(); - } - } } Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -28,17 +28,18 @@ import org.ourproject.kune.platf.server.content.ContentManager; import cc.kune.domain.Tag; +import cc.kune.domain.finders.TagFinder; import com.google.inject.Inject; public class TagManagerTest extends PersistenceTest { @Inject - TagManager tagManager; - @Inject ContentManager contentManager; + private Tag tag; @Inject - Tag tagFinder; - private Tag tag; + TagFinder tagFinder; + @Inject + TagManager tagManager; @After public void close() { Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -30,13 +30,17 @@ import cc.kune.domain.Tag; import cc.kune.domain.TagUserContent; +import cc.kune.domain.finders.TagUserContentFinder; import com.google.inject.Inject; public class TagUserContentTest extends PersistencePreLoadedDataTest { private static final String DUMMY_TAG = "dummy"; @Inject + TagUserContentFinder finder; + @Inject TagUserContentManager manager; + private Tag tag; @Inject TagManager tagManager; @@ -47,14 +51,33 @@ tagManager.persist(tag); } + private void createSomeTagUserContent() { + List<Tag> tags = manager.find(user, content); + assertEquals(0, tags.size()); + createTagUserContent(); + tags = manager.find(user, content); + assertEquals(1, tags.size()); + } + + private TagUserContent createTagUserContent() { + final TagUserContent tagUC = new TagUserContent(tag, user, content); + manager.persist(tagUC); + return tagUC; + } + @Test public void getTagsAsString() { manager.setTags(user, content, DUMMY_TAG); - String tagS = manager.getTagsAsString(user, content); + final String tagS = manager.getTagsAsString(user, content); assertEquals(DUMMY_TAG, tagS); } @Test + public void getTagsGrouped() { + finder.getTagsGroups(user.getUserGroup()); + } + + @Test public void insertSomeUserContent() { createSomeTagUserContent(); } @@ -63,7 +86,7 @@ public void removeSomeUserContent() { createSomeTagUserContent(); manager.remove(user, content); - List<Tag> tags = manager.find(user, content); + final List<Tag> tags = manager.find(user, content); assertEquals(0, tags.size()); } @@ -80,28 +103,14 @@ public void setTagsRemoveBefore() { manager.setTags(user, content, "foo"); manager.setTags(user, content, DUMMY_TAG); - List<Tag> tags = manager.find(user, content); + final List<Tag> tags = manager.find(user, content); assertEquals(1, tags.size()); assertEquals(DUMMY_TAG, tags.get(0).getName()); } @Test public void testInsertData() { - TagUserContent tagUC = createTagUserContent(); + final TagUserContent tagUC = createTagUserContent(); assertNotNull(tagUC.getId()); } - - private void createSomeTagUserContent() { - List<Tag> tags = manager.find(user, content); - assertEquals(0, tags.size()); - createTagUserContent(); - tags = manager.find(user, content); - assertEquals(1, tags.size()); - } - - private TagUserContent createTagUserContent() { - TagUserContent tagUC = new TagUserContent(tag, user, content); - manager.persist(tagUC); - return tagUC; - } } Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -34,6 +34,7 @@ import org.ourproject.kune.platf.server.manager.impl.SearchResult; import cc.kune.core.client.errors.I18nNotFoundException; +import cc.kune.core.client.errors.UserRegistrationException; import cc.kune.domain.Group; import cc.kune.domain.User; @@ -94,10 +95,10 @@ } /** - * This is not working: + * This was not working: * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382 */ - @Test(expected = PersistenceException.class) + @Test(expected = UserRegistrationException.class) public void testUserExist() throws I18nNotFoundException { final User user1 = userManager.createUser("test", "test 1 name", "[email protected]", "some password", "en", "GB", "GMT"); Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -29,7 +29,7 @@ import cc.kune.domain.User; import com.google.inject.Inject; -import com.wideplay.warp.persist.Transactional; +import com.google.inject.persist.Transactional; public abstract class AbstractSocialNetworkManagerTest extends PersistenceTest { @Inject Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java =================================================================== --- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2011-02-12 02:19:16 UTC (rev 1250) +++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2011-02-13 11:00:54 UTC (rev 1251) @@ -23,8 +23,6 @@ import org.junit.Test; import org.mockito.Mockito; import org.ourproject.kune.workspace.client.themes.WsThemeManager; -import org.ourproject.kune.workspace.client.tool.ToolSelectorItem; -import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter; import cc.kune.core.client.state.StateManager;
participants (1)
-
Vicente J. Ruiz Jurado