cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Javier Puerto <jpue...@gmail.com>
Subject Re: [C3] Calling another from REST resource
Date Mon, 26 Aug 2013 09:38:42 GMT
2013/8/26 Andre Juffer <andre.juffer@oulu.fi>

>
>
>
>
> ------------------------------------------------------------------------------------------------------------------------------
> Andre H. Juffer
> Biocenter Oulu and Department of Biochemistry
> University of Oulu, Finland
> Phone: +358-294-481161
> Email: andre.juffer@oulu.fi
>  WWW:
>   www.biochem.oulu.fi/Biocomputing/
>   www.oulu.fi/biocenter/biocomputing-and-bioinformatics
>   www.oulu.fi/biocenter/groups/juffer
>
>  StrucBioCat, www.strucbiocat.oulu.fi
> Triacle Biocomputing, www.triacle-bc.com
>
>     ------------------------------
> *From:* Javier Puerto [jpuerto@gmail.com]
> *Sent:* Monday, August 26, 2013 12:04 PM
>
> *To:* users@cocoon.apache.org
> *Subject:* Re: [C3] Calling another from REST resource
>
>
>
>
> 2013/8/26 Andre Juffer <andre.juffer@oulu.fi>
>
>>  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.
>
>
>
>>
>> 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
>> Email: andre.juffer@oulu.fi
>>  WWW:
>>   www.biochem.oulu.fi/Biocomputing/
>>   www.oulu.fi/biocenter/biocomputing-and-bioinformatics
>>   www.oulu.fi/biocenter/groups/juffer
>>
>>  StrucBioCat, www.strucbiocat.oulu.fi
>> Triacle Biocomputing, www.triacle-bc.com
>>
>>     ------------------------------
>> *From:* Thorsten Scherler [scherler@gmail.com]
>> *Sent:* Monday, August 19, 2013 10:12 AM
>> *To:* users@cocoon.apache.org
>> *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.htmlservlet:
>> 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
>> Email: andre.juffer@oulu.fi
>>  WWW:
>>   www.biochem.oulu.fi/Biocomputing/
>>   www.oulu.fi/biocenter/biocomputing-and-bioinformatics
>>   www.oulu.fi/biocenter/groups/juffer
>>
>>  StrucBioCat, www.strucbiocat.oulu.fi
>> Triacle Biocomputing, www.triacle-bc.com
>>
>>     ------------------------------
>> *From:* Andre Juffer [andre.juffer@oulu.fi]
>> *Sent:* Wednesday, August 14, 2013 4:20 PM
>> *To:* users@cocoon.apache.org
>> *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
>> Email: andre.juffer@oulu.fi
>>  WWW:
>>   www.biochem.oulu.fi/Biocomputing/
>>   www.oulu.fi/biocenter/biocomputing-and-bioinformatics
>>   www.oulu.fi/biocenter/groups/juffer
>>
>>  StrucBioCat, www.strucbiocat.oulu.fi
>> Triacle Biocomputing, www.triacle-bc.com
>>
>>
>>
>> --
>> Thorsten Scherler <scherler.at.gmail.com>
>> codeBusters S.L. - web based systems
>> <consulting, training and solutions>
>> http://www.codebusters.es/
>>
>>
>>
>> --
>> Thorsten Scherler <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
>> Biocenter Oulu and           | Fax: +358-8-553-1141
>> Department of Biochemistry   | Email: andre.juffer@oulu.fi
>> University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
>> StruBioCat                   | WWW: www.strubiocat.oulu.fi
>> Triacle Biocomputing         | WWW: www.triacle-bc.com
>>
>>
>

Mime
View raw message