cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Javier Puerto <jpue...@gmail.com>
Subject Re: accessing a spring bean methods from sitemap
Date Sun, 11 Nov 2012 12:26:48 GMT
2012/11/10 Thorsten Scherler <scherler@gmail.com>

> Hi Mansour,
>
> Javier is on a flight to Zürich ATM but I know what code he is talking
> about.
>

Yeah, for an input module. If you want to access from a flowscript as
Francesco suggested you can use this:

var yourComponentInstance = cocoon.getComponent("BEAN-ID");


>
> I read between the lines that you are on 2.2. If you happen to be on 3
> then the whole thing is much straight forward.
>
> I am not sure whether the following is the best approach for your problem
> since it depends on where you want to come the hashMap from. Next outlines
> how to access one from spring.
>
> in your spring file you have to add the ns declaration and something like
> the following:
> <!--ns-->
> xmlns:util="http://www.**springframework.org/schema/**util<http://www.springframework.org/schema/util>
> "
>   xsi:schemaLocation="...
> http://www.springframework.**org/schema/util<http://www.springframework.org/schema/util>
> http://www.springframework.**org/schema/util/spring-util-2.**5.xsd<http://www.springframework.org/schema/util/spring-util-2.5.xsd>
> "
>
> <bean id="collection"
> name="org.apache.cocoon.**components.modules.input.**
> InputModule/collection"
>     class="es.sadesi.module.input.**Collection">
>     <property name="map" ref="sections"/>
> </bean>
>
> <util:map id="sections" map-class="java.util.HashMap">
>   <entry key="0" value="0. Disposiciones estatales" />
>   <entry key="1" value="1. Disposiciones generales" />
>   <entry key="2" value="2. Autoridades y personal" />
>   <entry key="2.1" value="2.1. Nombramientos, situaciones e incidencias" />
>   <entry key="2.2" value="2.2. Oposiciones, concursos y otras
> convocatorias" />
>   <entry key="3" value="3. Otras disposiciones" />
>   <entry key="4" value="4. Administración de justicia" />
>   <entry key="5" value="5. Anuncios" />
>   <entry key="5.1" value="5.1. Licitaciones públicas y adjudicaciones" />
>   <entry key="5.2" value="5.2. Otros anuncios oficiales" />
> </util:map>
>
> Then create a es.sadesi.module.input.**Collection class with something
> like
> package es.sadesi.module.input;
>
> import java.util.Map;
>
> import org.apache.avalon.framework.**configuration.Configuration;
> import org.apache.avalon.framework.**configuration.**
> ConfigurationException;
> import org.apache.cocoon.components.**modules.input.**AbstractInputModule;
> import org.apache.cocoon.components.**modules.input.InputModule;
> import org.springframework.beans.**factory.annotation.Required;
>
> public class Collection extends AbstractInputModule {
>     private InputModule map;
>
>     public Object getAttribute(String name, Configuration modeConf,
>             Map objectModel) throws ConfigurationException {
>
>         final Object result =  map.getAttribute(name, null, null);
>         return result;
>
>     }
>
>     public Object getAttribute(String name) throws ConfigurationException {
>       return getAttribute(name, null, null);
>     }
>
>     @Required
>     public void setMap(InputModule map) {
>         this.map = map;
>     }
> }
>
> then use it in your sitemap with
> {collection:2.2} which should return "2.2. Oposiciones, concursos y otras
> convocatorias"
>
> That should work in 2.2 (I have no time to test it so it may miss
> something in the extraction of the customer use case but it should get you
> started).
>
> HTH
>
> salu2
>
>
> On 11/10/2012 08:07 PM, Mansour Al Akeel wrote:
>
>> Javier,
>> thank you.
>> The module I am going to implement is to be used by one block only,
>> and would love to be able to declare it in the sitemap.xmap.
>> I haven't implemented input modules before, but reading this:
>>
>> http://cocoon.apache.org/2.1/**userdocs/concepts/modules.html<http://cocoon.apache.org/2.1/userdocs/concepts/modules.html>
>>
>>
>> "Step 1: Making a new module known to Apache Cocoon
>>
>> Like other core components of Apache Cocoon, modules are declared in
>> cocoon.xconf. There are already too many to list here.
>>
>> <input-modules>
>>    <component-instance name="request"
>>    class="org.apache.cocoon.**components.modules.input.**
>> RequestParameterModule"/>
>> .....
>> "
>>
>> since I am developing with maven and jetty, and doing it in on block,
>> I like to declare this new input module in the sitemap.xmap or in the
>> same block (jar).
>>
>> Is there a way to do this ??
>>
>>
>>
>>
>> On Sat, Nov 10, 2012 at 1:09 PM, Javier Puerto <jpuerto@gmail.com> wrote:
>>
>>> I did something similar for a client. We did it with a custom input
>>> module
>>> so you can define a protocol on when the input is the key an the output
>>> the
>>> value.
>>>
>>> Also I can't access to my laptop now but I have an example about
>>> accessing
>>> to spring beans from flow script, probably the input module it's enough.
>>>
>>> Salu2
>>>
>>> El 10/11/2012 18:41, "Francesco Chicchiriccò" <ilgrosso@apache.org>
>>> escribió:
>>>
>>>  On 10/11/2012 18:38, Mansour Al Akeel wrote:
>>>>
>>>>> I need to link documents through some identification. For example,
>>>>> assuming that I have:
>>>>>
>>>>> articles/my-first-article.xml
>>>>> articles/second-one.xml
>>>>> articles/hello-world-article.**xml
>>>>>
>>>>> books/book1.xml  which has  references to  artice-1 and article-3
>>>>> identified by an id of the form: A001
>>>>>
>>>>> I need to create a hashtable linking both so that I pass query param
>>>>> by ID or by name. The idea I have is to initialize spring bean that
>>>>> will extract the data from these files,
>>>>> and construct a Map<String,String>.
>>>>>
>>>>> My question is how can I access this HashTable from sitemap ??
>>>>>
>>>>> I am using C2.2.
>>>>>
>>>> Hi,
>>>> I don't think there is any direct way to access an Hashtable from the
>>>> sitemap: maybe the only chance is to get to it through flowscript...
>>>>
>>>> Don't have idea of how to access a Spring bean from flowscript,
>>>> though... any C2.2. expert around?
>>>>
>>>> Regards.
>>>>
>>>> --
>>>> Francesco Chicchiriccò
>>>>
>>>> ASF Member, Apache Cocoon PMC and Apache Syncope PPMC Member
>>>> http://people.apache.org/~**ilgrosso/<http://people.apache.org/~ilgrosso/>
>>>>
>>>>
>>>> ------------------------------**------------------------------**
>>>> ---------
>>>> To unsubscribe, e-mail: users-unsubscribe@cocoon.**apache.org<users-unsubscribe@cocoon.apache.org>
>>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>>
>>>>  ------------------------------**------------------------------**
>> ---------
>> To unsubscribe, e-mail: users-unsubscribe@cocoon.**apache.org<users-unsubscribe@cocoon.apache.org>
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>
> --
> Thorsten Scherler <scherler.at.gmail.com>
> codeBusters S.L. - web based systems
> <consulting, training and solutions>
>
> http://www.codebusters.es/
>
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.**apache.org<users-unsubscribe@cocoon.apache.org>
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>

Mime
View raw message