celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anupam Datta <adb...@gmail.com>
Subject Re: issue with celix
Date Wed, 01 Jun 2016 10:10:00 GMT
I tried with config.properties but not sure how actually I can achieve
that. Do you have any example code or clear docs ?
I had added DM_HELLO="hello_properties" in config.properties file
and in activator.c file I added :

#define HELLO_ACTIVATOR "DM HELLO" //DM_HELLO is the name of the property
mentioned in config.properties file
char *dm_hello_data = NULL;

Then inside bundleActivator_create(...
I added bundleContext_getProperty(context, HELLO_ACTIVATOR, &dm_hello_data);

Inside bundleActivator_start(....
I added : printf("%sHello %s\n", dm_hello_data, data->word);

But I could not get "hello_properties" printed in last line ie .
printf("%sHello
%s\n", dm_hello_data, data->word);

Let me know what is the exact way of adding and retrieving from
config.properties

Thanks & Regards
Anupam Datta

On Fri, May 27, 2016 at 1:36 PM, Pepijn Noltes <pepijnnoltes@gmail.com>
wrote:

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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message