You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@celix.apache.org by Anupam Datta <ad...@gmail.com> on 2016/05/11 10:11:22 UTC

issue with celix

I had tried the
http://mirror.fibergrid.in/apache//incubator/celix/celix-1.0.0.incubating/celix-1.0.0.incubating.tar.gz
I followed the README on that source folder but when I tried hello
world program given in the deploy folder, it showed segmentation
fault. Can you please let me know where is the issue?

Re: issue with celix

Posted by Gabriele Ricciardi <le...@gmail.com>.
bundleContext_getProperty expects a "clean" (i.e. NULL) pointer as
destination for the property. (The failing line is stated in the error log,
you can even have a look at the source code in
framework//private/src/bundle_context.c)

In your case, the first bundleContext_getProperty in the bundleCreate goes
fine because dm_hello_data=NULL.
When you restart the bundle dm_hello_data!=NULL because it was set by the
first bundleContext_getProperty, so the second bundleContext_getProperty
fails.

As a general rule, whatever is initialized/created in the create should be
de-initialized/destroyed in the destroy, and whatever is
initialized/created in the start should be de-initialized/destroyed in the
stop.

Set  dm_hello_data=NULL in the destroy and it will work. ;-)

Regards,

Gabriele

2016-06-09 14:22 GMT+02:00 Anupam Datta <ad...@gmail.com>:

> Yes, I just had fixed the issue and seen your mail.
>
> It was successful. However when I stop the bundle and again start it, shows
> :
>
> anupam@anupam
> :~/Dev/ApacheCelix/git_celix/DM_proj_001/build/deploy/myproject-deploy$
> sh run.sh
> -> Anupam, Hello World
> Launcher: Framework Started
>
> -> lb
>   ID    State        Name
>   0     Active       framework
>   1     Active       apache_celix_shell
>   2     Active       apache_celix_shell_tui
>   3     Active       dm_bundle_001
> -> stop 3
> Anupam, Goodbye World
> -> lb
>   ID    State        Name
>   0     Active       framework
>   1     Active       apache_celix_shell
>   2     Active       apache_celix_shell_tui
>   3     Resolved     dm_bundle_001
> -> start 3
> ERROR: Illegal argument [70003]: "Failed to get property [name=DM_HELLO]"
> at
>
> bundleContext_getProperty(/home/anupam/Dev/ApacheCelix/git_celix/celix-src/framework/private/src/bundle_context.c:374)
> Anupam, Hello World
>
>
> Thanks & Regards
> Anupam Datta
>
>
> On Thu, Jun 9, 2016 at 5:03 PM, Gabriele Ricciardi <
> lele.ricciardi@gmail.com
> > wrote:
>
> > Hi Anupam,
> >
> > I think I found your issue: you declared in your activator
> >
> > #define HELLO_ACTIVATOR "DM HELLO"
> >
> > Defines in general should not contain spaces, but in this case it's even
> > more important because the properties_load() function parses properties
> in
> > the format KEY = VALUE , where both KEY and VALUE are strings containing
> > "conventional characters (i.e. a-z, A-Z, 1-9, . , - , _   ... and I
> > wouldn't dare to use something different :-) )
> >
> > Try to fix your define in
> >
> > #define HELLO_ACTIVATOR "DM_HELLO"
> >
> > and then put in your config.properties (by the way, I could not find
> custom
> > properties in the config.properties you sent us)
> >
> > DM_HELLO=<whatever_string.you-prefer>
> >
> > I tried it right now starting from your project and it works fine.
> >
> > Regards,
> >
> > Gabriele
> >
> >
> > 2016-06-09 11:45 GMT+02:00 Anupam Datta <ad...@gmail.com>:
> >
> > > 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 <ad...@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 <ad...@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
> > >>> > >>>
> > >>> > >>
> > >>> >
> > >>>
> > >>
> > >>
> > >
> >
>

Re: issue with celix

Posted by Anupam Datta <ad...@gmail.com>.
Yes, I just had fixed the issue and seen your mail.

It was successful. However when I stop the bundle and again start it, shows
:

anupam@anupam:~/Dev/ApacheCelix/git_celix/DM_proj_001/build/deploy/myproject-deploy$
sh run.sh
-> Anupam, Hello World
Launcher: Framework Started

-> lb
  ID    State        Name
  0     Active       framework
  1     Active       apache_celix_shell
  2     Active       apache_celix_shell_tui
  3     Active       dm_bundle_001
-> stop 3
Anupam, Goodbye World
-> lb
  ID    State        Name
  0     Active       framework
  1     Active       apache_celix_shell
  2     Active       apache_celix_shell_tui
  3     Resolved     dm_bundle_001
-> start 3
ERROR: Illegal argument [70003]: "Failed to get property [name=DM_HELLO]"
at
bundleContext_getProperty(/home/anupam/Dev/ApacheCelix/git_celix/celix-src/framework/private/src/bundle_context.c:374)
Anupam, Hello World


Thanks & Regards
Anupam Datta


On Thu, Jun 9, 2016 at 5:03 PM, Gabriele Ricciardi <lele.ricciardi@gmail.com
> wrote:

