celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pepijn Noltes <pepijnnol...@gmail.com>
Subject Re: issue with celix
Date Fri, 27 May 2016 08:06:01 GMT
Hi,

On Thu, May 26, 2016 at 9:11 AM, Anupam Datta <adbd04@gmail.com> wrote:
> Hi Pepjin,
> I had some query regarding celix :
>
> 1. is it possible to pass arguments to bundles ? ie. at the time of
> starting I want to send some configurable parameters.

Yes. Currently there are two ways.

 1 Add a property to the config.properties file. A bundle can retrieve
the values using the bundleContext_getProperty. See [1] and [2].
When possible we try to follow the Java OSGi api (adapted to C).
 2 Declare a env variable. In case of the Celix
bundleContext_getProperty method if a property is not present in the
framework properties (read the config.properties file) the framework
will look if there is an environment variable present with the
requested property name

[1] https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getProperty%28java.lang.String%29
[2] https://github.com/apache/celix/blob/master/framework/public/include/bundle_context.h

Another way is to use the config admin, this is more flexible but also
more complex. And there are still some TODO's left for the config
admin.


> 2. What is the way of remotely controlling and data capturing via celix
> bundles ? Is there any server where device can register itself via celix
> and from server through browser we can start stop bundle and fetch data?
> I had seen the remote shell and remote service folder but not much
> documentation is available there in the folders to understand how exactly
> it works.

For remote controlling the bundles you can use the remote shell and Apache ACE.
For remote shell you can try the remote_shell example (in the
deploy/remote_shell folder of the build).
When started use a telnet program to connect (telnet localhost 6666).
The remote_shell depends on the shell bundle.
Note that remote_shell is a nice feature to gain remote control, but
is (by design) not secure.

An other option is to use Apache ACE. In this case different devices
can register to Apache ACE using the deployment_admin bundle. You can
then use Apache ACE to define which bundles should be deployed on
which devices. See Apache ACE [3] for more info. You can combine this
with remote shell for more control.

[3] https://ace.apache.org/



Remote services can be used to create distributed application base on
services. The Apache Celix remote services implementation works with
the Amdatu Remote Services implementation [4]
The remote-services-cfg example should work out of the box to give you an idea.
Note that although technically remote services works, you still need
to put considerable effort in it to get something working.
We are aware of this and are working on a solution to simplify the use
of remote services, but for the time being manually effort is needed
to get it running.

[4] http://www.amdatu.org/components/remote.html

Could you specify in more details why do want to build / meand with
'data capturing via celix' ? Because I am not sure if the remote
services is want you want (synchronized communication).



