Does anyone have a suggestion regarding this? 

I really appreciate the help!

Eamonn

On 20 Sep 2011, at 10:54, Eamonn Maguire wrote:

> So I have an improvement. The bundling plugin is now adding in the jars and 
> giving me a size close to what I'm expecting when the dependencies are 
> imported (~36mb).
> 
> My plugin definition now looks like follows:
> 
> <plugin>
>                <groupId>org.apache.felix</groupId>
>                <artifactId>maven-bundle-plugin</artifactId>
>                <version>2.2.0</version>
>                <extensions>true</extensions>
> 
>                <configuration>
>                    <instructions>
>                        
> <!--<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>-->
>                        <Import-Package>org.isatools.tablib.utils, 
> org.isatools.isatab.gui_invokers,
>                            org.isatools.tablib.utils.logging, *
>                        </Import-Package>
>                        
> <Export-Package>org.isatools.plugins.validatorconverter, *
>                        </Export-Package>
>                        
> <Bundle-Activator>org.isatools.plugins.validatorconverter.Activator</Bundle-Activator>
>                        <Bundle-Vendor>ISAteam</Bundle-Vendor>
>                        
> <Bundle-ClassPath>isavalidatorconvert,import_layer</Bundle-ClassPath>
>                    </instructions>
>                </configuration>
> </plugin>
> 
> The only problem I have now is sorting out the imports/exports I guess. I'm 
> currently getting this message when starting of the plugin is attempted:
> 
> ERROR: Error starting 
> file:/Users/eamonnmaguire/git/isarepo/ISAcreator/Plugins/isavalidatorconvert-1.0.jar
>  (org.osgi.framework.BundleException: Activator start error in bundle 
> org.isatools.plugins.isavalidatorconvert [1].)
> 
> Before that, I was getting classnotfoundexceptions all over the place.
> 
> Also, I feel that just using the wildcard * in imports and exports is wrong, 
> but I am still unsure of how to satisfy all the requirements and ensure that 
> my package will be seen in ISAcreator. If I leave the * out of the 
> export-package value, the jar is very small and doesn't contain the required 
> dependencies. So, I am sure that the bundle classpath values are incorrect. I 
> thought just specifying the artifactIds was enough, but obviously not from 
> this message found when building the plugin code.
> 
> [WARNING] Warning building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : No sub JAR or directory 
> isavalidatorconvert
> [WARNING] Warning building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : No sub JAR or directory 
> import_layer
> [WARNING] Warning building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : Superfluous 
> export-package instructions: [*, org.isatools.plugins.validatorconverter]
> [WARNING] Warning building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : The Bundle-Classpath 
> does not contain the actual bundle JAR (as specified with '.' in the 
> Bundle-Classpath) but the JAR does contain classes. Is this intentional?
> 
> BTW, the oode for the plugin in it's entirety can be seen here: 
> https://github.com/ISA-tools/ISAcreatorPlugins/tree/master/ValidatorConverter
> 
> Thanks again for all the help, I really appreciate it!
> 
> Eamonn
> 
> 
> 
> On 20 Sep 2011, at 08:27, Eamonn Maguire wrote:
> 
> [ERROR] Error building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : Invalid class file: 
> *.class
> 
> ^ It's actually due to the fact that an actual file called *.class is being 
> embedded into the final bundle. I had this problem before with another 
> project, and it wasn't anything to do with OSGi. It was actually down to a 
> maven plugin not working properly. I think it was maven-assembly but I can't 
> rightly remember at present. I will try and find the trace I made about the 
> problem and get back to you on this.
> 
> I'll remove the osgi framework from the bundle. now and see what happens with 
> that.
> 
> Thanks,
> 
> Eamonn
> 
> On 20 Sep 2011, at 00:31, 
> <[email protected]<mailto:[email protected]>> 
> <[email protected]<mailto:[email protected]>> wrote:
> 
> 
> 
> This is a tough one, and my answer may be wrong, so I hope that other smart 
> developers on this list will read this and correct it if possible. A 
> "CAFEBABE" header is a hexadecimal string Ja va uses to identify ava 
> bytecode.  So, what this is tellling me is that Java is unable to recognize 
> the .class file referred to hear as Java Bytecode.  Where are you pulling 
> this file from?  Also, what version of Java are you using?  What version of 
> Java is required by the isatools plugins?
> 
> 
> 
> v/r,
> 
> 
> 
> Mike Van
> 
> 
> 
> ----- Original Message -----
> 
> 
> From: "Eamonn Maguire" 
> <[email protected]<mailto:[email protected]>>
> To: [email protected]<mailto:[email protected]>
> Sent: Monday, September 19, 2011 5:36:45 PM
> Subject: Re: Dependencies, Exports and Imports Query
> 
> The full error there was:
> 
> [ERROR] Error building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : Exception: Not a valid 
> class file (no CAFEBABE header)
> [ERROR] Error building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : Invalid class file: 
> *.class
> 
> For some reason, not everything copied. This is what you get when working 
> late :)
> 
> Eamonn
> 
> On 19 Sep 2011, at 22:35, Eamonn Maguire wrote:
> 
> Hi,
> 
> Thank you for your prompt response. So, I tried that and the following 
> problems have come up.
> 
> [ERROR] Error building bundle 
> org.isatools.plugins:isavalidatorconvert:bundle:1.0 : Exception: Not a valid 
> class file (no CAFEBABE header)
> 
> The edited pom.xml file I'm using is here: https://gist.github.com/1227576
> 
> Eamonn
> 
> 
> On 19 Sep 2011, at 22:22, 
> <[email protected]<mailto:[email protected]>> wrote:
> 
> 
> 
> Eamonn,
> 
> 
> 
> The dependencies section is only really used to build your .jar file when you 
> have pakcages external to your bundle included in the Export-Package section 
> of your maven-bundle plugin.  I believe the reason that you're experiencing 
> the bundling of your .jar file with your bundle is because of your 
> maven-assembly-plugin implementation.
> 
> 
> What I would suggest you do is change your packaging type to "bundle", 
> comment out your maven-assembly-plugin section and attempt to compile again. 
> The maven-bundle-plugin will take care of most of the stuff you're trying to 
> do in your maven-assembly-plugin and is a cleaner approach. This will also 
> ensure that you don't get erroneous dependant .jar files compiled in with 
> your application.
> 
> 
> 
> The dependancy is still needed if you have references to that external 
> library in your Import-Package section of your maven-bundle-plugin 
> implementation.
> 
> 
> 
> So, in short, keep the dependancy, and comment out your maven-assembly-plugin 
> code.
> 
> 
> 
> Please let me know if that helps!
> 
> 
> 
> 
> 
> 
> ----- Original Message -----
> 
> 
> From: "Eamonn Maguire" 
> <[email protected]<mailto:[email protected]>>
> To: [email protected]<mailto:[email protected]>
> Sent: Monday, September 19, 2011 5:06:24 PM
> Subject: Re: Dependencies, Exports and Imports Query
> 
> Ah, I should have mentioned that BIIObjectStore is in the 
> org.isatools.tablib.utils package.
> 
> Thanks again,
> 
> Eamonn
> 
> On 19 Sep 2011, at 21:58, Eamonn Maguire wrote:
> 
> Hi all,
> 
> I'm new to OSGi, I just started implementing before the weekend and although 
> the process was relatively pain free, I'm having some problems with getting 
> plugins to work without having all my dependencies in the host project.
> 
> For the plugin I'm using, the pom.xml file can be seen here: 
> https://gist.github.com/1227576
> 
> For the dependencies:
> 
> 1) The ISAcreator dependency is the actual host program, where the plugins 
> are to be deployed.
> 2) The import_layer artifact is used for validation and conversion, which the 
> plugin does and contains a class called BIIObjectStore (this becomes relevant 
> below). It is NOT an OSGi module.
> 
> 
> The problem
> Everything is working as long as the import_layer dependency is in the host 
> pom.xml dependencies, but this defeats the purpose of the plugin. But when 
> it's not included, I get a classnotfoundexception when I attempt to execute 
> the code in the plugin (there are no complaints when felix starts and the 
> plugin is loaded). I'm not totally sure why it's not working since the 
> resulting jar produced when I run mvn clean install contains the class. It's 
> just not being 'seen' when it is executed.
> 
> The plugin configuration as seen in the file is probably not doing something 
> right, and as you can see, the current version of that file is doing 
> everything.
> 
> Any help would be greatly appreciated. I feel like I'm banging my head 
> against a brick wall on this one.
> 
> Many thanks,
> 
> Eamonn Maguire
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> [email protected]<mailto:[email protected]>
> For additional commands, e-mail: 
> [email protected]<mailto:[email protected]>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: 
> [email protected]<mailto:[email protected]>
> For additional commands, e-mail: 
> [email protected]<mailto:[email protected]>
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to