> Hi Anupam,
>
> I think I found your issue: you declared in your activator
>
> #define HELLO_ACTIVATOR "DM HELLO"
>
> Defines in general should not contain spaces, but in this case it's even
> more important because the properties_load() function parses properties in
> the format KEY = VALUE , where both KEY and VALUE are strings containing
> "conventional characters (i.e. a-z, A-Z, 1-9, . , - , _   ... and I
> wouldn't dare to use something different :-) )
>
> Try to fix your define in
>
> #define HELLO_ACTIVATOR "DM_HELLO"
>
> and then put in your config.properties (by the way, I could not find custom
> properties in the config.properties you sent us)
>
> DM_HELLO=<whatever_string.you-prefer>
>
> I tried it right now starting from your project and it works fine.
>
> Regards,
>
> Gabriele
>
>
> 2016-06-09 11:45 GMT+02:00 Anupam Datta <ad...@gmail.com>:
>
> > 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 <ad...@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 <ad...@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 <ad...@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" <pe...@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
> >>> > >>>
> >>> > >>
> >>> >
> >>>
> >>
> >>
> >
>

Re: issue with celix

Posted by Gabriele Ricciardi <le...@gmail.com>.
Hi Anupam,

I think I found your issue: you declared in your activator

#define HELLO_ACTIVATOR "DM HELLO"

Defines in general should not contain spaces, but in this case it's even
more important because the properties_load() function parses properties in
the format KEY = VALUE , where both KEY and VALUE are strings containing
"conventional characters (i.e. a-z, A-Z, 1-9, . , - , _   ... and I
wouldn't dare to use something different :-) )

Try to fix your define in

#define HELLO_ACTIVATOR "DM_HELLO"

and then put in your config.properties (by the way, I could not find custom
properties in the config.properties you sent us)

DM_HELLO=<whatever_string.you-prefer>

I tried it right now starting from your project and it works fine.

Regards,

Gabriele


2016-06-09 11:45 GMT+02:00 Anupam Datta <ad...@gmail.com>:

> 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 <ad...@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 <pe...@gmail.com>
>>> wrote:
>>>
>>> > Hi,
>>> >
>>> > On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <ad...@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 <ad...@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" <pe...@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 <ad...@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
>>> > >>>
>>> > >>
>>> >
>>>
>>
>>
>

Re: issue with celix

Posted by Anupam Datta <ad...@gmail.com>.
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 <ad...@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 <pe...@gmail.com>
>> wrote:
>>
>> > Hi,
>> >
>> > On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <ad...@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 <ad...@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" <pe...@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 <ad...@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
>> > >>>
>> > >>
>> >
>>
>
>

Re: issue with celix

Posted by Gabriele Ricciardi <le...@gmail.com>.
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 <ad...@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 <pe...@gmail.com>
> wrote:
>
> > Hi,
> >
> > On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <ad...@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 <ad...@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" <pe...@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 <ad...@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
> > >>>
> > >>
> >
>

Re: issue with celix

Posted by Anupam Datta <ad...@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 <pe...@gmail.com>
wrote:

> Hi,
>
> On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <ad...@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 <ad...@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" <pe...@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 <ad...@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
> >>>
> >>
>

Re: issue with celix

Posted by Pepijn Noltes <pe...@gmail.com>.
Hi,

On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <ad...@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 <ad...@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" <pe...@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 <ad...@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
>>>
>>

Re: issue with celix

Posted by Anupam Datta <ad...@gmail.com>.
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.
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.

Thanks & Regards
Anupam Datta

On Tue, May 24, 2016 at 12:42 AM, Anupam Datta <ad...@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" <pe...@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 <ad...@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
>>
>

Re: issue with celix

Posted by Anupam Datta <ad...@gmail.com>.
Thank you Pepjin. I will definitely try that out.

Thanks & Regards
Anupam Datta
On 24-May-2016 12:28 AM, "Pepijn Noltes" <pe...@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 <ad...@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
>

Re: issue with celix

Posted by Pepijn Noltes <pe...@gmail.com>.
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 <ad...@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

Re: issue with celix

Posted by Anupam Datta <ad...@gmail.com>.
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)


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

On Thu, May 12, 2016 at 2:13 AM, Bjoern Petri <bj...@sundevil.de>
wrote:

>
> Hi Anupam,
>
> Although it is still our latest release, it is actually somewhat outdated.
> Hence, there is a high chance that this issue is already solved. As you
> might have seen, there will be a new release Celix 2.0 soon. In case you do
> not want to wait that long anymore, consider taking the current development
> version from github: https://github.com/apache/celix/tree/develop .
>
> Regards,
>   Bjoern
>
>
>
>
>
> Am 11/05/16 um 12:11 schrieb Anupam Datta:
>
> I had tried the
>>
>> http://mirror.fibergrid.in/apache//incubator/celix/celix-1.0.0.incubating/celix-1.0.0.incubating.tar.gz
>> I followed the README on that source folder but when I tried hello
>> world program given in the deploy folder, it showed segmentation
>> fault. Can you please let me know where is the issue?
>>
>
>

Re: issue with celix

Posted by Bjoern Petri <bj...@sundevil.de>.
Hi Anupam,

Although it is still our latest release, it is actually somewhat 
outdated. Hence, there is a high chance that this issue is already 
solved. As you might have seen, there will be a new release Celix 2.0 
soon. In case you do not want to wait that long anymore, consider taking 
the current development version from github: 
https://github.com/apache/celix/tree/develop .

Regards,
   Bjoern





Am 11/05/16 um 12:11 schrieb Anupam Datta:
> I had tried the
> http://mirror.fibergrid.in/apache//incubator/celix/celix-1.0.0.incubating/celix-1.0.0.incubating.tar.gz
> I followed the README on that source folder but when I tried hello
> world program given in the deploy folder, it showed segmentation
> fault. Can you please let me know where is the issue?