Objetos para transferência de dados provê meios de representar o estado de um objeto de dentro do framework da OSGi;
Versionamento por anotações para declaração da versão do pacote e se as interfaces são consumidoras ou produtoras;
Extensões BundleActivators foram adicionados para permitir a participação na inicialização e desligamento do framework.
Os objetos para transferência de dados são atrelados a classe org.osgi.dto.DTO. Cada subclasse tem diversos atributos comuns de mapeamento para o objeto OSGi subjacente. A intenção destes objetos é fazer a captura instantânea de um determinado estado do sistema de forma independente de seu provedor permitindo que estes dados sejam transportados de uma rede para um local remoto de forma serializada. O acesso ao DTO é concluído quando o método adapt() e disparado no objeto de estrutura subjacente com o nome do tipo de DTO necessário:
Infelizmente, apesar de ser um objeto de dados, a classe DTO não é serializável e, por isso, não pode ser utilizado com os métodos padrão de serialização do Java. No entanto, bibliotecas como o GSon podem ser usadas para converter os objetos de dados para um formato que pode ser enviado através da rede. Há um método chamado toString que pode ser um meio para depurar o conteúdo do objeto, mas não pode ser utilizado para fazer a interoperabilidade. No entanto, é provável que interfaces de gestão remota serão beneficiadas pela especificação DTO para adquirir o estado de uma estrutura OSGi remota e apresentá-la através de uma interface de consumidor.
Os exemplos DTO são destinados apenas para leitura instantânea; não existem métodos ou maneiras de manipular o framework com base nas mudanças de estado.