Re: [C3] Calling another from REST resource

Andre Juffer <[email protected]>
Newsgroups gmane.text.xml.cocoon.user
Message-ID <[email protected]>
On 08/26/2013 12:39 PM, Javier Puerto wrote:



2013/8/26 Andre Juffer <[email protected]<mailto:[email protected]>>



------------------------------------------------------------------------------------------------------------------------------
Andre H. Juffer
Biocenter Oulu and Department of Biochemistry
University of Oulu, Finland
Phone: +358-294-481161<tel:%2B358-294-481161>
Email: [email protected]<mailto:[email protected]>
WWW:
  www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
  www.oulu.fi/biocenter/biocomputing-and-bioinformatics<http://www.oulu.fi/biocenter/biocomputing-and-bioinformatics>
  www.oulu.fi/biocenter/groups/juffer<http://www.oulu.fi/biocenter/groups/juffer>

StrucBioCat, www.strucbiocat.oulu.fi<http://www.strucbiocat.oulu.fi>
Triacle Biocomputing, www.triacle-bc.com<http://www.triacle-bc.com>

________________________________
From: Javier Puerto [[email protected]<mailto:[email protected]>]
Sent: Monday, August 26, 2013 12:04 PM

To: [email protected]<mailto:[email protected]>
Subject: Re: [C3] Calling another from REST resource




2013/8/26 Andre Juffer <[email protected]<mailto:[email protected]>>
I am working on using the Java pipe. So far so so good.  I have two issues:

1. I intend to use a TextSerializer in the final step as I need just a single String returned from the other block, but I cannot find the org.apache.cocoon.sax.component.TextSerializer:

http://cocoon.apache.org/3.0/apidocs/org/apache/cocoon/sax/component/TextSerializer.html

It extends org.apache.cocoon.sax.component.XMLSerializer. All other classes are fine (Pipeline, SAXPipelineComponent, etc). Is there an extra dependency required. If so, which one?

TextSerializer class is in "cocoon-sax" project, the spring declaration is available at "cocoon-sitemap" project in file "cocoon-sitemap/src/main/resources/META-INF/cocoon/spring/cocoon-pipeline-component.xml". You only need these two projects as dependencies.

OK, thanks. I will have a look.

As far as I can see, the TextSerializer does exist in trunk, but not in cocoon-sax-3.0.0-alpha-3

In any case, I got it working, as the response of the other blog is very simple (like <element>someValue</element, no big deal).




2. Also, the example of a VideoController contains the line:

return new Page("servlet:/screen/video", data);

In which package is Page located? I just cannot find it.

I can't see the fragment code you shown and neither the Page class. Where did you get the example?
Anyway, seems like you are trying to create a controller.

That is correct.


You can check the samples to check what kind of object is expected from the controller because probably the Page class inherits from another object.

I am referring to

http://cocoon.apache.org/3.0/features.html

There is an example towards the end.

I see now, seems like you have found a bug in the documentation and needs to be updated. The Page object must implement the interface RestResponse that you can see in the "cocoon-rest" project. I've checked the source and we have some base implementation in the same package, "org.apache.cocoon.rest.response". You can choose a base implementation, extends or implements your own according to your needs. See:

http://svn.apache.org/repos/asf/cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/response/




Thanks,
André



On 08/19/2013 12:19 PM, Thorsten Scherler wrote:
On 08/19/2013 10:58 AM, Andre Juffer wrote:
Hi Thorsten,

I already thought that it would down to what you suggested. Seems to me that calling a pipeline in the way you suggested is the most logical way, as the other block has everything in place to receive requests for accounts, given the hash. I will give it a try.

Another possibility would be to create a java pipe. See e.g. for an usage see
cocoon-rest-optional/src/main/java/org/apache/cocoon/rest/optional/sample/SendMailPipeService.java
and
cocoon-rest-optional/src/main/java/org/apache/cocoon/rest/optional/mail/pipelines/pipes/EmailPlainPipe.java

This gives you a broader possibility. For example in one project I extended the pipeline interface to work with a hashmap and I injected the values via the pipe. This way I did not need to bother with the stream but directly could access the values I needed in the pipeline.

salu2


Best,
André




------------------------------------------------------------------------------------------------------------------------------
Andre H. Juffer
Biocenter Oulu and Department of Biochemistry
University of Oulu, Finland
Phone: +358-294-481161<tel:%2B358-294-481161>
Email: [email protected]<mailto:[email protected]>
WWW:
  www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
  www.oulu.fi/biocenter/biocomputing-and-bioinformatics<http://www.oulu.fi/biocenter/biocomputing-and-bioinformatics>
  www.oulu.fi/biocenter/groups/juffer<http://www.oulu.fi/biocenter/groups/juffer>

