Author: cziegeler
Date: Tue Oct 26 03:15:33 2004
New Revision: 55597
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/LayoutModule.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/CopletTransformer.java
Log:
Add alternate href to coplet transformer
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/CopletModule.java
Tue Oct 26 03:15:33 2004
@@ -61,7 +61,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Björn Lütkemeier</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: CopletModule.java,v 1.11 2004/03/05 13:02:10 bdelacretaz
Exp $
+ * @version CVS $Id$
*/
public class CopletModule
implements InputModule, Serviceable, ThreadSafe {
@@ -120,7 +120,7 @@
return value.toString();
} catch (ServiceException e) {
- throw new ConfigurationException("ComponentException ", e);
+ throw new ConfigurationException("ServiceException ", e);
} finally {
this.manager.release(portalService);
}
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/LayoutModule.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/LayoutModule.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/components/modules/input/LayoutModule.java
Tue Oct 26 03:15:33 2004
@@ -37,7 +37,7 @@
* The syntax to use is LAYOUT_ID/PATH or LAYOUT_KEY:LAYOUT_ID/PATH
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: LayoutModule.java,v 1.2 2004/03/05 13:02:10 bdelacretaz
Exp $
+ * @version CVS $Id$
*/
public class LayoutModule
implements InputModule, Serviceable, ThreadSafe {
@@ -98,7 +98,7 @@
return value;
} catch (ServiceException e) {
- throw new ConfigurationException("ComponentException ", e);
+ throw new ConfigurationException("ServiceException ", e);
} finally {
this.manager.release(portalService);
}
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
Tue Oct 26 03:15:33 2004
@@ -53,7 +53,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a>
*
- * @version CVS $Id: URICopletAdapter.java,v 1.14 2004/03/05 13:02:10
bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class URICopletAdapter
extends AbstractCopletAdapter
@@ -132,7 +132,7 @@
} catch (ProcessingException pe) {
throw new SAXException("ProcessingException", pe);
} catch (ServiceException ce) {
- throw new SAXException("ComponentException", ce);
+ throw new SAXException("ServiceException", ce);
} finally {
this.resolver.release(copletSource);
this.manager.release(portalService);
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/CopletTransformer.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/CopletTransformer.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/transformation/CopletTransformer.java
Tue Oct 26 03:15:33 2004
@@ -82,6 +82,9 @@
/** Create a link containing several events */
public static final String LINKS_ELEM = "links";
+ /** Create a link containing several events */
+ public static final String PARAMETER_ELEM = "parameter";
+
/** The content for the links element */
public static final String CONTENT_ELEM = "content";
@@ -184,8 +187,24 @@
this.output(href, format, newAttrs );
}
}
+ } else if (name.equals(PARAMETER_ELEM)) {
+ if (this.insideLinks) {
+ String href = attr.getValue("href");
+ if ( href != null ) {
+ final int pos = href.indexOf('?');
+ if ( pos != -1 ) {
+ href = href.substring(pos+1);
+ }
+ this.collectedEvents.add(new
LinkService.ParameterDescription(href));
+ }
+ }
} else if (name.equals(LINKS_ELEM) ) {
this.insideLinks = true;
+ final AttributesImpl newAttrs = new AttributesImpl();
+ newAttrs.setAttributes(attr);
+ newAttrs.removeAttribute("format");
+ this.stack.push(newAttrs);
+
String format = attr.getValue("format");
if ( format == null ) {
format = "html-link";
@@ -214,9 +233,23 @@
this.insideLinks = false;
final String format = (String)this.stack.pop();
final LinkService linkService =
this.getPortalService().getComponentManager().getLinkService();
+ String href = linkService.getLinkURI(this.collectedEvents);
- final String href = linkService.getLinkURI(this.collectedEvents);
- final AttributesImpl newAttrs = new AttributesImpl();
+ AttributesImpl newAttrs = (AttributesImpl)this.stack.pop();
+ // test for alternate base url
+ final String baseURL = newAttrs.getValue("base-url");
+ if ( baseURL != null ) {
+ newAttrs.removeAttribute("base-url");
+ int pos = href.indexOf('?') + 1;
+ final char separator;
+ if ( baseURL.indexOf('?') == -1 ) {
+ separator = '?';
+ } else {
+ separator = '&';
+ }
+ href = baseURL + separator + href.substring(pos);
+
+ }
this.output(href, format, newAttrs );
this.collectedEvents.clear();
@@ -230,7 +263,7 @@
}
} else if ( name.equals(CONTENT_ELEM) && this.insideLinks ) {
this.content = this.endSAXRecording();
- } else if (!name.equals(COPLET_ELEM)) {
+ } else if (!name.equals(COPLET_ELEM) && !name.equals(PARAMETER_ELEM)) {
super.endTransformingElement(uri, name, raw);
}
}