Hi Dan, yes I saw the Settings add-on. Bur I need to use the configuration parameter when instantiating my domain service (Isis biotstrap?).
As far I understand,the way would be to use ApplicationSettingsService (https://github.com/isisaddons/isis-module-settings/blob/master/dom/src/main/java/org/isisaddons/module/settings/dom/ApplicationSettingsService.java ) What I don't undersand is the order how Isis creates the domain services. Can I use the AppSettigsService in this early Isis bootstrapping phase? Hope I explained this clearly... BR,Vladimir > Am 23.09.2014 um 15:53 schrieb Dan Haywood <d...@haywood-associates.co.uk>: > > 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ć <vnise...@gmail.com> 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ć <vnise...@gmail.com>: >> >>> 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; >>