>
> Thanks & Regards
> Anupam Datta
>
> On Tue, May 24, 2016 at 12:42 AM, Anupam Datta <adbd04@gmail.com> wrote:
>
>> Thank you Pepjin. I will definitely try that out.
>>
>> Thanks & Regards
>> Anupam Datta
>> On 24-May-2016 12:28 AM, "Pepijn Noltes" <pepijnnoltes@gmail.com> wrote:
>>
>>> Hi Anupam,
>>>
>>> Please use the documentation at
>>> https://github.com/apache/celix/tree/develop/documents
>>> The idea is when a new Celix release has been made, the website will
>>> refer to documentation github.
>>>
>>> On Mon, May 23, 2016 at 11:52 AM, Anupam Datta <adbd04@gmail.com> wrote:
>>> > Hi,
>>> > I had tried with git version as per the doc :
>>> > https://celix.apache.org/documentation/getting_started.html
>>> > after
>>> > make all
>>> > I did :
>>> > #install the framework and the bundles
>>> > sudo make install-all
>>> >
>>> > It showed me error : make: *** No rule to make target 'install-all'.
>>> Stop.
>>> >
>>> > So I did sudo make install
>>> >
>>> > log file attached : install_log.txt
>>> >
>>> > I created the demo project . After creating, built it and another error
>>> > showed  :
>>> >
>>> > -- Using jar to create bundles
>>> > -- bundle function is deprecated. update target 'hello_001' to
>>> add_bundle
>>> > -- Configuring done
>>> > CMake Error at
>>> > /usr/local/share/celix/cmake/modules/cmake_celix/Packaging.cmake:149
>>> > (add_library):
>>> >   Cannot find source file:
>>> >
>>> >     (
>>> >
>>> >   Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm
>>> .hpp
>>> >   .hxx .in .txx
>>> > Call Stack (most recent call first):
>>> >
>>>  /usr/local/share/celix/cmake/modules/cmake_celix/PackagingLegacy.cmake:41
>>> > (add_bundle)
>>> >   bundles/hello_001/CMakeLists.txt:4 (bundle)
>>> >
>>>
>>> The documentation was incorrect. The should be no parentheses around
>>> the bundle SOURCES.
>>> If you remove them, it should work ....
>>>
>>> >
>>> > CMake Error: CMake can not determine linker language for target:
>>> hello_001
>>> > CMake Error: Cannot determine link language for target "hello_001".
>>> > -- Generating done
>>> > -- Build files have been written to:
>>> > /home/anupam/Dev/ApacheCelix/git_celix/DM_proj_001-build
>>> >
>>> > So what was the issue with it? The directory structure of the demo proj
>>> :
>>> >
>>> > ├── DM_proj_001
>>> > │   ├── bundles
>>> > │   │   └── hello_001
>>> > │   │       ├── CMakeLists.txt
>>> > │   │       └── private
>>> > │   │           └── src
>>> > │   │               └── activator.c
>>> > │   └── CMakeLists.txt
>>> > └── DM_proj_001-build
>>> >     ├── bundles
>>> >     │   └── hello_001
>>> >     │       ├── CMakeFiles
>>> >     │       │   ├── CMakeDirectoryInformation.cmake
>>> >     │       │   ├── hello_001_bundle.dir
>>> >     │       │   │   ├── build.make
>>> >     │       │   │   ├── cmake_clean.cmake
>>> >     │       │   │   ├── DependInfo.cmake
>>> >     │       │   │   └── progress.make
>>> >     │       │   ├── hello_001.dir
>>> >     │       │   │   ├── build.make
>>> >     │       │   │   ├── cmake_clean.cmake
>>> >     │       │   │   ├── DependInfo.cmake
>>> >     │       │   │   ├── depend.make
>>> >     │       │   │   ├── flags.make
>>> >     │       │   │   └── progress.make
>>> >     │       │   └── progress.marks
>>> >     │       ├── cmake_install.cmake
>>> >     │       ├── hello_001_gen
>>> >     │       │   ├── MANIFEST.MF
>>> >     │       │   ├── MANIFEST.step1
>>> >     │       │   └── MANIFEST.step2
>>> >     │       └── Makefile
>>> >     ├── CMakeCache.txt
>>> >     ├── CMakeFiles
>>> >     │   ├── 3.5.1
>>> >     │   │   ├── CMakeCCompiler.cmake
>>> >     │   │   ├── CMakeDetermineCompilerABI_C.bin
>>> >     │   │   ├── CMakeSystem.cmake
>>> >     │   │   └── CompilerIdC
>>> >     │   │       ├── a.out
>>> >     │   │       └── CMakeCCompilerId.c
>>> >     │   ├── bundles.dir
>>> >     │   │   ├── build.make
>>> >     │   │   ├── cmake_clean.cmake
>>> >     │   │   ├── DependInfo.cmake
>>> >     │   │   └── progress.make
>>> >     │   ├── cmake.check_cache
>>> >     │   ├── CMakeDirectoryInformation.cmake
>>> >     │   ├── CMakeOutput.log
>>> >     │   ├── CMakeRuleHashes.txt
>>> >     │   ├── CMakeTmp
>>> >     │   ├── deploy.dir
>>> >     │   │   ├── build.make
>>> >     │   │   ├── cmake_clean.cmake
>>> >     │   │   ├── DependInfo.cmake
>>> >     │   │   └── progress.make
>>> >     │   ├── feature_tests.bin
>>> >     │   ├── feature_tests.c
>>> >     │   ├── Makefile2
>>> >     │   ├── Makefile.cmake
>>> >     │   ├── progress.marks
>>> >     │   ├── rat.dir
>>> >     │   │   ├── build.make
>>> >     │   │   ├── cmake_clean.cmake
>>> >     │   │   ├── DependInfo.cmake
>>> >     │   │   └── progress.make
>>> >     │   └── TargetDirectories.txt
>>> >     ├── cmake_install.cmake
>>> >     └── Makefile
>>> >
>>> > Please share your view on it. let me know if any other log is needed.
>>> >
>>> > Thanks & Regards
>>> > Anupam Datta
>>> >
>>>
>>> Greetings,
>>> Pepijn
>>>
>>

Mime
View raw message