It works great now! Thanks for your help. I'm still not that fluent in
hivemind. I learn something every time I need to use it.

-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED] 
Sent: quarta-feira, 22 de março de 2006 17:45
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

You're not using BuilderFactory to instantiate your squeeze adaptor.  You
should define a service point for your squeeze adaptor and use that as your
"object" for your contribution...

<service-point id="EntityBeanSqueezeAdaptor"
interface="org.apache.tapestry.util.io.SqueezeAdaptor">
  <invoke-factory>
    <construct
class="com.camerum.tapestry.squeeze.EntityBeanSqueezeAdaptor">
  </invoke-factory>             
</service-point>

<contribution configuration-id="tapestry.data.SqueezeAdaptors">
  <adaptor object="service:EntityBeanSqueezeAdaptor "/>
</contribution>

-----Original Message-----
From: Denis Souza [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 22, 2006 3:40 PM
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

Here it is...

In my hivemodule.xml:

<contribution configuration-id="tapestry.data.SqueezeAdaptors">
   <adaptor
object="instance:com.camerum.tapestry.squeeze.EntityBeanSqueezeAdaptor"/>
</contribution>

My squeeze adaptor class (I left out most of the body of the squeeze and
unsqueeze methods so it wouldn't take so much space).

public class EntityBeanSqueezeAdaptor implements SqueezeAdaptor {

public String getPrefix() {
        return String.valueOf('*');
}

public Class getDataClass() {
        return EntityBeanAbstract.class;
}

public String squeeze(DataSqueezer squeezer, Object object) {
        ...
        return getPrefix() + id;
}

public Object unsqueeze(DataSqueezer squeezer, String id) {
        ...
        return object;
}

private ApplicationStateManager stateManager;

public void setStateManager(ApplicationStateManager stateManager) {
        this.stateManager = stateManager;
}

... that's about it. Inside the squeeze and unsqueeze methods the state
manager is always null. I also tried using "setApplicationStateManager" as
the setter method, but with the same results.


-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED] 
Sent: quarta-feira, 22 de março de 2006 17:24
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

If HiveMind sees a "writable" property of a type for which it has exactly
one matching service point, it will set that property.  I know this works,
because I do it in one of my own services.  Can you post some code and your
applicable hivemodule.xml file contents?

-----Original Message-----
From: Denis Souza [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 22, 2006 3:21 PM
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

... still not happening. The state manager remains null.

Anyway I don't really understand how it could work. What's the logic with
this "autowire"? How does hivemind know to fill it in?

-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED] 
Sent: quarta-feira, 22 de março de 2006 17:06
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

Drop the set-object altogether.  HiveMind will "autowire" it.

-----Original Message-----
From: Denis Souza [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 22, 2006 3:04 PM
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

I did, it just won't allow me to use a "set-object" inside an adaptor tag:

"Element adaptor/set-object is not allowed here."

But since this is not allowed, I don't know how it can be done.

-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED] 
Sent: quarta-feira, 22 de março de 2006 16:53
To: 'Tapestry users'
Subject: RE: Hivemind object in squeeze adaptor

Try adding a "setter" to your implementation class...

public class MySqueezeAdaptor
{
  private ApplicationStateManager stateManager;

  public void setStateManager( ApplicationStateManager stateManager )
  {
    this.stateManager = stateManager;
  }
}

-----Original Message-----
From: Denis Souza [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 22, 2006 2:47 PM
To: 'Tapestry users'
Subject: Hivemind object in squeeze adaptor

Hi,

 

I'm implementing a squeeze adaptor for my app and I was wondering how I
could inject other hivemind objects or services into it.

 

I would have guessed something like this:

 

<contribution configuration-id="tapestry.data.SqueezeAdaptors">

   <adaptor object="instance:MySqueezeAdaptor">

      <set-object property="applicationStateManager"
value="infrastructure:applicationStateManager"/>

   </adaptor>

</contribution>

 

.but of course, it doesn't work. Can anyone help?

 

Thanks,

Denis




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to