Hi Everyone,
I am using org.eclipse.osgi_3.5.0.v20090127-1630 and starting a small container
with the OSGi Framework launch configuration. In this container I have the
Spring framework and its minimal dependencies. All bundles start OK.
The Spring framwork ORM bundle has imports for the hibernate packages, all
marked as optional. The hibernate (and only one bundle is in the container that
exports hibernate bundles) bundle is started before the spring framework
bundles using the run levels on the launch configuration.
The problem is that only some of the optional hibernate imports are actually
resolved in the spring orm bundle. I can find no explanation for that behaviour
at all. This is what is being exported by the hibernate bundle:
Snip...
org.hibernate {version=3.2.6.ga-SNAPSHOT}
org.hibernate.action {version=3.2.6.ga-SNAPSHOT}
org.hibernate.bytecode {version=3.2.6.ga-SNAPSHOT}
org.hibernate.bytecode.cglib {version=3.2.6.ga-SNAPSHOT}
org.hibernate.bytecode.javassist {version=3.2.6.ga-SNAPSHOT}
org.hibernate.bytecode.util {version=3.2.6.ga-SNAPSHOT}
org.hibernate.cache {version=3.2.6.ga-SNAPSHOT}
org.hibernate.cache.entry {version=3.2.6.ga-SNAPSHOT}
org.hibernate.cfg {version=3.2.6.ga-SNAPSHOT}
org.hibernate.classic {version=3.2.6.ga-SNAPSHOT}
org.hibernate.collection {version=3.2.6.ga-SNAPSHOT}
org.hibernate.connection {version=3.2.6.ga-SNAPSHOT}
org.hibernate.context {version=3.2.6.ga-SNAPSHOT}
org.hibernate.criterion {version=3.2.6.ga-SNAPSHOT}
org.hibernate.dialect {version=3.2.6.ga-SNAPSHOT}
org.hibernate.dialect.function {version=3.2.6.ga-SNAPSHOT}
org.hibernate.dialect.lock {version=3.2.6.ga-SNAPSHOT}
org.hibernate.engine {version=3.2.6.ga-SNAPSHOT}
org.hibernate.engine.loading {version=3.2.6.ga-SNAPSHOT}
org.hibernate.engine.query {version=3.2.6.ga-SNAPSHOT}
org.hibernate.engine.query.sql {version=3.2.6.ga-SNAPSHOT}
org.hibernate.engine.transaction {version=3.2.6.ga-SNAPSHOT}
org.hibernate.event {version=3.2.6.ga-SNAPSHOT}
org.hibernate.event.def {version=3.2.6.ga-SNAPSHOT}
org.hibernate.exception {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.antlr {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.ast {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.ast.exec {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.ast.tree {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.ast.util {version=3.2.6.ga-SNAPSHOT}
org.hibernate.hql.classic {version=3.2.6.ga-SNAPSHOT}
org.hibernate.id {version=3.2.6.ga-SNAPSHOT}
org.hibernate.id.enhanced {version=3.2.6.ga-SNAPSHOT}
org.hibernate.id.insert {version=3.2.6.ga-SNAPSHOT}
org.hibernate.impl {version=3.2.6.ga-SNAPSHOT}
org.hibernate.intercept {version=3.2.6.ga-SNAPSHOT}
org.hibernate.intercept.cglib {version=3.2.6.ga-SNAPSHOT}
org.hibernate.intercept.javassist {version=3.2.6.ga-SNAPSHOT}
org.hibernate.jdbc {version=3.2.6.ga-SNAPSHOT}
org.hibernate.jmx {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.collection {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.criteria {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.custom {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.custom.sql {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.entity {version=3.2.6.ga-SNAPSHOT}
org.hibernate.loader.hql {version=3.2.6.ga-SNAPSHOT}
org.hibernate.lob {version=3.2.6.ga-SNAPSHOT}
org.hibernate.mapping {version=3.2.6.ga-SNAPSHOT}
org.hibernate.metadata {version=3.2.6.ga-SNAPSHOT}
org.hibernate.param {version=3.2.6.ga-SNAPSHOT}
org.hibernate.persister {version=3.2.6.ga-SNAPSHOT}
org.hibernate.persister.collection {version=3.2.6.ga-SNAPSHOT}
org.hibernate.persister.entity {version=3.2.6.ga-SNAPSHOT}
org.hibernate.pretty {version=3.2.6.ga-SNAPSHOT}
org.hibernate.property {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy.dom4j {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy.map {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy.pojo {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy.pojo.cglib {version=3.2.6.ga-SNAPSHOT}
org.hibernate.proxy.pojo.javassist {version=3.2.6.ga-SNAPSHOT}
org.hibernate.secure {version=3.2.6.ga-SNAPSHOT}
org.hibernate.sql {version=3.2.6.ga-SNAPSHOT}
org.hibernate.stat {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tool.hbm2ddl {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tool.instrument {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tool.instrument.cglib {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tool.instrument.javassist{version=3.2.6.ga-SNAPSHOT}
org.hibernate.transaction {version=3.2.6.ga-SNAPSHOT}
org.hibernate.transform {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tuple {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tuple.component {version=3.2.6.ga-SNAPSHOT}
org.hibernate.tuple.entity {version=3.2.6.ga-SNAPSHOT}
org.hibernate.type {version=3.2.6.ga-SNAPSHOT}
org.hibernate.usertype {version=3.2.6.ga-SNAPSHOT}
org.hibernate.util {version=3.2.6.ga-SNAPSHOT}
...snip
This is what is being imported by the spring orm bundle:
org.hibernate {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.cache {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.cfg {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.classic {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.connection {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.context {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.criterion {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.dialect {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.ejb {version=[3.3.0.ga, 4.0.0),
resolution:=optional}
org.hibernate.engine {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.event {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.event.def {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.exception {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.impl {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.jdbc {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.persister.entity {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.tool.hbm2ddl {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.transaction {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.transform {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.type {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.usertype {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
org.hibernate.util {version=[3.2.6.ga, 4.0.0),
resolution:=optional}
The OSGi console tells me what is actually bound in the container:
osgi> b 20
org.springframework.orm_2.5.6.SEC01 [20]
Id=20, Status=ACTIVE Data
Root=/Users/dlaidlaw/Infor/workspaces/framework/.metadata/.plugins/org.eclipse.pde.core/SpringHibernateContainer/org.eclipse.osgi/bundles/20/data
No registered services.
No services in use.
Exported packages
org.springframework.orm; version="2.5.6.SEC01"[exported]
org.springframework.orm.hibernate3; version="2.5.6.SEC01"[exported]
org.springframework.orm.hibernate3.annotation;
version="2.5.6.SEC01"[exported]
org.springframework.orm.hibernate3.support; version="2.5.6.SEC01"[exported]
org.springframework.orm.ibatis; version="2.5.6.SEC01"[exported]
org.springframework.orm.ibatis.support; version="2.5.6.SEC01"[exported]
org.springframework.orm.jdo; version="2.5.6.SEC01"[exported]
org.springframework.orm.jdo.support; version="2.5.6.SEC01"[exported]
org.springframework.orm.jpa; version="2.5.6.SEC01"[exported]
org.springframework.orm.jpa.persistenceunit; version="2.5.6.SEC01"[exported]
org.springframework.orm.jpa.support; version="2.5.6.SEC01"[exported]
org.springframework.orm.jpa.vendor; version="2.5.6.SEC01"[exported]
org.springframework.orm.toplink; version="2.5.6.SEC01"[exported]
org.springframework.orm.toplink.support; version="2.5.6.SEC01"[exported]
Imported packages
javax.naming; version="0.0.0"<org.eclipse.osgi_3.5.0.v20090127-1630 [0]>
javax.persistence;
version="1.99.0"<com.springsource.javax.persistence_1.99.0 [1]>
javax.persistence.spi;
version="1.99.0"<com.springsource.javax.persistence_1.99.0 [1]>
javax.sql; version="0.0.0"<org.eclipse.osgi_3.5.0.v20090127-1630 [0]>
javax.transaction; version="1.1.0"<com.springsource.javax.transaction_1.1.0
[23]>
javax.xml.parsers; version="0.0.0"<org.eclipse.osgi_3.5.0.v20090127-1630
[0]>
org.aopalliance.intercept;
version="1.0.0"<com.springsource.org.aopalliance_1.0.0 [10]>
org.apache.commons.logging;
version="1.1.1"<org.ops4j.pax.logging.pax-logging-api_1.3.0 [9]>
org.hibernate.cfg;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.classic;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.connection;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.dialect;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.event;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.event.def;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.exception;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.persister.entity;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.tool.hbm2ddl;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.transform;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.type;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.hibernate.usertype;
version="3.2.6.ga-SNAPSHOT"<com.infor.org.hibernate_3.2.6.ga-SNAPSHOT [26]>
org.springframework.aop.scope;
version="2.5.6.SEC01"<org.springframework.aop_2.5.6.SEC01 [27]>
org.springframework.aop.support;
version="2.5.6.SEC01"<org.springframework.aop_2.5.6.SEC01 [27]>
org.springframework.beans;
version="2.5.6.SEC01"<org.springframework.beans_2.5.6.SEC01 [17]>
org.springframework.beans.factory;
version="2.5.6.SEC01"<org.springframework.beans_2.5.6.SEC01 [17]>
org.springframework.beans.factory.annotation;
version="2.5.6.SEC01"<org.springframework.beans_2.5.6.SEC01 [17]>
org.springframework.beans.factory.config;
version="2.5.6.SEC01"<org.springframework.beans_2.5.6.SEC01 [17]>
org.springframework.beans.factory.support;
version="2.5.6.SEC01"<org.springframework.beans_2.5.6.SEC01 [17]>
org.springframework.context;
version="2.5.6.SEC01"<org.springframework.context_2.5.6.SEC01 [7]>
org.springframework.context.weaving;
version="2.5.6.SEC01"<org.springframework.context_2.5.6.SEC01 [7]>
org.springframework.core;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.core.io;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.core.io.support;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.core.type;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.core.type.classreading;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.core.type.filter;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.dao;
version="2.5.6.SEC01"<org.springframework.transaction_2.5.6.SEC01 [22]>
org.springframework.dao.support;
version="2.5.6.SEC01"<org.springframework.transaction_2.5.6.SEC01 [22]>
org.springframework.instrument.classloading;
version="2.5.6.SEC01"<org.springframework.context_2.5.6.SEC01 [7]>
org.springframework.jdbc;
version="2.5.6.SEC01"<org.springframework.jdbc_2.5.6.SEC01 [18]>
org.springframework.jdbc.datasource;
version="2.5.6.SEC01"<org.springframework.jdbc_2.5.6.SEC01 [18]>
org.springframework.jdbc.datasource.lookup;
version="2.5.6.SEC01"<org.springframework.jdbc_2.5.6.SEC01 [18]>
org.springframework.jdbc.support;
version="2.5.6.SEC01"<org.springframework.jdbc_2.5.6.SEC01 [18]>
org.springframework.jdbc.support.lob;
version="2.5.6.SEC01"<org.springframework.jdbc_2.5.6.SEC01 [18]>
org.springframework.jndi;
version="2.5.6.SEC01"<org.springframework.context_2.5.6.SEC01 [7]>
org.springframework.transaction;
version="2.5.6.SEC01"<org.springframework.transaction_2.5.6.SEC01 [22]>
org.springframework.transaction.jta;
version="2.5.6.SEC01"<org.springframework.transaction_2.5.6.SEC01 [22]>
org.springframework.transaction.support;
version="2.5.6.SEC01"<org.springframework.transaction_2.5.6.SEC01 [22]>
org.springframework.ui;
version="2.5.6.SEC01"<org.springframework.context_2.5.6.SEC01 [7]>
org.springframework.util;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.springframework.util.xml;
version="2.5.6.SEC01"<org.springframework.core_2.5.6.SEC01 [6]>
org.w3c.dom; version="0.0.0"<org.eclipse.osgi_3.5.0.v20090127-1630 [0]>
org.xml.sax; version="0.0.0"<org.eclipse.osgi_3.5.0.v20090127-1630 [0]>
No fragment bundles
Named class space
org.springframework.orm; bundle-version="2.5.6.SEC01"[provided]
No required bundles
Note that only 12 of the 22 imports are actually bound. But the hibernate
bundle exports all of those 22 imports. The diag command on spring orm says:
osgi> diag 20
init...@reference:file:org.springframework.orm-2.5.6.SEC01.jar/ [20]
Direct constraints which are unresolved:
Missing imported package com.ibatis.common.util_[2.3.0.677,3.0.0).
Missing imported package com.ibatis.common.xml_[2.3.0.677,3.0.0).
Missing imported package com.ibatis.sqlmap.client_[2.3.0.677,3.0.0).
Missing imported package com.ibatis.sqlmap.client.event_[2.3.0.677,3.0.0).
Missing imported package
com.ibatis.sqlmap.engine.builder.xml_[2.3.0.677,3.0.0).
Missing imported package com.ibatis.sqlmap.engine.impl_[2.3.0.677,3.0.0).
Missing imported package
com.ibatis.sqlmap.engine.transaction_[2.3.0.677,3.0.0).
Missing imported package
com.ibatis.sqlmap.engine.transaction.external_[2.3.0.677,3.0.0).
Missing imported package com.ibatis.sqlmap.engine.type_[2.3.0.677,3.0.0).
Missing imported package javax.jdo_[2.0.0,3.0.0).
Missing imported package javax.jdo.datastore_[2.0.0,3.0.0).
Missing imported package javax.servlet_[2.4.0,3.0.0).
Missing imported package javax.servlet.http_[2.4.0,3.0.0).
Missing imported package
oracle.toplink.essentials.ejb.cmp3_[2.0.0.b41-beta2,3.0.0).
Missing imported package
oracle.toplink.essentials.expressions_[2.0.0.b41-beta2,3.0.0).
Missing imported package
oracle.toplink.essentials.internal.databaseaccess_[2.0.0.b41-beta2,3.0.0).
Missing imported package
oracle.toplink.essentials.internal.sessions_[2.0.0.b41-beta2,3.0.0).
Missing imported package
oracle.toplink.essentials.sessions_[2.0.0.b41-beta2,3.0.0).
Missing imported package oracle.toplink.exceptions_[10.1.3,11.0.0).
Missing imported package oracle.toplink.expressions_[10.1.3,11.0.0).
Missing imported package
oracle.toplink.internal.databaseaccess_[10.1.3,11.0.0).
Missing imported package oracle.toplink.jndi_[10.1.3,11.0.0).
Missing imported package oracle.toplink.logging_[10.1.3,11.0.0).
Missing imported package oracle.toplink.publicinterface_[10.1.3,11.0.0).
Missing imported package oracle.toplink.queryframework_[10.1.3,11.0.0).
Missing imported package oracle.toplink.sessionbroker_[10.1.3,11.0.0).
Missing imported package oracle.toplink.sessions_[10.1.3,11.0.0).
Missing imported package oracle.toplink.threetier_[10.1.3,11.0.0).
Missing imported package
oracle.toplink.tools.sessionconfiguration_[10.1.3,11.0.0).
Missing imported package
oracle.toplink.tools.sessionmanagement_[10.1.3,11.0.0).
Missing imported package org.apache.openjpa.persistence_[1.0.2,2.0.0).
Missing imported package org.eclipse.persistence.expressions_[1.0.0,2.0.0).
Missing imported package
org.eclipse.persistence.internal.databaseaccess_[1.0.0,2.0.0).
Missing imported package
org.eclipse.persistence.internal.sessions_[1.0.0,2.0.0).
Missing imported package org.eclipse.persistence.jpa_[1.0.0,2.0.0).
Missing imported package org.eclipse.persistence.sessions_[1.0.0,2.0.0).
Missing imported package org.hibernate.ejb_[3.3.0.ga,4.0.0).
Missing imported package
org.springframework.web.context_[2.5.6.SEC01,2.5.6.SEC01].
Missing imported package
org.springframework.web.context.request_[2.5.6.SEC01,2.5.6.SEC01].
Missing imported package
org.springframework.web.context.support_[2.5.6.SEC01,2.5.6.SEC01].
Missing imported package
org.springframework.web.filter_[2.5.6.SEC01,2.5.6.SEC01].
Can anyone explain why the other packages would not be resolved?
--
Best Regards,
Don Laidlaw | Sr. Research Engineer | Infor | office: +1 902-576-5185 | mobile:
+1 902-401-6771 | [email protected]
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev