r830 - in trunk: . script src/main/java/org/ourproject/kune/platf/client/services src/main/java/org/ourproject/kune/platf/client/state src/main/java/org/ourproject/kune/platf/client/ui src/main/java/org/ourproject/kune/platf/server/auth src/main/java/org/ourproject/kune/rack src/main/java/org/ourproject/kune/rack/filters src/main/java/org/ourproject/kune/rack/filters/gwts src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel
Author: vjrj Date: 2008-08-05 19:43:43 +0200 (Tue, 05 Aug 2008) New Revision: 830 Added: trunk/TROUBLESHOOT trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java Removed: trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java Modified: trunk/DEV-GUIDE trunk/INSTALL trunk/script/deploy_gwt.sh trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java trunk/src/main/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptor.java trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java trunk/src/main/java/org/ourproject/kune/rack/filters/LogFilter.java trunk/src/main/java/org/ourproject/kune/rack/filters/gwts/GWTServiceFilter.java trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntitySummary.java Log: new TROUBLESHOOT file, and INSTALL instructions improved Complete - task 21: Session timeout problems (cookies issue?) Modified: trunk/DEV-GUIDE =================================================================== --- trunk/DEV-GUIDE 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/DEV-GUIDE 2008-08-05 17:43:43 UTC (rev 830) @@ -3,8 +3,24 @@ Development Environment -------------------------------------------------------------------------------- -See INSTALL for dev specific instructions +Install kune (see INSTALL file). + +mvn eclipse:eclipse generates .project and download necessary code jars. + +GWT Hosted Mode: + +We have a "Run configuration" (Run > Open Run Dialog) in eclipse with Project: "org.ourproject.kune" with Main class: "com.google.gwt.dev.GWTShell", with this program arguments (or similar): "-noserver -out gwt-out /kune/?locale=en&log_level=INFO -port 8080" and in the "Classpath User Entries": + - gwt-dev-[linux|mac|windows].jar + - java - /org.ourproject.kune/src/main + - org.ourproject.kune (default classpath) + +before run hosted mode compile once with: + mvn gwt:compile +and deploy with: + script/deploy_gwt.sh +and then we run jetty (with "mvn jetty:run" also you can run server in debug mode, see TROUBLESHOOT). + Code -------------------------------------------------------------------------------- We use some eclipse code preferences for kune project: Modified: trunk/INSTALL =================================================================== --- trunk/INSTALL 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/INSTALL 2008-08-05 17:43:43 UTC (rev 830) @@ -4,19 +4,17 @@ For development: - Install java-jdk (>= 1.5), maven2, mysql (>= 5.0) and for example eclipse -- Install gwt 1.4.60 and follow Appendix A for maven+gwt configuration +- Install gwt 1.5rc1 and follow Appendix A for maven+gwt configuration - Compile with maven: # (in the trunk directory) mvn compile mvn gwt:compile - Copy the target to src directory (only for test): - mkdir -p src/main/webapp/gwt/org.ourproject.kune.app.Kune - unison -batch -auto -ui text target/org.ourproject.kune-0.0.2/org.ourproject.kune.app.Kune/ src/main/webapp/gwt/org.ourproject.kune.app.Kune + bin/deploy_gwt.sh (if you're using windows as dev plaftorm... you will have to write your own script ;). the idea is to - copy everything from src/main/webapp/gwt/org.ourproject.kune.app.Kune to - src/main/webapp/gwt/org.ourproject.kune.app.Kune) + copy everything from target/kune-0.0.VERSIONHERE/org.ourproject.kune.app.Kune to src/main/webapp/gwt/org.ourproject.kune.app.Kune) - Make two databases in your mysql: @@ -35,24 +33,19 @@ sudo chown yourUser:yourUser /var/lib/lucene/kune_dev/indexes sudo chown yourUser:yourUser /var/lib/lucene/kune_test/indexes - (in case you are using windows as dev platform you only have to create a couple of folders - anywhere you like and then specify them in persistence.xml, as follows: - <property name="hibernate.search.default.indexBase" value="C:\kune\kune-index"/> + In case you are using windows as dev platform you only have to create a couple of folders anywhere you like and then specify them in persistence.xml, as follows: + <property name="hibernate.search.default.indexBase" value="C:\kune\kune-index"/> do the same with every persistence unit defined inside. - ) -- Install and run a openfire jabber server (see Appendix B for proper configuration of openfire) +- Install and run a openfire jabber server (see Appendix B for proper configuration of openfire) or ejabberd. - Run jetty: mvn jetty:run -Ddatabase.migrator.should.run=false # without liquibase db migraton (liquibase.should.run=false in new version) once started (and initialized the db), you can stop a run jetty with de db migrator to insert initial data and migrate: mvn jetty:run -- And conect to http://yourIP:8080/kune +- And connect to http://yourIP:8080/kune -- For development with eclipse: - mvn eclipse:eclipse - Appendix A: Configuration of maven -------------------------------------------------------------------------------- Example of .m2/settings.xml: @@ -144,4 +137,3 @@ -------------------------------------------------------------------------------- mvn package -Dmaven.test.skip=true -o - Added: trunk/TROUBLESHOOT =================================================================== --- trunk/TROUBLESHOOT 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/TROUBLESHOOT 2008-08-05 17:43:43 UTC (rev 830) @@ -0,0 +1,5 @@ +Server: debug with jetty in eclipse: +http://docs.codehaus.org/display/JETTY/Debugging+with+the+Maven+Jetty+Plugin... + +Client code: you can debug with gwt hosted mode in eclipse (see DEV-GUIDE for hosted mode instructions). + Modified: trunk/script/deploy_gwt.sh =================================================================== --- trunk/script/deploy_gwt.sh 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/script/deploy_gwt.sh 2008-08-05 17:43:43 UTC (rev 830) @@ -1,4 +1,7 @@ #!/bin/bash + +mkdir -p src/main/webapp/gwt/org.ourproject.kune.app.Kune + find target/kune-0.0.4/org.ourproject.kune.app.Kune/ -name .DS_Store -exec rm {} \; script/css-compact-and-tidy.css Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-08-05 17:43:43 UTC (rev 830) @@ -18,9 +18,9 @@ import org.ourproject.kune.platf.client.rpc.SocialNetworkService; import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; import org.ourproject.kune.platf.client.state.ContentProvider; -import org.ourproject.kune.platf.client.state.ContentProviderImpl; +import org.ourproject.kune.platf.client.state.ContentProviderDefault; import org.ourproject.kune.platf.client.state.Session; -import org.ourproject.kune.platf.client.state.SessionImpl; +import org.ourproject.kune.platf.client.state.SessionDefault; import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.platf.client.state.StateManagerDefault; import org.ourproject.kune.platf.client.tool.ToolSelector; @@ -157,7 +157,7 @@ register(SingletonScope.class, new Factory<Session>(Session.class) { public Session create() { - return new SessionImpl(Cookies.getCookie(Site.USERHASH), $p(UserServiceAsync.class)); + return new SessionDefault(Cookies.getCookie(Site.USERHASH), $p(UserServiceAsync.class)); } }, new Factory<I18nServiceAsync>(I18nServiceAsync.class) { public I18nServiceAsync create() { @@ -230,7 +230,7 @@ } }, new Factory<ContentProvider>(ContentProvider.class) { public ContentProvider create() { - return new ContentProviderImpl($(ContentServiceAsync.class)); + return new ContentProviderDefault($(ContentServiceAsync.class)); } }, new Factory<StateManager>(StateManager.class) { public StateManager create() { Copied: trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderDefault.java (from rev 827, trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-08-05 01:27:25 UTC (rev 827) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderDefault.java 2008-08-05 17:43:43 UTC (rev 830) @@ -0,0 +1,60 @@ +/* + * + * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.state; + +import java.util.HashMap; + +import org.ourproject.kune.platf.client.dto.StateDTO; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; +import org.ourproject.kune.workspace.client.sitebar.Site; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +public class ContentProviderDefault implements ContentProvider { + + private final ContentServiceAsync server; + private final HashMap<StateToken, StateDTO> cache; + + public ContentProviderDefault(final ContentServiceAsync server) { + this.server = server; + this.cache = new HashMap<StateToken, StateDTO>(); + } + + public void cache(final StateToken encodeState, final StateDTO content) { + cache.put(encodeState, content); + } + + public void getContent(final String user, final StateToken newState, final AsyncCallback<StateDTO> callback) { + Site.showProgressLoading(); + final StateDTO catched = getCached(newState); + if (catched != null) { + callback.onSuccess(catched); + } else { + server.getContent(user, newState.getGroup(), newState, callback); + } + } + + private StateDTO getCached(final StateToken newState) { + return cache.remove(newState); + } + +} Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-08-05 17:43:43 UTC (rev 830) @@ -1,60 +0,0 @@ -/* - * - * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.state; - -import java.util.HashMap; - -import org.ourproject.kune.platf.client.dto.StateDTO; -import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; -import org.ourproject.kune.workspace.client.sitebar.Site; - -import com.google.gwt.user.client.rpc.AsyncCallback; - -public class ContentProviderImpl implements ContentProvider { - - private final ContentServiceAsync server; - private final HashMap<StateToken, StateDTO> cache; - - public ContentProviderImpl(final ContentServiceAsync server) { - this.server = server; - this.cache = new HashMap<StateToken, StateDTO>(); - } - - public void cache(final StateToken encodeState, final StateDTO content) { - cache.put(encodeState, content); - } - - public void getContent(final String user, final StateToken newState, final AsyncCallback<StateDTO> callback) { - Site.showProgressLoading(); - final StateDTO catched = getCached(newState); - if (catched != null) { - callback.onSuccess(catched); - } else { - server.getContent(user, newState.getGroup(), newState, callback); - } - } - - private StateDTO getCached(final StateToken newState) { - return cache.remove(newState); - } - -} Copied: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java (from rev 827, trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-08-05 01:27:25 UTC (rev 827) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-08-05 17:43:43 UTC (rev 830) @@ -0,0 +1,196 @@ +/* + * + * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.state; + +import java.util.Iterator; +import java.util.List; + +import org.ourproject.kune.platf.client.dto.I18nCountryDTO; +import org.ourproject.kune.platf.client.dto.I18nLanguageDTO; +import org.ourproject.kune.platf.client.dto.I18nLanguageSimpleDTO; +import org.ourproject.kune.platf.client.dto.InitDataDTO; +import org.ourproject.kune.platf.client.dto.LicenseDTO; +import org.ourproject.kune.platf.client.dto.StateDTO; +import org.ourproject.kune.platf.client.dto.UserInfoDTO; +import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; +import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync; + +import com.allen_sauer.gwt.log.client.Log; +import com.calclab.suco.client.container.Provider; +import com.calclab.suco.client.signal.Signal; +import com.calclab.suco.client.signal.Signal0; +import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.signal.Slot0; + +public class SessionDefault implements Session { + private String userHash; + private InitDataDTO initData; + private UserInfoDTO currentUserInfo; + private Object[][] languagesArray; + private Object[][] countriesArray; + private Object[][] timezonesArray; + private StateDTO currentState; + private I18nLanguageDTO currentLanguage; + private final Signal<InitDataDTO> onInitDataReceived; + private final Signal<UserInfoDTO> onUserSignIn; + private final Signal0 onUserSignOut; + private final Provider<UserServiceAsync> userServiceProvider; + + public SessionDefault(final String userHash, final Provider<UserServiceAsync> userServiceProvider) { + this.userHash = userHash; + this.userServiceProvider = userServiceProvider; + languagesArray = null; + this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived"); + this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn"); + this.onUserSignOut = new Signal0("onUserSignOut"); + } + + public void check(final AsyncCallbackSimple<?> callback) { + Log.debug("Checking session (userhash: " + getUserHash() + ")"); + userServiceProvider.get().onlyCheckSession(getUserHash(), callback); + } + + public List<I18nCountryDTO> getCountries() { + return initData.getCountries(); + } + + public Object[][] getCountriesArray() { + if (countriesArray == null) { + countriesArray = mapCountries(); + } + return countriesArray; + } + + public I18nLanguageDTO getCurrentLanguage() { + return currentLanguage; + } + + public StateDTO getCurrentState() { + return currentState; + } + + public UserInfoDTO getCurrentUserInfo() { + return currentUserInfo; + } + + public List<I18nLanguageSimpleDTO> getLanguages() { + return initData.getLanguages(); + } + + public Object[][] getLanguagesArray() { + if (languagesArray == null) { + languagesArray = mapLangs(); + } + return languagesArray; + } + + public List<LicenseDTO> getLicenses() { + return initData.getLicenses(); + } + + public Object[][] getTimezones() { + if (timezonesArray == null) { + mapTimezones(); + } + return timezonesArray; + } + + public String getUserHash() { + return userHash; + } + + public boolean isLogged() { + return userHash != null; + } + + public void onInitDataReceived(final Slot<InitDataDTO> slot) { + onInitDataReceived.add(slot); + } + + public void onUserSignIn(final Slot<UserInfoDTO> slot) { + onUserSignIn.add(slot); + } + + public void onUserSignOut(final Slot0 slot) { + onUserSignOut.add(slot); + } + + public void setCurrent(final StateDTO currentState) { + this.currentState = currentState; + } + + public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) { + this.currentLanguage = currentLanguage; + } + + public void setCurrentState(final StateDTO currentState) { + this.currentState = currentState; + } + + public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) { + this.currentUserInfo = currentUserInfo; + if (currentUserInfo != null) { + onUserSignIn.fire(currentUserInfo); + } else { + onUserSignOut.fire(); + } + } + + public void setInitData(final InitDataDTO initData) { + this.initData = initData; + onInitDataReceived.fire(initData); + } + + public void setUserHash(final String userHash) { + this.userHash = userHash; + } + + private Object[][] mapCountries() { + final Object[][] objs = new Object[initData.getCountries().size()][1]; + int i = 0; + for (final Iterator<I18nCountryDTO> iterator = initData.getCountries().iterator(); iterator.hasNext();) { + final I18nCountryDTO country = iterator.next(); + final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() }; + objs[i++] = obj; + } + return objs; + } + + private Object[][] mapLangs() { + final Object[][] objs = new Object[initData.getLanguages().size()][1]; + int i = 0; + for (final Iterator<I18nLanguageSimpleDTO> iterator = initData.getLanguages().iterator(); iterator.hasNext();) { + final I18nLanguageSimpleDTO language = iterator.next(); + final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() }; + objs[i++] = obj; + } + return objs; + } + + private void mapTimezones() { + timezonesArray = new Object[initData.getTimezones().length][1]; + for (int i = 0; i < getTimezones().length; i++) { + final Object[] obj = new Object[] { initData.getTimezones()[i] }; + timezonesArray[i] = obj; + } + } + +} Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-08-05 17:43:43 UTC (rev 830) @@ -1,196 +0,0 @@ -/* - * - * Copyright (C) 2007-2008 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 org.ourproject.kune.platf.client.state; - -import java.util.Iterator; -import java.util.List; - -import org.ourproject.kune.platf.client.dto.I18nCountryDTO; -import org.ourproject.kune.platf.client.dto.I18nLanguageDTO; -import org.ourproject.kune.platf.client.dto.I18nLanguageSimpleDTO; -import org.ourproject.kune.platf.client.dto.InitDataDTO; -import org.ourproject.kune.platf.client.dto.LicenseDTO; -import org.ourproject.kune.platf.client.dto.StateDTO; -import org.ourproject.kune.platf.client.dto.UserInfoDTO; -import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; -import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync; - -import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.container.Provider; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Signal0; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; - -public class SessionImpl implements Session { - private String userHash; - private InitDataDTO initData; - private UserInfoDTO currentUserInfo; - private Object[][] languagesArray; - private Object[][] countriesArray; - private Object[][] timezonesArray; - private StateDTO currentState; - private I18nLanguageDTO currentLanguage; - private final Signal<InitDataDTO> onInitDataReceived; - private final Signal<UserInfoDTO> onUserSignIn; - private final Signal0 onUserSignOut; - private final Provider<UserServiceAsync> userServiceProvider; - - public SessionImpl(final String userHash, final Provider<UserServiceAsync> userServiceProvider) { - this.userHash = userHash; - this.userServiceProvider = userServiceProvider; - languagesArray = null; - this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived"); - this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn"); - this.onUserSignOut = new Signal0("onUserSignOut"); - } - - public void check(final AsyncCallbackSimple<?> callback) { - Log.debug("Checking session (userhash: " + getUserHash() + ")"); - userServiceProvider.get().onlyCheckSession(getUserHash(), callback); - } - - public List<I18nCountryDTO> getCountries() { - return initData.getCountries(); - } - - public Object[][] getCountriesArray() { - if (countriesArray == null) { - countriesArray = mapCountries(); - } - return countriesArray; - } - - public I18nLanguageDTO getCurrentLanguage() { - return currentLanguage; - } - - public StateDTO getCurrentState() { - return currentState; - } - - public UserInfoDTO getCurrentUserInfo() { - return currentUserInfo; - } - - public List<I18nLanguageSimpleDTO> getLanguages() { - return initData.getLanguages(); - } - - public Object[][] getLanguagesArray() { - if (languagesArray == null) { - languagesArray = mapLangs(); - } - return languagesArray; - } - - public List<LicenseDTO> getLicenses() { - return initData.getLicenses(); - } - - public Object[][] getTimezones() { - if (timezonesArray == null) { - mapTimezones(); - } - return timezonesArray; - } - - public String getUserHash() { - return userHash; - } - - public boolean isLogged() { - return userHash != null; - } - - public void onInitDataReceived(final Slot<InitDataDTO> slot) { - onInitDataReceived.add(slot); - } - - public void onUserSignIn(final Slot<UserInfoDTO> slot) { - onUserSignIn.add(slot); - } - - public void onUserSignOut(final Slot0 slot) { - onUserSignOut.add(slot); - } - - public void setCurrent(final StateDTO currentState) { - this.currentState = currentState; - } - - public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) { - this.currentLanguage = currentLanguage; - } - - public void setCurrentState(final StateDTO currentState) { - this.currentState = currentState; - } - - public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) { - this.currentUserInfo = currentUserInfo; - if (currentUserInfo != null) { - onUserSignIn.fire(currentUserInfo); - } else { - onUserSignOut.fire(); - } - } - - public void setInitData(final InitDataDTO initData) { - this.initData = initData; - onInitDataReceived.fire(initData); - } - - public void setUserHash(final String userHash) { - this.userHash = userHash; - } - - private Object[][] mapCountries() { - final Object[][] objs = new Object[initData.getCountries().size()][1]; - int i = 0; - for (final Iterator<I18nCountryDTO> iterator = initData.getCountries().iterator(); iterator.hasNext();) { - final I18nCountryDTO country = iterator.next(); - final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() }; - objs[i++] = obj; - } - return objs; - } - - private Object[][] mapLangs() { - final Object[][] objs = new Object[initData.getLanguages().size()][1]; - int i = 0; - for (final Iterator<I18nLanguageSimpleDTO> iterator = initData.getLanguages().iterator(); iterator.hasNext();) { - final I18nLanguageSimpleDTO language = iterator.next(); - final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() }; - objs[i++] = obj; - } - return objs; - } - - private void mapTimezones() { - timezonesArray = new Object[initData.getTimezones().length][1]; - for (int i = 0; i < getTimezones().length; i++) { - final Object[] obj = new Object[] { initData.getTimezones()[i] }; - timezonesArray[i] = obj; - } - } - -} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java 2008-08-05 17:43:43 UTC (rev 830) @@ -68,9 +68,8 @@ if (panel.isRendered()) { panel.syncSize(); panel.doLayout(); - doLayoutIfNeeded(); } - // doLayoutIfNeeded(); + doLayoutIfNeeded(); } public void addStyle(final String style) { Modified: trunk/src/main/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptor.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/platf/server/auth/AuthenticatedMethodInterceptor.java 2008-08-05 17:43:43 UTC (rev 830) @@ -23,6 +23,8 @@ import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.ourproject.kune.platf.client.errors.SessionExpiredException; import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException; import org.ourproject.kune.platf.server.UserSession; @@ -32,6 +34,8 @@ public class AuthenticatedMethodInterceptor implements MethodInterceptor { + public static final Log log = LogFactory.getLog(AuthenticatedMethodInterceptor.class); + @Inject Provider<UserSession> userSessionProvider; @@ -42,33 +46,40 @@ Provider<SessionService> sessionServiceProvider; public Object invoke(final MethodInvocation invocation) throws Throwable { - Object[] arguments = invocation.getArguments(); - String userHash = (String) arguments[0]; + final Object[] arguments = invocation.getArguments(); + // Some browsers getCookie returns "null" as String instead of null + final String userHash = arguments[0] == null || arguments[0].equals("null") ? null : (String) arguments[0]; - UserSession userSession = userSessionProvider.get(); - SessionService sessionService = sessionServiceProvider.get(); + log.info("Method: " + invocation.getMethod().getName()); + log.info("Userhash received: " + userHash); + log.info("--------------------------------------------------------------------------------"); + final UserSession userSession = userSessionProvider.get(); + final SessionService sessionService = sessionServiceProvider.get(); - Authenticated authAnnotation = invocation.getStaticPart().getAnnotation(Authenticated.class); - boolean mandatory = authAnnotation.mandatory(); + final Authenticated authAnnotation = invocation.getStaticPart().getAnnotation(Authenticated.class); + final boolean mandatory = authAnnotation.mandatory(); - if (userHash == null && mandatory) { - sessionService.getNewSession(); - throw new UserMustBeLoggedException(); - } else if (userSession.isUserNotLoggedIn() && mandatory) { - sessionService.getNewSession(); - throw new SessionExpiredException(); - } else if (userSession.isUserNotLoggedIn() && userHash == null) { - // Ok, do nothing - } else if (userSession.isUserNotLoggedIn() && userHash != null) { - sessionService.getNewSession(); - throw new SessionExpiredException(); - } else if (!userSession.getHash().equals(userHash)) { - userSession.logout(); - sessionService.getNewSession(); - throw new SessionExpiredException(); - } - Object result = invocation.proceed(); - return result; + if (userHash == null && mandatory) { + sessionService.getNewSession(); + throw new UserMustBeLoggedException(); + } else if (userSession.isUserNotLoggedIn() && mandatory) { + sessionService.getNewSession(); + log.info("Session expired (not logged in server and mandatory)"); + throw new SessionExpiredException(); + } else if (userSession.isUserNotLoggedIn() && userHash == null) { + // Ok, do nothing + } else if (userSession.isUserNotLoggedIn() && userHash != null) { + sessionService.getNewSession(); + log.info("Session expired (not logged in server)"); + throw new SessionExpiredException(); + } else if (!userSession.getHash().equals(userHash)) { + userSession.logout(); + sessionService.getNewSession(); + log.info("Session expired (userHash different in server)"); + throw new SessionExpiredException(); + } + final Object result = invocation.proceed(); + return result; } } Modified: trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2008-08-05 17:43:43 UTC (rev 830) @@ -63,7 +63,7 @@ private void execute(final Filter filter, final ServletRequest request, final ServletResponse response) throws IOException, ServletException { - log.debug("RACK FILTER: " + filter.getClass().getSimpleName()); + // log.debug("RACK FILTER: " + filter.getClass().getSimpleName()); filter.doFilter(request, response, this); } } Modified: trunk/src/main/java/org/ourproject/kune/rack/filters/LogFilter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/rack/filters/LogFilter.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/rack/filters/LogFilter.java 2008-08-05 17:43:43 UTC (rev 830) @@ -39,12 +39,12 @@ } public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) - throws IOException, ServletException { - long start = System.currentTimeMillis(); - log.debug("REQUEST: " + RackHelper.getURI(request)); - chain.doFilter(request, response); - long finish = System.currentTimeMillis(); - log.debug("TOTAL TIME: " + (finish - start) + " miliseconds"); + throws IOException, ServletException { + // final long start = System.currentTimeMillis(); + log.debug("REQUEST: " + RackHelper.getURI(request)); + chain.doFilter(request, response); + // final long finish = System.currentTimeMillis(); + // log.debug("TOTAL TIME: " + (finish - start) + " miliseconds"); } public void init(final FilterConfig filterConfig) throws ServletException { Modified: trunk/src/main/java/org/ourproject/kune/rack/filters/gwts/GWTServiceFilter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/rack/filters/gwts/GWTServiceFilter.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/rack/filters/gwts/GWTServiceFilter.java 2008-08-05 17:43:43 UTC (rev 830) @@ -43,22 +43,23 @@ private final DelegatedRemoteServlet servlet; public GWTServiceFilter(final Class<? extends RemoteService> serviceClass) { - this.serviceClass = serviceClass; - this.servlet = new DelegatedRemoteServlet(); + this.serviceClass = serviceClass; + this.servlet = new DelegatedRemoteServlet(); } + public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) + throws IOException, ServletException { + log.info("--------------------------------------------------------------------------------"); + log.debug("SERVICE: " + RackHelper.getURI(request) + " - " + serviceClass.getSimpleName()); + final RemoteService service = getInstance(serviceClass); + servlet.setService(service); + servlet.doPost((HttpServletRequest) request, (HttpServletResponse) response); + } + @Override public void init(final FilterConfig filterConfig) throws ServletException { - super.init(filterConfig); - servlet.setServletContext(filterConfig.getServletContext()); + super.init(filterConfig); + servlet.setServletContext(filterConfig.getServletContext()); } - public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) - throws IOException, ServletException { - log.debug("SERVICE: " + RackHelper.getURI(request) + " - " + serviceClass.getSimpleName()); - RemoteService service = getInstance(serviceClass); - servlet.setService(service); - servlet.doPost((HttpServletRequest) request, (HttpServletResponse) response); - } - } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntitySummary.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntitySummary.java 2008-08-05 01:32:52 UTC (rev 829) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntitySummary.java 2008-08-05 17:43:43 UTC (rev 830) @@ -36,6 +36,9 @@ public void addInTools(final Widget widget) { entityTools.add(widget); + if (entityTools.isRendered()) { + entityTools.doLayout(false); + } mainPanel.doLayoutIfNeeded(); }
participants (1)
-
vjrj