celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anupam Datta <adb...@gmail.com>
Subject Re: issue with celix
Date Thu, 09 Jun 2016 09:45:57 GMT
Hi I tried your suggestion and it showed (null) on the test.prop ie. it
didn't take the property value from config.properties

I am sending the directory structure and my built proj

I followed the instruction :
https://github.com/apache/celix/blob/develop/documents/getting_started/readme.md

anupam@anupam:~/Dev/ApacheCelix/git_celix/DM_proj_001$ tree
.
├── build
│   ├── bundles
│   │   └── dm_bundle_001
│   │       ├── CMakeFiles
│   │       │   ├── CMakeDirectoryInformation.cmake
│   │       │   ├── dm_bundle_001_bundle.dir
│   │       │   │   ├── build.make
│   │       │   │   ├── cmake_clean.cmake
│   │       │   │   ├── DependInfo.cmake
│   │       │   │   ├── depend.internal
│   │       │   │   ├── depend.make
│   │       │   │   └── progress.make
│   │       │   ├── dm_bundle_001.dir
│   │       │   │   ├── build.make
│   │       │   │   ├── C.includecache
│   │       │   │   ├── cmake_clean.cmake
│   │       │   │   ├── DependInfo.cmake
│   │       │   │   ├── depend.internal
│   │       │   │   ├── depend.make
│   │       │   │   ├── flags.make
│   │       │   │   ├── link.txt
│   │       │   │   ├── private
│   │       │   │   │   └── src
│   │       │   │   │       └── activator.c.o
│   │       │   │   └── progress.make
│   │       │   ├── myproject-deploy.dir
│   │       │   │   ├── build.make
│   │       │   │   ├── cmake_clean.cmake
│   │       │   │   ├── DependInfo.cmake
│   │       │   │   ├── depend.internal
│   │       │   │   ├── depend.make
│   │       │   │   └── progress.make
│   │       │   └── progress.marks
│   │       ├── cmake_install.cmake
│   │       ├── dm_bundle_001_content
│   │       │   └── libdm_bundle_001.so.1
│   │       ├── dm_bundle_001_gen
│   │       │   ├── lib-dm_bundle_001-copy-timestamp
│   │       │   ├── MANIFEST.MF
│   │       │   ├── MANIFEST.step1
│   │       │   └── MANIFEST.step2
│   │       ├── dm_bundle_001.zip
│   │       ├── libdm_bundle_001.so -> libdm_bundle_001.so.1
│   │       ├── libdm_bundle_001.so.1 -> libdm_bundle_001.so.1.0.0
│   │       ├── libdm_bundle_001.so.1.0.0
│   │       ├── Makefile
│   │       └── myproject-deploy-timestamp
│   ├── 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
│   │   │   ├── depend.internal
│   │   │   ├── depend.make
│   │   │   └── progress.make
│   │   ├── cmake.check_cache
│   │   ├── CMakeDirectoryInformation.cmake
│   │   ├── CMakeOutput.log
│   │   ├── CMakeRuleHashes.txt
│   │   ├── CMakeTmp
│   │   ├── deploy.dir
│   │   │   ├── build.make
│   │   │   ├── cmake_clean.cmake
│   │   │   ├── DependInfo.cmake
│   │   │   ├── depend.internal
│   │   │   ├── depend.make
│   │   │   └── 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
│   ├── deploy
│   │   └── myproject-deploy
│   │       ├── config.properties
│   │       ├── config.properties.step1
│   │       ├── core
│   │       ├── myproject-deploy
│   │       └── run.sh
│   └── Makefile
├── bundles
│   └── dm_bundle_001
│       ├── CMakeLists.txt
│       └── private
│           └── src
│               └── activator.c
└── CMakeLists.txt

24 directories, 78 files

And my project is attached.

Thanks & Regards
Anupam Datta

On Thu, Jun 2, 2016 at 8:28 PM, Gabriele Ricciardi <lele.ricciardi@gmail.com
> wrote:

> 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 <adbd04@gmail.com>:
>
>> 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 <pepijnnoltes@gmail.com>
>> wrote:
>>
>> > Hi,
>> >
>> > On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <adbd04@gmail.com> 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 <adbd04@gmail.com>
>> wrote:
>> > >
>> > >> Thank you Pepjin. I will definitely try that out.
>> > >>
>> > >> Thanks & Regards
>> > >> Anupam Datta
>> > >> On 24-May-2016 12:28 AM, "Pepijn Noltes" <pepijnnoltes@gmail.com>
>> > 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 <adbd04@gmail.com>
>> > 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
>> > >>>
>> > >>
>> >
>>
>
>

Mime
View raw message