Hi Oliver, This is good timing as I was just going to spend some time on spi-fly again in the near term. So those lines of text that you're seeing is just debug output. You should be able to ignore that safely. However, I understand that the functionality isn't actually working for you. No there isn't a SPI-Consumer: javax.sound.* - type wildcard, maybe we should add something like that, but SPI-Consumer: * should work as well, right?
In any case I think you're experiencing an error and I would like to understand better what the problem is. Could you maybe create a JIRA issue for this (https://issues.apache.org/jira/browse/ARIES) and attach the things needed to be able to reproduce it to that? Then I can try to look deeper into the issue. Cheers, David On 12 November 2011 13:57, Oliver Zemann <[email protected]> wrote: > hi, > > i'm trying to build mp3spi (with tritounus-mp3) to work in an osgi > environment. > It provides some META-INF/services classes (AudioInputStream etc.) which > should be made available to my class PlayerEngine so that i can playback > mp3's. > I added the following line to my PlayerEngine's Manifest: > SPI-Consumer: * > > and the provider (i wrapped mp3spi, tritounus etc. together) got also a > line in the Manifest: > SPI-Provider: * > > i can load the wrapped bundle fine, so i think this should work. > The problem is when i try to manipulate the PlayerEngine with the static > weaving tool i get: > > C:\Users\oli\Desktop> java -jar ..\Downloads\spifly-static-tool.jar > .\equinox\SoundBox-PlayerEngine-1.0-SNAPSHOT.jar > [SPI Fly Static Tool] Processing: > .\equinox\SoundBox-PlayerEngine-1.0-SNAPSHOT.jar > @@@ 1: <init>#()V#null~null > ### 183: java/lang/Object#<init>#()V > @@@ 1: > start#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception] > ### 183: > org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#<init>#(Lorg/osgi/framework/BundleContext;)V > ### 182: > org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String; > ### 182: > org/dyndns/soundi/portals/interfaces/CommunicationAction#toString#()Ljava/lang/String; > ### 183: java/util/Hashtable#<init>#()V > ### 182: > java/util/Dictionary#put#(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; > ### 182: java/lang/Class#getName#()Ljava/lang/String; > ### 182: java/lang/Class#getName#()Ljava/lang/String; > ### 185: > org/osgi/framework/BundleContext#registerService#([Ljava/lang/String;Ljava/lang/Object;Ljava/util/Dictionary;)L > org/osgi/framework/ServiceRegistration; > ### 184: > org/dyndns/soundi/utils/Util#sendMessage#(Lorg/dyndns/soundi/utils/Util$Component;Ljava/lang/String;)V > @@@ 1: stop#(Lorg/osgi/framework/BundleContext;)V#null~[java/lang/Exception] > @@@ 0: <init>#(Lorg/osgi/framework/BundleContext;)V#null~null > ### 183: java/lang/Object#<init>#()V > @@@ 1: > play#(Ljava/io/InputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V#null~null > ### 184: > javax/sound/sampled/AudioSystem#getAudioFileTypes#()[Ljavax/sound/sampled/AudioFileFormat$Type; > ### 182: > javax/sound/sampled/AudioFileFormat$Type#getExtension#()Ljava/lang/String; > ### 182: java/io/PrintStream#println#(Ljava/lang/String;)V > ### 184: > javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStrea > m; > ### 182: java/lang/Class#getName#()Ljava/lang/String; > ### 184: > java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger; > ### 182: > java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V > ### 182: java/lang/Class#getName#()Ljava/lang/String; > ### 184: > java/util/logging/Logger#getLogger#(Ljava/lang/String;)Ljava/util/logging/Logger; > ### 182: > java/util/logging/Logger#log#(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V > ### 182: > javax/sound/sampled/AudioInputStream#getFormat#()Ljavax/sound/sampled/AudioFormat; > ### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F > ### 182: javax/sound/sampled/AudioFormat#getChannels#()I > ### 182: javax/sound/sampled/AudioFormat#getChannels#()I > ### 182: javax/sound/sampled/AudioFormat#getSampleRate#()F > ### 183: > javax/sound/sampled/AudioFormat#<init>#(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V > ### 184: > javax/sound/sampled/AudioSystem#getAudioInputStream#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/Audi > oInputStream;)Ljavax/sound/sampled/AudioInputStream; > ### 183: > org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sou > nd/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interfaces/Song;)V > @@@ 1: pause#()V#null~null > @@@ 1: stop#()V#null~null > @@@ 1: handleEvent#(Lorg/osgi/service/event/Event;)V#null~null > @@@ 2: > rawplay#(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;Lorg/dyndns/soundi/portals/interf > aces/Song;)V#null~null > ### 183: > org/dyndns/soundi/soundboxplayerengine/DefaultPlayerEngine#getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/so > und/sampled/SourceDataLine; > ### 185: javax/sound/sampled/SourceDataLine#start#()V > ### 185: javazoom/spi/PropertiesContainer#properties#()Ljava/util/Map; > ### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object; > ### 182: java/lang/Long#longValue#()J > ### 185: java/util/Map#get#(Ljava/lang/Object;)Ljava/lang/Object; > ### 182: java/lang/Long#longValue#()J > ### 182: javax/sound/sampled/AudioInputStream#read#([BII)I > ### 185: javax/sound/sampled/SourceDataLine#write#([BII)I > ### 185: javax/sound/sampled/SourceDataLine#drain#()V > ### 185: javax/sound/sampled/SourceDataLine#stop#()V > ### 185: javax/sound/sampled/SourceDataLine#close#()V > ### 182: java/lang/Exception#printStackTrace#()V > @@@ 2: > getLine#(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/SourceDataLine;#null~[javax/sound/sampled/LineUna > vailableException] > ### 183: > javax/sound/sampled/DataLine$Info#<init>#(Ljava/lang/Class;Ljavax/sound/sampled/AudioFormat;)V > ### 184: > javax/sound/sampled/AudioSystem#getLine#(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line; > ### 185: > javax/sound/sampled/SourceDataLine#open#(Ljavax/sound/sampled/AudioFormat;)V > > thats also what i get when i try to use dynamic weaving (which would be > much nicer) > > i thought maybe i just need to add a special line to the SPI-Consumer: > header like: > SPI-Consumer: javax.sound.* > but thats not working, it then complains that it requires a class and a > method, but i have no idea how to declare this as there is no documentation > > thanks in advance. >
