Hi Anupam, In principle your code looks correct, so I tried (more or less) the same as you and for me it works fine.
Just to be sure, and also to give you a reference example, find attached a sample project based on the hello_world. Probably you already know how to build a bundle, but just in case (and assuming you already have Celix correctly installed on your machine) - Untar the project - Create a hello_props_build folder besides it - cd hello_props_build && ccmake -DCELIX_DIR=<path_to_your_celix_install_path> ../hello_props - make && make deploy - cd deploy/hello_properties - echo 'DM_HELLO=test.props' >> config.properties - sh run.sh This should print the Hello World and then the property just appended to the config.properties . I hope this clarify a bit! Regards, Gabriele Ricciardi 2016-06-01 12:10 GMT+02:00 Anupam Datta <[email protected]>: > I tried with config.properties but not sure how actually I can achieve > that. Do you have any example code or clear docs ? > I had added DM_HELLO="hello_properties" in config.properties file > and in activator.c file I added : > > #define HELLO_ACTIVATOR "DM HELLO" //DM_HELLO is the name of the property > mentioned in config.properties file > char *dm_hello_data = NULL; > > Then inside bundleActivator_create(... > I added bundleContext_getProperty(context, HELLO_ACTIVATOR, > &dm_hello_data); > > Inside bundleActivator_start(.... > I added : printf("%sHello %s\n", dm_hello_data, data->word); > > But I could not get "hello_properties" printed in last line ie . > printf("%sHello > %s\n", dm_hello_data, data->word); > > Let me know what is the exact way of adding and retrieving from > config.properties > > Thanks & Regards > Anupam Datta > > On Fri, May 27, 2016 at 1:36 PM, Pepijn Noltes <[email protected]> > wrote: > > > Hi, > > > > On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <[email protected]> wrote: > > > Hi Pepjin, > > > I had some query regarding celix : > > > > > > 1. is it possible to pass arguments to bundles ? ie. at the time of > > > starting I want to send some configurable parameters. > > > > Yes. Currently there are two ways. > > > > 1 Add a property to the config.properties file. A bundle can retrieve > > the values using the bundleContext_getProperty. See [1] and [2]. > > When possible we try to follow the Java OSGi api (adapted to C). > > 2 Declare a env variable. In case of the Celix > > bundleContext_getProperty method if a property is not present in the > > framework properties (read the config.properties file) the framework > > will look if there is an environment variable present with the > > requested property name > > > > [1] > > > https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getProperty%28java.lang.String%29 > > [2] > > > https://github.com/apache/celix/blob/master/framework/public/include/bundle_context.h > > > > Another way is to use the config admin, this is more flexible but also > > more complex. And there are still some TODO's left for the config > > admin. > > > > > > > 2. What is the way of remotely controlling and data capturing via celix > > > bundles ? Is there any server where device can register itself via > celix > > > and from server through browser we can start stop bundle and fetch > data? > > > I had seen the remote shell and remote service folder but not much > > > documentation is available there in the folders to understand how > exactly > > > it works. > > > > For remote controlling the bundles you can use the remote shell and > Apache > > ACE. > > For remote shell you can try the remote_shell example (in the > > deploy/remote_shell folder of the build). > > When started use a telnet program to connect (telnet localhost 6666). > > The remote_shell depends on the shell bundle. > > Note that remote_shell is a nice feature to gain remote control, but > > is (by design) not secure. > > > > An other option is to use Apache ACE. In this case different devices > > can register to Apache ACE using the deployment_admin bundle. You can > > then use Apache ACE to define which bundles should be deployed on > > which devices. See Apache ACE [3] for more info. You can combine this > > with remote shell for more control. > > > > [3] https://ace.apache.org/ > > > > > > > > Remote services can be used to create distributed application base on > > services. The Apache Celix remote services implementation works with > > the Amdatu Remote Services implementation [4] > > The remote-services-cfg example should work out of the box to give you an > > idea. > > Note that although technically remote services works, you still need > > to put considerable effort in it to get something working. > > We are aware of this and are working on a solution to simplify the use > > of remote services, but for the time being manually effort is needed > > to get it running. > > > > [4] http://www.amdatu.org/components/remote.html > > > > Could you specify in more details why do want to build / meand with > > 'data capturing via celix' ? Because I am not sure if the remote > > services is want you want (synchronized communication). > > > > > > > > > > > > Thanks & Regards > > > Anupam Datta > > > > > > On Tue, May 24, 2016 at 12:42 AM, Anupam Datta <[email protected]> > wrote: > > > > > >> Thank you Pepjin. I will definitely try that out. > > >> > > >> Thanks & Regards > > >> Anupam Datta > > >> On 24-May-2016 12:28 AM, "Pepijn Noltes" <[email protected]> > > wrote: > > >> > > >>> Hi Anupam, > > >>> > > >>> Please use the documentation at > > >>> https://github.com/apache/celix/tree/develop/documents > > >>> The idea is when a new Celix release has been made, the website will > > >>> refer to documentation github. > > >>> > > >>> On Mon, May 23, 2016 at 11:52 AM, Anupam Datta <[email protected]> > > wrote: > > >>> > Hi, > > >>> > I had tried with git version as per the doc : > > >>> > https://celix.apache.org/documentation/getting_started.html > > >>> > after > > >>> > make all > > >>> > I did : > > >>> > #install the framework and the bundles > > >>> > sudo make install-all > > >>> > > > >>> > It showed me error : make: *** No rule to make target > 'install-all'. > > >>> Stop. > > >>> > > > >>> > So I did sudo make install > > >>> > > > >>> > log file attached : install_log.txt > > >>> > > > >>> > I created the demo project . After creating, built it and another > > error > > >>> > showed : > > >>> > > > >>> > -- Using jar to create bundles > > >>> > -- bundle function is deprecated. update target 'hello_001' to > > >>> add_bundle > > >>> > -- Configuring done > > >>> > CMake Error at > > >>> > > /usr/local/share/celix/cmake/modules/cmake_celix/Packaging.cmake:149 > > >>> > (add_library): > > >>> > Cannot find source file: > > >>> > > > >>> > ( > > >>> > > > >>> > Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ > .hm > > >>> .hpp > > >>> > .hxx .in .txx > > >>> > Call Stack (most recent call first): > > >>> > > > >>> > > /usr/local/share/celix/cmake/modules/cmake_celix/PackagingLegacy.cmake:41 > > >>> > (add_bundle) > > >>> > bundles/hello_001/CMakeLists.txt:4 (bundle) > > >>> > > > >>> > > >>> The documentation was incorrect. The should be no parentheses around > > >>> the bundle SOURCES. > > >>> If you remove them, it should work .... > > >>> > > >>> > > > >>> > CMake Error: CMake can not determine linker language for target: > > >>> hello_001 > > >>> > CMake Error: Cannot determine link language for target "hello_001". > > >>> > -- Generating done > > >>> > -- Build files have been written to: > > >>> > /home/anupam/Dev/ApacheCelix/git_celix/DM_proj_001-build > > >>> > > > >>> > So what was the issue with it? The directory structure of the demo > > proj > > >>> : > > >>> > > > >>> > ├── DM_proj_001 > > >>> > │ ├── bundles > > >>> > │ │ └── hello_001 > > >>> > │ │ ├── CMakeLists.txt > > >>> > │ │ └── private > > >>> > │ │ └── src > > >>> > │ │ └── activator.c > > >>> > │ └── CMakeLists.txt > > >>> > └── DM_proj_001-build > > >>> > ├── bundles > > >>> > │ └── hello_001 > > >>> > │ ├── CMakeFiles > > >>> > │ │ ├── CMakeDirectoryInformation.cmake > > >>> > │ │ ├── hello_001_bundle.dir > > >>> > │ │ │ ├── build.make > > >>> > │ │ │ ├── cmake_clean.cmake > > >>> > │ │ │ ├── DependInfo.cmake > > >>> > │ │ │ └── progress.make > > >>> > │ │ ├── hello_001.dir > > >>> > │ │ │ ├── build.make > > >>> > │ │ │ ├── cmake_clean.cmake > > >>> > │ │ │ ├── DependInfo.cmake > > >>> > │ │ │ ├── depend.make > > >>> > │ │ │ ├── flags.make > > >>> > │ │ │ └── progress.make > > >>> > │ │ └── progress.marks > > >>> > │ ├── cmake_install.cmake > > >>> > │ ├── hello_001_gen > > >>> > │ │ ├── MANIFEST.MF > > >>> > │ │ ├── MANIFEST.step1 > > >>> > │ │ └── MANIFEST.step2 > > >>> > │ └── Makefile > > >>> > ├── CMakeCache.txt > > >>> > ├── CMakeFiles > > >>> > │ ├── 3.5.1 > > >>> > │ │ ├── CMakeCCompiler.cmake > > >>> > │ │ ├── CMakeDetermineCompilerABI_C.bin > > >>> > │ │ ├── CMakeSystem.cmake > > >>> > │ │ └── CompilerIdC > > >>> > │ │ ├── a.out > > >>> > │ │ └── CMakeCCompilerId.c > > >>> > │ ├── bundles.dir > > >>> > │ │ ├── build.make > > >>> > │ │ ├── cmake_clean.cmake > > >>> > │ │ ├── DependInfo.cmake > > >>> > │ │ └── progress.make > > >>> > │ ├── cmake.check_cache > > >>> > │ ├── CMakeDirectoryInformation.cmake > > >>> > │ ├── CMakeOutput.log > > >>> > │ ├── CMakeRuleHashes.txt > > >>> > │ ├── CMakeTmp > > >>> > │ ├── deploy.dir > > >>> > │ │ ├── build.make > > >>> > │ │ ├── cmake_clean.cmake > > >>> > │ │ ├── DependInfo.cmake > > >>> > │ │ └── progress.make > > >>> > │ ├── feature_tests.bin > > >>> > │ ├── feature_tests.c > > >>> > │ ├── Makefile2 > > >>> > │ ├── Makefile.cmake > > >>> > │ ├── progress.marks > > >>> > │ ├── rat.dir > > >>> > │ │ ├── build.make > > >>> > │ │ ├── cmake_clean.cmake > > >>> > │ │ ├── DependInfo.cmake > > >>> > │ │ └── progress.make > > >>> > │ └── TargetDirectories.txt > > >>> > ├── cmake_install.cmake > > >>> > └── Makefile > > >>> > > > >>> > Please share your view on it. let me know if any other log is > needed. > > >>> > > > >>> > Thanks & Regards > > >>> > Anupam Datta > > >>> > > > >>> > > >>> Greetings, > > >>> Pepijn > > >>> > > >> > > >
hello_props.tar.gz
Description: GNU Zip compressed data
