¿Hay un marco similar a OSGi que se basa en C/C++? Tengo un montón de código heredado en C/C++ que sería demasiado caro para ser portado a Java.¿Existe una alternativa no Java a OSGi?
Respuesta
Aquí es una lista de OSGi-como marcos de C/C++ que sé de (y las que aún se activa):
- Apache Celix [Idioma: C, Licencia: Licencia Apache 2.0]
- SOF [ idioma: C++, Licencia: Desconocido]
- CTK [idioma: C++, Licencia: Apache License 2.0]
- nOSGi [idioma: C++, Licencia: GPLv3]
- Poco OSP [Idioma: C++, Licencia: Comercial]
Este blog post da una visión general de alto nivel sobre estos marcos.
. Esperaba que nOSGI se basara en .NET ... –
Dado que OSGi es hoy en día un ecosistema completo con muchos estándares, subestándares, etc., la respuesta estricta es: no, porque depende de muchas cosas específicas de Java (bytecode, classloading, recolección de basura, ...) que no son parte de C/C++ y que ni siquiera se pueden simular, especialmente para el código heredado.
Pero si nos dice en qué partes de OSGi está interesado y especialmente qué partes considera que no son relevantes para su código, pueden surgir respuestas.
Mientras tanto se puede navegar por algunas otras preguntas similares sobre este sitio o utilice la búsqueda:
Otra pregunta similar, con respuestas, se puede encontrar aquí: http://stackoverflow.com/questions/7069144/how-to-compose-osgi-based-project-with-c-based-project – Alexander
Tenga una mirada en Apache Celix, que le da un marco de módulo similar a OSGi para C, combinado con interoperabilidad C/Java a través del mecanismo de Servicios Remotos de OSGi.
Una de las cosas que (Apache Celix) están investigando actualmente, es cómo extender Celix para que también sea posible usar C++ de forma natural. Actualmente, Celix solo se centra en C. – Alexander
- 1. ¿Existe una alternativa a HTML Tidy?
- 2. ¿Existe una alternativa simple a Readline?
- 3. ¿Existe una alternativa a TOP en MySQL?
- 4. ¿Existe una alternativa genérica viable para apache.commons.collections.CollectionUtils?
- 5. ¿Existe una alternativa gratuita al Exception hunter?
- 6. alternativa a File.Exists() en Java
- 7. ¿Existe una buena alternativa a SQL * PLUS para Oracle?
- 8. ¿Existe una alternativa a getClass(). GetResource() para un ImageIcon estático
- 9. ¿Existe una buena alternativa a la extensión SOAP de PHP?
- 10. ¿Existe una alternativa más ordenada a `except: pass`?
- 11. ¿Existe una función de suspensión alternativa en C a milisegundos?
- 12. ¿Existe una alternativa a inet_ntop/InetNtop en Windows XP?
- 13. ¿Existe una alternativa Perl o Lua a Capistrano?
- 14. ¿Existe una buena alternativa a FishEye de Atlassian?
- 15. ¿Existe una alternativa genérica a la clase ListDictionary?
- 16. ¿Existe una alternativa a los grandes atributos desordenados?
- 17. ¿Existe una alternativa práctica a struct inheritance? (C#)
- 18. ¿Existe una alternativa más rápida a GDI GetPixel()?
- 19. ¿Existe una alternativa más rápida a Google Analytics?
- 20. ¿Alternativa moderna a la biblioteca Java XStream?
- 21. ¿Existe una alternativa 100% Java a ImageIO para leer archivos JPEG?
- 22. ¿Existe una alternativa de Java a la autofixtura de Ploeh para .Net?
- 23. Uso de la biblioteca no OSGI en una aplicación OSGI
- 24. alternativa a servicewrapper para java?
- 25. ¿Existe alguna alternativa válida a ANTLR escrita en C#?
- 26. OSGi y Java EE - JOSGiEE?
- 27. Buscando una alternativa a JasperReports
- 28. Alternativa a la clase observable de Java?
- 29. Alternativa a las Preferencias en Java
- 30. ¿Alguien puede recomendar una alternativa a Java swing?
Una opción es usar OSGi en Java * y * usar su código C/C++, por ejemplo, a través de SWIG, JNA o JNI. –
Los marcos OSGi son compatibles con las bibliotecas JNI, incluida su actualización descargándolas y recargando según sea necesario. –
Aunque es fácil usar JNI y libs nativos con OSGi, tiene un gran inconveniente. Si, por alguna razón, el código nativo falla, la máquina virtual completa también se bloquea. Esta podría ser una razón para no usar JNI. Una solución que use algo como Apache Celix con servicios remotos podría ser más útil en tal caso. – Alexander