StrucBioCat, www.strucbiocat.oulu.fi<http://www.strucbiocat.oulu.fi>
Triacle Biocomputing, www.triacle-bc.com<http://www.triacle-bc.com>

________________________________
From: Thorsten Scherler [[email protected]<mailto:[email protected]>]
Sent: Monday, August 19, 2013 10:12 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: [C3] Calling another from REST resource

On 08/15/2013 04:34 PM, Andre Juffer wrote:
To clarify my question:

I need to identify persons when they access a resource. On the client side, a temporal hash is stored. On the server side, I use that hash to connect with an account associated with a person. The hash is not unique, it is assigned upon signing in, and lost after signing out. When accessing the resource, say a VideoResource in block A,

@POST
Response doSomething(@PathParam("hash") String hash)
{
    Account account = .... // Use the hash here.

    this.facade_.doSomething(account, ....);

    return someResponse;
}

The account information is obtained from another block (B), which is accessed by various others block for the same purpose. These blocks represent various services for which a person may have an account.

Thus, the line with

Account account = .... // Use the hash here.

would access another block.

Can this easily be facilitated with cocoon3 at this stage?

thanks for your time,



The question is do you need to call/use a java class or do you want to call a pipeline?

To call another java class a simple import should do, when you have the dep to the other block set.

In case of calling another pipeline should be working with http://cocoon.apache.org/subprojects/servlet-service/servlet-service-impl/architecture.html servlet:
final URL url = new URL("servlet:blockB:/someUrl");

HTH

salu2


------------------------------------------------------------------------------------------------------------------------------
Andre H. Juffer
Biocenter Oulu and Department of Biochemistry
University of Oulu, Finland
Phone: +358-294-481161<tel:%2B358-294-481161>
Email: [email protected]<mailto:[email protected]>
WWW:
  www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
  www.oulu.fi/biocenter/biocomputing-and-bioinformatics<http://www.oulu.fi/biocenter/biocomputing-and-bioinformatics>
  www.oulu.fi/biocenter/groups/juffer<http://www.oulu.fi/biocenter/groups/juffer>

StrucBioCat, www.strucbiocat.oulu.fi<http://www.strucbiocat.oulu.fi>
Triacle Biocomputing, www.triacle-bc.com<http://www.triacle-bc.com>

________________________________
From: Andre Juffer [[email protected]<mailto:[email protected]>]
Sent: Wednesday, August 14, 2013 4:20 PM
To: [email protected]<mailto:[email protected]>
Subject: [C3] Calling another from REST resource

Is it actually possible to call an another block (say block A) from within a REST resource that resides in block B?

Thanks,


------------------------------------------------------------------------------------------------------------------------------
Andre H. Juffer
Biocenter Oulu and Department of Biochemistry
University of Oulu, Finland
Phone: +358-294-481161<tel:%2B358-294-481161>
Email: [email protected]<mailto:[email protected]>
WWW:
  www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
  www.oulu.fi/biocenter/biocomputing-and-bioinformatics<http://www.oulu.fi/biocenter/biocomputing-and-bioinformatics>
  www.oulu.fi/biocenter/groups/juffer<http://www.oulu.fi/biocenter/groups/juffer>

StrucBioCat, www.strucbiocat.oulu.fi<http://www.strucbiocat.oulu.fi>
Triacle Biocomputing, www.triacle-bc.com<http://www.triacle-bc.com>




--
Thorsten Scherler <scherler.at.gmail.com<http://scherler.at.gmail.com>>
codeBusters S.L. - web based systems
<consulting, training and solutions>

http://www.codebusters.es/




--
Thorsten Scherler <scherler.at.gmail.com<http://scherler.at.gmail.com>>
codeBusters S.L. - web based systems
<consulting, training and solutions>

http://www.codebusters.es/




--
Andre H. Juffer              | Phone: +358-294-481161<tel:%2B358-294-481161>
Biocenter Oulu and           | Fax: +358-8-553-1141<tel:%2B358-8-553-1141>
Department of Biochemistry   | Email: [email protected]<mailto:[email protected]>
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
StruBioCat                   | WWW: www.strubiocat.oulu.fi<http://www.strubiocat.oulu.fi>
Triacle Biocomputing         | WWW: www.triacle-bc.com<http://www.triacle-bc.com>





--
Andre H. Juffer              | Phone: +358-294-481161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: [email protected]<mailto:[email protected]>
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/<http://www.biochem.oulu.fi/Biocomputing/>
StruBioCat                   | WWW: www.strubiocat.oulu.fi<http://www.strubiocat.oulu.fi>
Triacle Biocomputing         | WWW: www.triacle-bc.com<http://www.triacle-bc.com>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.