Thoughts on Software Engineering: Is OSGi going to become the...
Popularity Report
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
URL Tag Cloud
Bookmark History
Public Sticky notes
tracking services and managing all the aspects of what to do when services come and go is nasty
Highlighted by kenyth
To be honest - I'd never even think about starting an OSGi project without using Spring DM.
Highlighted by kenyth
OSGi's versioning concept (as a side effect ...) makes a first step of bringing the enforcement of architectural constraints to the developer's daily life by definining export and import packages
Highlighted by kenyth
You typically end up in a situation where you constantly tweak your modules build specifications (that creates your manifest) and spread absolutely counter-intuitive dependencies across your whole system.
Highlighted by kenyth
you cannot go on without a strong and automated integration testing suite that incorporates OSGi (another thing that Spring DM supports).
Highlighted by kenyth
First of all - before considering OSGi I would really check if I have the ultimate requirement to exchange bundles at runtime without shutting down the system
Highlighted by kenyth
I do not want my objects to be bound to a runtime environment such as OSGI - therefore I unit-test my classes with the standard Java runtime environment (and hence with the default class loader).
Highlighted by kenyth
As most of the frameworks, they only work well if used with POJOs solely. Same goes for OSGi,
Highlighted by kenyth
increased overhead of explicitly managing third party library dependencies.
Highlighted by kenyth
Any technology which provides productivity barriers will be resisted
Highlighted by kenyth
modularity is crucial for these huge software systems. Or for example LinkedIn where over 800 bundles provide the functionality for this very cool website.
Highlighted by kenyth
"low-hanging-fruits" of the OSGi mindset:
- Use bundle-scoped micro-services (e.g. by just structuring my software into
bundles and exporting/importing to/from a service registry)
- Give developers what makes life easier for them (e.g. classpath scanning,
automatic startup of bundles if they are on the classpath etc.)
- BUT: Heavily constrain the developer at build-time (like OSGi does - but
e.g. through the use of Classycle or similiar tools)
- BUT: Loosely constrain the developer at runtime (bundles can only get objects
they are intended to get, e.g. through service lookups)
- AND: put all these things into relation with existing best practices (e.g.
Spring DM like IOC, AOP, etc...)
- Use bundle-scoped micro-services (e.g. by just structuring my software into
bundles and exporting/importing to/from a service registry)
- Give developers what makes life easier for them (e.g. classpath scanning,
automatic startup of bundles if they are on the classpath etc.)
- BUT: Heavily constrain the developer at build-time (like OSGi does - but
e.g. through the use of Classycle or similiar tools)
- BUT: Loosely constrain the developer at runtime (bundles can only get objects
they are intended to get, e.g. through service lookups)
- AND: put all these things into relation with existing best practices (e.g.
Spring DM like IOC, AOP, etc...)
Highlighted by kenyth
ClassLoaders mix two responsabilities:
1) Load the class (and have a chance to instrument it at load-time)
2) Define the visibility on other classes loaded in the JVM (e.g. via ClassLoader hierarchies.
1) Load the class (and have a chance to instrument it at load-time)
2) Define the visibility on other classes loaded in the JVM (e.g. via ClassLoader hierarchies.
Highlighted by kenyth
Ideally, the concepts of and visibility should be orthogonal. Java should maybe evolve in this direction, by integrating the bundle concept into the JVM for dealing with visibility rules (in a way like .NET assemblies) and let the classloader only deal with .
Highlighted by kenyth


Public Comment