I have made a component using tacos comps, but when including a partial
link I get the error
Failed to compute checksum for resource {1}.
java.lang.NullPointerException Stack Trace: 
      * 
org.apache.tapestry.asset.ResourceChecksumSourceImpl.computeChecksum(ResourceChecksumSourceImpl.java:97)
      * 
org.apache.tapestry.asset.ResourceChecksumSourceImpl.getChecksum(ResourceChecksumSourceImpl.java:66)
      * org.apache.tapestry.asset.PrivateAsset.buildURL(PrivateAsset.java:77)
      * org.apache.tapestry.html.Body.writeExternalScripts(Body.java:226)
      * org.apache.tapestry.html.Body.writeScript(Body.java:
[snip]

If I use partial link (inside a part component) I get this error. bundle
the source of tacos inside my own code-tree. This tree is jarred, and
templates/components are extracted from the classpath.

I really don't see what I might be doing wrong, can it be that
tacos:PartialLink doesn't work in a classpath environment and only when
fetched from the context?

If I remove the two partial links in my code, the comp works as
expected. I am really at loss here, anybody who can help?

Thanks.

-- 
Olve Sæther Hansen <[EMAIL PROTECTED]>
Intermedia - Aksis / Unifob AS
The Jacksons Edit
  • The Jacksons
  • Musikk
  • band,musikk,something
Undo Name: Description: Type: Mappe: Terms: Last modified: en dato
package no.imb.bite.framework.components;
/**
 * Created by: olve
 * date: 11.aug.2005, at time: 14:44:00
 *
 * @author $Author: olve $
 * @version $Revision: 1.1 $
 * @copyright InterMedia, Unifob AS
 */
import no.imb.bite.framework.web.BiteBaseComponent;
import no.imb.bite.model.FileRef;
import no.imb.bite.service.FileBankManager;
import org.apache.log4j.Logger;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.valid.IValidationDelegate;

/**
 * TODO: Document class!
 *
 */
public abstract class FileRefEditor extends BiteBaseComponent {
    protected Logger log = Logger.getLogger(getClass());

	public static final String FILE_RESOURCE="fileResource";

	public FileRefEditor(){

	}

	public abstract  FileRef getFileRef();
	public abstract  void setFileRef(FileRef fileRef);


	public abstract FileBankManager getFileBankManager();
	public abstract void setFileBankManager(FileBankManager manager);

	public abstract void setReadMode(Boolean b);
	public abstract Boolean getReadMode();



	public void editMode(IRequestCycle cycle) {
		if (log.isDebugEnabled()) {
			log.debug("editMode, id: "+cycle.getServiceParameters()[0]);
		}
		setReadMode(false);

	}


	public void readMode(IRequestCycle cycle) {
		if (log.isDebugEnabled()) {
			log.debug("readMode, id: " + cycle.getServiceParameters()[0]);
		}
		setReadMode(true);
	}

	public void storeResource(IRequestCycle cycle) {
		IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");
		if (delegate.getHasErrors()) {
			return;
		}
		//TODO: Store resource

	}


}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-specification
		PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
		"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd";>

<component-specification allow-body="no" allow-informal-parameters="yes"
                         class="no.imb.bite.framework.components.FileRefEditor">

	<description>
		A component for enabling editing and viewing of FileRefs and friends.
	</description>

	<parameter
			name="fileRef"
	        direction="in"
	        required="yes"
	        type="no.imb.bite.model.FileRef">

		<description>
			The file ref to be edited/viewed
		</description>
	</parameter>

	<parameter
			name="edit"
	        direction="in"
	        required="no"
	        default-value="false"
	        type="java.lang.Boolean">

		<description>
			If this file  ref should be edited or not.
		</description>
	</parameter>


	<property-specification name="fileBankManager" type="no.imb.bite.service.FileBankManager"/>


	<property-specification name="readMode" type="java.lang.Boolean" persistent="no" initial-value="true"/>

	<component id="fileResource" inherit-informal-parameters="no" type="Resource">
			<binding name="icon" expression="true"/>
			<binding name="disableLink" expression="false"/> 
			<binding name="mediaInfo" expression="fileRef"/>
	</component>


	 <component id="formResource" type="tacos:PartialForm">
		 <binding name="delegate" expression="beans.delegate"/>
		 <binding name="listener" expression="listeners.storeResource"/>
	 </component>

	<component id="resourcePart" type="tacos:Part">
		<binding name="id" expression="fileRef.id"/>
		<binding name="optimize" expression="false"/>
	</component>

	<component id="partialEdit" type="tacos:PartialLink">
		<binding name="parameters" expression="fileRef.id"/>
		<binding name="listener" expression="listeners.editMode"/>
	</component>

	<component id="partialRead" type="tacos:PartialLink">
		<binding name="parameters" expression="fileRef.id"/>
		<binding name="listener" expression="listeners.readMode"/>
	</component>


	<bean name="delegate" class="org.apache.tapestry.valid.ValidationDelegate"/>

	<bean name="textValidator" class="org.apache.tapestry.valid.StringValidator">
		<set-property name="required" expression="true"/>
	</bean>


</component-specification>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to