You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2003/06/01 21:30:36 UTC
cvs commit: cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/impl DefaultLinkService.java
cziegeler 2003/06/01 12:30:36
Modified: src/blocks/portal/java/org/apache/cocoon/portal/impl
DefaultLinkService.java
Log:
Fixing uri bug: set base of uri to 'portal request'
Revision Changes Path
1.5 +18 -6 cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/impl/DefaultLinkService.java
Index: DefaultLinkService.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/impl/DefaultLinkService.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DefaultLinkService.java 28 May 2003 13:47:30 -0000 1.4
+++ DefaultLinkService.java 1 Jun 2003 19:30:36 -0000 1.5
@@ -53,7 +53,6 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.component.ComponentException;
@@ -65,6 +64,7 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.environment.Request;
import org.apache.cocoon.portal.LinkService;
import org.apache.cocoon.portal.event.ComparableEvent;
import org.apache.cocoon.portal.event.Event;
@@ -98,11 +98,23 @@
// FIXME - comparable events are not completly implemented yet
protected Info getInfo() {
- final Map objectModel = ContextHelper.getObjectModel(this.context);
- Info info = (Info)objectModel.get(DefaultLinkService.class.getName());
+ // TODO - add portal name to allow several portals at the same time
+ final Request request = ContextHelper.getRequest( this.context );
+ Info info = (Info)request.getAttribute(DefaultLinkService.class.getName());
if ( info == null ) {
- info = new Info();
- objectModel.put(DefaultLinkService.class.getName(), info);
+ synchronized ( this ) {
+ info = (Info)request.getAttribute(DefaultLinkService.class.getName());
+ if ( info == null ) {
+ info = new Info();
+ request.setAttribute(DefaultLinkService.class.getName(), info);
+ String baseURI = request.getSitemapURI();
+ final int pos = baseURI.lastIndexOf('/');
+ if ( pos != -1 ) {
+ baseURI = baseURI.substring(pos+1);
+ }
+ info.linkBase.append(baseURI);
+ }
+ }
}
return info;
}