Hi Vladimir,

Not quite sure how the second doc helped you, but perhaps I misunderstood
your original question.

But at any rate, if you want to do is to store application-settings, then
check out the "Settings module add-on" [1]...  that'll let you store such
stuff in the database.

Other add-ons listed at [2]

Cheers
Dan

[1] https://github.com/isisaddons/isis-module-settings
[2] http://www.isisaddons.org/


On 23 September 2014 14:08, Vladimir Nišević <[email protected]> wrote:

> Found on my own the answer in documentation (
>
> https://isis.apache.org/more-advanced-topics/how-to-09-020-How-to-write-a-typical-domain-service.html
> )
>
>
> Sorry and thanks!
> Vladimir
>
> 2014-09-23 14:54 GMT+02:00 Vladimir Nišević <[email protected]>:
>
> > Hi guys, I have question how to deal with application specific
> > configuration parameters...
> >
> >
> > I use elasticsearch to put/get specific documents and use them in a
> domain
> > model.
> >
> > So I defined a domain service "EsClient" to access to elasticsearch - I
> > use service lifecycle to connect/disconnect to elasticseach.
> >
> >
> >
> > According to ((
> https://isis.apache.org/reference/configuration-files.html)
> > ) my first idea was to:
> >
> > - put the configuration parameters into isis.properites
> > - get the parameter value in a domain service by
> > container.getProperty("propertyName");
> >
> > Currently I get null value here...
> >
> > Thanks,Vladimir
> >
> >
> >
> > Here my code (relevant parts)
> >
> > ....
> > @Named("Elasticsearch")
> > @DomainService(menuOrder = "1.2")
> > public class EsClient {
> >
> >  private static final String ES_CLUSTER_PROPERTY_NAME =
> > "elasticsearch.cluster";
> >  private static final String ES_SERVER_PROPERTY_NAME =
> > "elasticsearch.server";
> >  private static final String ES_SERVER_PORT_PROPERTY_NAME =
> > "elasticsearch.port";
> > ..
> > ...
> >
> >   @SuppressWarnings("resource")
> >     @PostConstruct
> >     @Programmatic
> >     public void connectToEs() {
> >
> >         final String esClusterName =
> > container.getProperty(ES_CLUSTER_PROPERTY_NAME);
> >         container.getUser()
> >         final String esServer =
> > container.getProperty(ES_SERVER_PROPERTY_NAME);
> >         final String esPort =
> > container.getProperty(ES_SERVER_PORT_PROPERTY_NAME);
> >
> >         logger.info("Using elasticsearch properties from
> isis.poperties:"
> > + " server=" + esServer + "," + " port=" + esPort + "," + " cluster=" +
> > esClusterName);
> >
> >         final Settings settings =
> ImmutableSettings.settingsBuilder().put("
> > cluster.name", esClusterName)
> >         // .put("node.name", ES_LOCAL_NODE_NAME)
> >                 .put("client.transport.nodes_sampler_interval", "10") //
> 10
> >                                                                       //
> > seconds
> >                                                                       //
> > ping
> >                 .put("client.transport.sniff", false).build();
> >         client = new TransportClient(settings).addTransportAddress(new
> > InetSocketTransportAddress(esServer, Integer.valueOf(esPort)));
> >
> >         logger.info("Connected to elasticsearch:" + "  server=" +
> > esServer + "," + " port=" + esPort + "," + " cluster=" + esClusterName);
> >
> >         // instance a json mapper
> >         mapper = new ObjectMapper(); // create once, reuse
> >
> >     }
> >
> >     @PreDestroy
> >     @Programmatic
> >     public void disconnectFromES() {
> >         node.close();
> >     }
> > ....
> >
> >  // //////////////////////////////////////
> >     // Injected Services
> >     // //////////////////////////////////////
> >
> >     @javax.inject.Inject
> >     private DomainObjectContainer container;
> >
> >
> >
>

Reply via email to