Code generation without gui: cannot deploy my nodes

Hi,

I'm trying to generate some plugins using a custom code-generator and *without GUI* . When I put my plugin a.b.c_2015.02.16.jar into knime/plugins, I get the following error on startup:

ERROR     Worker-1 RepositoryManager     Node a.b.c.linux.head.HeadNodeFactory' from plugin 'a.b.c' could not be created: Can't load factory class for node: a.b.c.linux.head.HeadNodeFactory The corresponding plugin bundle could not be activated!

 

Here is the content of 'a.b.c_2015.02.16.jar'
 

 

$ jar tvf a.b.c_2015.02.16.jar
     0 Mon Feb 16 16:11:00 CET 2015 META-INF/
   633 Mon Feb 16 16:11:00 CET 2015 META-INF/MANIFEST.MF
   492 Mon Feb 16 16:11:00 CET 2015 plugin.xml
 23602 Mon Feb 16 16:11:00 CET 2015 a_b_c.jar

 

with META-INF/MANIFEST.MF

Manifest-Version: 1.0
Export-Package: a.b.c
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: a_b_c.jar
Bundle-Name: idp640
Created-By: 1.7.0_60 (Oracle Corporation)
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: org.eclipse.core.runtime,org.knime.workbench.core,org.
 knime.workbench.repository,org.knime.base
Bundle-Vendor: Me
Bundle-Version: 2015.02.16
Bundle-ManifestVersion: 2
Bundle-Activator: a.b.c.linux.head.HeadNodePlugin
Bundle-SymbolicName: a.b.c; singleton:=true

and plugin.xml:

<?xml version="1.0"?>
<?eclipse  version="3.0" ?><plugin>
  <extension point="org.knime.workbench.repository.categories">
    <category level-id="linux" name="linux" path="/community/" description="linux"/>
  </extension>
  <extension point="org.knime.workbench.repository.nodes">
    <node category-path="/community/linux" factory-class="a.b.c.linux.head.HeadNodeFactory" id="a.b.c.linux.head.HeadNodeFactory"/>
  </extension>
</plugin>

 

inside a_b_c.jar, there is :

 

     0 Mon Feb 16 16:11:00 CET 2015 META-INF/
    68 Mon Feb 16 16:11:00 CET 2015 META-INF/MANIFEST.MF
     0 Mon Feb 16 16:10:58 CET 2015 com/
     0 Mon Feb 16 16:10:58 CET 2015 com/github/
     0 Mon Feb 16 16:10:58 CET 2015 com/github/lindenb/
     0 Mon Feb 16 16:10:58 CET 2015 com/github/lindenb/jvarkit/
     0 Mon Feb 16 16:11:00 CET 2015 a/b/c/
     0 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/
     0 Mon Feb 16 16:11:00 CET 2015 a/b/c/linux/head/
   858 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeFactory.xml
  2296 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodePlugin.java
  1989 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeFactory.java
  4338 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeDialog.java
  8097 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/AbstractHeadNodeModel.java
  2749 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeModel.java
   338 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/default.png
  1005 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeDialog$1.class
  2980 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeDialog.class
  1864 Mon Feb 16 16:10:58 CET 2015 a/b/c/linux/head/HeadNodeFactory.class
  2326 Mon Feb 16 16:11:00 CET 2015 a/b/c/linux/head/HeadNodeModel.class
  6459 Mon Feb 16 16:11:00 CET 2015 a/b/c/linux/head/AbstractHeadNodeModel.class
   869 Mon Feb 16 16:11:00 CET 2015 a/b/c/linux/head/HeadNodePlugin.class
  6210 Mon Feb 16 16:10:58 CET 2015 a/b/c/AbstractNodeModel.java
  7148 Mon Feb 16 16:11:00 CET 2015 a/b/c/AbstractNodeModel.class

I don't know much things about OSGI. What am I missing ? I tried to compare with a simple Node created with the SDK but I can't see a clear difference at first sight.

What could cause this " Can't load factory class for node: a.b.c.linux.head.HeadNodeFactory The corresponding plugin bundle could not be activated!" ? Can I add some logging/debugging options ?

 

Thanks !

 

 

Pierre

 

 

(later) there is no more error printed on stderr when my manifest is:

Manifest-Version: 1.0
Export-Package: a.b.c.linux.head
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: a_b_c.jar
Bundle-Name: idp168368
Created-By: 1.7.0_60 (Oracle Corporation)
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: org.eclipse.core.runtime,org.knime.workbench.core,org.
 knime.workbench.repository,org.knime.base
Bundle-Vendor: Pierre Lindenbaum
Bundle-Version: 2015.02.16
Bundle-ManifestVersion: 2
Bundle-Activator: a.b.c.linux.head.HeadNode
 Plugin
Bundle-SymbolicName: a.b.c.linux.head; sing
 leton:=true

 

but now my new node doesn't appear in the nodes tree...

 

 

problem in my plugin.xml . Everything works now.