You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@celix.apache.org by GitBox <gi...@apache.org> on 2021/03/01 20:27:12 UTC

[GitHub] [celix] pnoltes opened a new pull request #325: Feature/utils zip extract

pnoltes opened a new pull request #325:
URL: https://github.com/apache/celix/pull/325


   Introduces some utils function to handle zip files and in memory zip data.
   
   | WARNING:  This PR will introduce a dependency to libzip |
   | --- |
   
   Because of the added dependency there is no hurry to merge this PR.
   
   My idea is to use these functions to rewrite the bundle handlin.g and hopefully get rid of some untested and effectually dead code (wire.c, capability.c, bundle_archive, bundle_revision, etc)
   
   I also would like to use this to create "fat executable" like an end fatjar (a jar with all of it dependencies included). 
   This is also the reason why this PR contains a test where a zip is linked against the utils test executable. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes edited a comment on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes edited a comment on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-789066243


   > I'm missing a rationale for why fat jars/zips are a feature celix would want. Is this related to the issue with cache directories?
   
   One of the use case I am struggling with is how to make it possible for Celix users to "just install an application" which uses Celix.
   
   If you use Celix to create a nice application (e.g. myapp) which uses different bundles. You can install the bundles, but not really the executable created with the cmake function `add_celix_container`.
   
   When starting the installed executable (e.g. /usr/local/bin/myapp) it needs to find the bundles. This can be achieved by the config property CELIX_BUNDLES_PATH.. but this needs to be done with env after the executable is installed. Because during install you probably not known which CELIX_BUNDLES_PATH are valid (-> e.g. where will the different bundles be installed).
   
   If it possible to create a "fat celix executable" with something like:
   ```
   add_celix_container(myapp
     FATEXE #maybe not the best  name  ... ;)
     BUNDLES Celix::ShellCxx Celix::shell_tui MyBundle
   )
   ```
   where the bundle zips are embedded in the executable you can avoid this issue. 
   
   Of course a different path could be to add support for bundles a shared libraries instead, but can this be done backwards compatible and do we need to update all Celix bundles as shared library then or provide 2 version (1 as zip bundle and 1 as shared library). 
   
   An other issues is also indeed the cache directory, because if you install a celix executable (e.g. /usr/local/bin/myapp) it will now create cache dir in the location where you start the executable. IMO this should be a /tmp or spool dir, but this will also mean that the celix application needs to clean its own (and maybe other not running celix executable) cache dirs. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] codecov-commenter commented on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-908595937


   # [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
   > Merging [#325](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (292aa9b) into [master](https://codecov.io/gh/apache/celix/commit/9432bd3383b8974ffb2bdfee5065828bbd679e3b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (9432bd3) will **decrease** coverage by `0.24%`.
   > The diff coverage is `80.41%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/celix/pull/325/graphs/tree.svg?width=650&height=150&src=pr&token=JdsiThga8P&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #325      +/-   ##
   ==========================================
   - Coverage   71.20%   70.96%   -0.25%     
   ==========================================
     Files         172      173       +1     
     Lines       31442    31585     +143     
   ==========================================
   + Hits        22389    22415      +26     
   - Misses       9053     9170     +117     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
   |---|---|---|
   | [libs/utils/src/celix\_file\_utils.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bGlicy91dGlscy9zcmMvY2VsaXhfZmlsZV91dGlscy5j) | `80.41% <80.41%> (ø)` | |
   | [...ubsub\_admin\_udp\_mc/src/pubsub\_udpmc\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3VkcF9tYy9zcmMvcHVic3ViX3VkcG1jX3RvcGljX3NlbmRlci5j) | `56.06% <0.00%> (-28.33%)` | :arrow_down: |
   | [bundles/pubsub/pubsub\_admin\_udp\_mc/src/large\_udp.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3VkcF9tYy9zcmMvbGFyZ2VfdWRwLmM=) | `10.61% <0.00%> (-22.91%)` | :arrow_down: |
   | [libs/utils/src/hash\_map.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bGlicy91dGlscy9zcmMvaGFzaF9tYXAuYw==) | `93.08% <0.00%> (-1.16%)` | :arrow_down: |
   | [.../pubsub\_admin\_zmq/v2/src/pubsub\_zmq\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3ptcS92Mi9zcmMvcHVic3ViX3ptcV90b3BpY19zZW5kZXIuYw==) | `74.92% <0.00%> (+0.87%)` | :arrow_up: |
   | [...dmin\_websocket/src/pubsub\_websocket\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3dlYnNvY2tldC9zcmMvcHVic3ViX3dlYnNvY2tldF90b3BpY19zZW5kZXIuYw==) | `84.35% <0.00%> (+1.11%)` | :arrow_up: |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [9432bd3...292aa9b](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes edited a comment on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes edited a comment on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-789066243


   > I'm missing a rationale for why fat jars/zips are a feature celix would want. Is this related to the issue with cache directories?
   
   One of the use case I am struggling with is how to make it possible for Celix users to "just install an application" which uses Celix.
   
   If you use Celix to create a nice application (e.g. myapp) which uses different bundles. You can install the bundles, but not really the executable created with the cmake function `add_celix_container`.
   
   When starting the installed executable (e.g. /usr/local/bin/myapp) it needs to find the bundles. This can be achieved by the config property CELIX_BUNDLES_PATH.. but this needs to be done with env after the executable is installed. Because during install you probably not known which CELIX_BUNDLES_PATH are valid (-> e.g. where will the different bundles be installed).
   
   If it possible to create a "fat celix executable" with something like:
   ```
   add_celix_container(myapp
     FATEXE #maybe not the best  name  ... ;)
     BUNDLES Celix::ShellCxx Celix::shell_tui MyBundle
   )
   ```
   where the bundle zips are embedded in the executable you can avoid this issues. 
   
   Of course a different path could be to add support for bundles a shared libraries instead, but can this be done backwards compatible and do we need to update all Celix bundles as shared library then or provide 2 version (1 as zip bundle and 1 as shared library). 
   
   An other issues is also indeed the cache directory, because if you install a celix executable (e.g. /usr/local/bin/myapp) it will now create cache dir in the location where you start the executable. IMO this should be a /tmp or spool dir, but this will also mean that the celix application needs to clean its own (and maybe other not running celix executable) cache dirs. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r585741061



##########
File path: cmake/Modules/FindLIBZIP.cmake
##########
@@ -0,0 +1,51 @@
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+# - Try to find libzip
+#
+# Once done this will define
+#  LIBZIP_FOUND - System has libffi
+#  libzip::libzip target (if found)
+
+mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)

Review comment:
       oops. A copy/paste mistake




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes edited a comment on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes edited a comment on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-789066243


   > I'm missing a rationale for why fat jars/zips are a feature celix would want. Is this related to the issue with cache directories?
   
   One of the use case I am struggling with is how to make it possible for Celix users to "just install a application" which uses Celix.
   
   If you use Celix to create a nice application (e.g. myapp) which uses different bundles. You can install the bundles, but not really the executable created with the cmake function `add_celix_container`.
   
   When starting the installed executable (e.g. /usr/local/bin/myapp) it needs to find the bundles. This can be achieved by the config property CELIX_BUNDLES_PATH.. but this needs to be done with env after the executable is installed. Because during install you probably not known which CELIX_BUNDLES_PATH are valid (-> e.g. where will the different bundles be installed).
   
   If it possible to create a "fat celix executable" with something like:
   ```
   add_celix_container(myapp
     FATEXE #maybe not the best  name  ... ;)
     BUNDLES Celix::ShellCxx Celix::shell_tui MyBundle
   )
   ```
   where the bundle zips are embedded in the executable you can avoid this issues. 
   
   Of course a different path could be to add support for bundles a shared libraries instead, but can this be done backwards compatible and do we need to update all Celix bundles as shared library then or provide 2 version (1 as zip bundle and 1 as shared library). 
   
   An other issues is also indeed the cache directory, because if you install a celix executable (e.g. /usr/local/bin/myapp) it will now create cache dir in the location where you start the executable. IMO this should be a /tmp or spool dir, but this will also mean that the celix application needs to clean its own (and maybe other not running celix executable) cache dirs. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes commented on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-789066243


   > I'm missing a rationale for why fat jars/zips are a feature celix would want. Is this related to the issue with cache directories?
   
   One of the use case I am struggling with is how to make it possible for Celix users to "just install a application" which uses Celix.
   
   If you use Celix to create a nice application (e.g. myapp) which uses different bundles. You can install the bundles, but not really the executable created with the cmake function `add_celic_container`.
   
   When starting the installed executable (e.g. /usr/local/bin/myapp) it needs to find the bundles. This can be achieved by the config property CELIX_BUNDLES_PATH.. but this needs to be done with env after the executable is installed. Because during install you probably not known which CELIX_BUNDLES_PATH are valid (-> e.g. where will the different bundles be installed).
   
   If it possible to create a "fat celix executable" with something like:
   ```
   add_celix_container(myapp
     FATEXE #maybe not the best  name  ... ;)
     BUNDLES Celix::ShellCxx Celix::shell_tui MyBundle
   )
   ```
   where the bundle zip are embedded in the executable you can avoid this issues. 
   
   Of course a different path could be to add support for bundles a shared libraries instead, but can this be done backwards compatible and do we need to update all Celix bundles as shared library then or provide 2 version (1 as zip bundle and 1 as shared library). 
   
   An other issues is also indeed the cache directory, because if you install a celix executable (e.g. /usr/local/bin/myapp) it will now create cache dir in the location where you start the executable. IMO this should be a /tmp or spool dir, but this will also mean that the celix application needs to clean its own (and maybe other not running celix executable) cache dirs. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] jermus67 commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
jermus67 commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r586367193



##########
File path: libs/utils/CMakeLists.txt
##########
@@ -39,12 +41,15 @@ add_library(utils SHARED
     src/ip_utils.c
     src/filter.c
     src/celix_log_utils.c
+    src/celix_file_utils.c
     ${MEMSTREAM_SOURCES}
 )
 set_target_properties(utils PROPERTIES OUTPUT_NAME "celix_utils")
+target_link_libraries(utils PRIVATE libzip::libzip)
 
 if (NOT OPEN_MEMSTREAM_EXISTS)
     target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)
+    target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)

Review comment:
       Unintentional added copy of the previous line? (at least, I hope it is unintentional).




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] codecov-commenter edited a comment on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-908595937


   # [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
   > Merging [#325](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (d9e562b) into [master](https://codecov.io/gh/apache/celix/commit/9479acde218527fe7cc8f19ece240cb7dc6f571f?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (9479acd) will **increase** coverage by `0.04%`.
   > The diff coverage is `80.41%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/celix/pull/325/graphs/tree.svg?width=650&height=150&src=pr&token=JdsiThga8P&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #325      +/-   ##
   ==========================================
   + Coverage   71.47%   71.51%   +0.04%     
   ==========================================
     Files         201      202       +1     
     Lines       34793    34936     +143     
   ==========================================
   + Hits        24867    24984     +117     
   - Misses       9926     9952      +26     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
   |---|---|---|
   | [libs/utils/src/celix\_file\_utils.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bGlicy91dGlscy9zcmMvY2VsaXhfZmlsZV91dGlscy5j) | `80.41% <80.41%> (ø)` | |
   | [...n\_websocket/v1/src/pubsub\_websocket\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3dlYnNvY2tldC92MS9zcmMvcHVic3ViX3dlYnNvY2tldF90b3BpY19zZW5kZXIuYw==) | `84.35% <0.00%> (+1.11%)` | :arrow_up: |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [9479acd...d9e562b](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] codecov-commenter commented on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-908595937


   # [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
   > Merging [#325](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (292aa9b) into [master](https://codecov.io/gh/apache/celix/commit/9432bd3383b8974ffb2bdfee5065828bbd679e3b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (9432bd3) will **decrease** coverage by `0.24%`.
   > The diff coverage is `80.41%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/celix/pull/325/graphs/tree.svg?width=650&height=150&src=pr&token=JdsiThga8P&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #325      +/-   ##
   ==========================================
   - Coverage   71.20%   70.96%   -0.25%     
   ==========================================
     Files         172      173       +1     
     Lines       31442    31585     +143     
   ==========================================
   + Hits        22389    22415      +26     
   - Misses       9053     9170     +117     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
   |---|---|---|
   | [libs/utils/src/celix\_file\_utils.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bGlicy91dGlscy9zcmMvY2VsaXhfZmlsZV91dGlscy5j) | `80.41% <80.41%> (ø)` | |
   | [...ubsub\_admin\_udp\_mc/src/pubsub\_udpmc\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3VkcF9tYy9zcmMvcHVic3ViX3VkcG1jX3RvcGljX3NlbmRlci5j) | `56.06% <0.00%> (-28.33%)` | :arrow_down: |
   | [bundles/pubsub/pubsub\_admin\_udp\_mc/src/large\_udp.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3VkcF9tYy9zcmMvbGFyZ2VfdWRwLmM=) | `10.61% <0.00%> (-22.91%)` | :arrow_down: |
   | [libs/utils/src/hash\_map.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-bGlicy91dGlscy9zcmMvaGFzaF9tYXAuYw==) | `93.08% <0.00%> (-1.16%)` | :arrow_down: |
   | [.../pubsub\_admin\_zmq/v2/src/pubsub\_zmq\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3ptcS92Mi9zcmMvcHVic3ViX3ptcV90b3BpY19zZW5kZXIuYw==) | `74.92% <0.00%> (+0.87%)` | :arrow_up: |
   | [...dmin\_websocket/src/pubsub\_websocket\_topic\_sender.c](https://codecov.io/gh/apache/celix/pull/325/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-YnVuZGxlcy9wdWJzdWIvcHVic3ViX2FkbWluX3dlYnNvY2tldC9zcmMvcHVic3ViX3dlYnNvY2tldF90b3BpY19zZW5kZXIuYw==) | `84.35% <0.00%> (+1.11%)` | :arrow_up: |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [9432bd3...292aa9b](https://codecov.io/gh/apache/celix/pull/325?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] Oipo commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
Oipo commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r585505062



##########
File path: cmake/Modules/FindLIBZIP.cmake
##########
@@ -0,0 +1,51 @@
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+# - Try to find libzip
+#
+# Once done this will define
+#  LIBZIP_FOUND - System has libffi
+#  libzip::libzip target (if found)
+
+mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)

Review comment:
       GNUTLS?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes edited a comment on pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes edited a comment on pull request #325:
URL: https://github.com/apache/celix/pull/325#issuecomment-789066243


   > I'm missing a rationale for why fat jars/zips are a feature celix would want. Is this related to the issue with cache directories?
   
   One of the use case I am struggling with is how to make it possible for Celix users to "just install a application" which uses Celix.
   
   If you use Celix to create a nice application (e.g. myapp) which uses different bundles. You can install the bundles, but not really the executable created with the cmake function `add_celix_container`.
   
   When starting the installed executable (e.g. /usr/local/bin/myapp) it needs to find the bundles. This can be achieved by the config property CELIX_BUNDLES_PATH.. but this needs to be done with env after the executable is installed. Because during install you probably not known which CELIX_BUNDLES_PATH are valid (-> e.g. where will the different bundles be installed).
   
   If it possible to create a "fat celix executable" with something like:
   ```
   add_celix_container(myapp
     FATEXE #maybe not the best  name  ... ;)
     BUNDLES Celix::ShellCxx Celix::shell_tui MyBundle
   )
   ```
   where the bundle zip are embedded in the executable you can avoid this issues. 
   
   Of course a different path could be to add support for bundles a shared libraries instead, but can this be done backwards compatible and do we need to update all Celix bundles as shared library then or provide 2 version (1 as zip bundle and 1 as shared library). 
   
   An other issues is also indeed the cache directory, because if you install a celix executable (e.g. /usr/local/bin/myapp) it will now create cache dir in the location where you start the executable. IMO this should be a /tmp or spool dir, but this will also mean that the celix application needs to clean its own (and maybe other not running celix executable) cache dirs. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] jermus67 commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
jermus67 commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r586366225



##########
File path: cmake/Modules/FindLIBZIP.cmake
##########
@@ -0,0 +1,49 @@
+# or more contributor license agreements.  See the NOTICE file

Review comment:
       Missing lines in the header?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r699025031



##########
File path: cmake/Modules/FindLIBZIP.cmake
##########
@@ -0,0 +1,49 @@
+# or more contributor license agreements.  See the NOTICE file

Review comment:
       updated

##########
File path: libs/utils/CMakeLists.txt
##########
@@ -39,12 +41,15 @@ add_library(utils SHARED
     src/ip_utils.c
     src/filter.c
     src/celix_log_utils.c
+    src/celix_file_utils.c
     ${MEMSTREAM_SOURCES}
 )
 set_target_properties(utils PROPERTIES OUTPUT_NAME "celix_utils")
+target_link_libraries(utils PRIVATE libzip::libzip)
 
 if (NOT OPEN_MEMSTREAM_EXISTS)
     target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)
+    target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)

Review comment:
       double line removed




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes commented on a change in pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes commented on a change in pull request #325:
URL: https://github.com/apache/celix/pull/325#discussion_r699025031



##########
File path: cmake/Modules/FindLIBZIP.cmake
##########
@@ -0,0 +1,49 @@
+# or more contributor license agreements.  See the NOTICE file

Review comment:
       updated

##########
File path: libs/utils/CMakeLists.txt
##########
@@ -39,12 +41,15 @@ add_library(utils SHARED
     src/ip_utils.c
     src/filter.c
     src/celix_log_utils.c
+    src/celix_file_utils.c
     ${MEMSTREAM_SOURCES}
 )
 set_target_properties(utils PROPERTIES OUTPUT_NAME "celix_utils")
+target_link_libraries(utils PRIVATE libzip::libzip)
 
 if (NOT OPEN_MEMSTREAM_EXISTS)
     target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)
+    target_compile_definitions(utils PUBLIC -DNO_MEMSTREAM_AVAILABLE)

Review comment:
       double line removed




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [celix] pnoltes merged pull request #325: Feature/utils zip extract

Posted by GitBox <gi...@apache.org>.
pnoltes merged pull request #325:
URL: https://github.com/apache/celix/pull/325


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@celix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org