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; > > > > > > >
