Thank you, your solution worked like a charm. Hope this thread helps other people too.
Thank you, Rodrigo On 9/19/07, Stuart McCulloch <[EMAIL PROTECTED]> wrote: > > Hi Rodrigo, > > (I've started a new thread for this topic - rather than have multiple > topics > in one thread) > > On 19/09/2007, Rodrigo Madera <[EMAIL PROTECTED]> wrote: > > > > Hello again, > > > > Comming with another problem, I have a service called Greeter with > > GreeterImpl. > > The only method available is "public String sayHello()". > > > > Now I want to create an OSGi command provider for any OSGi shell. > > For this, I created GreeterShell. But now I need the interfaces from (in > > this case) > > org.eclipse.osgi.framework.console. > > > > The problem I have is with importing. In a normal Eclipse project I > would > > add this > > to the manifest and all would be solved: > > > > Import-Package: org.eclipse.osgi.framework.console;version=" > 1.0.0" > > > > But I can't figure out how to do this on BND (nor SCR, of course). > > How can this be done using the plugins? > > > if your code imports org.eclipse.osgi.framework.console and you have the > console bundle marked as a "provided" maven dependency (which you need > for it to compile) then it should be automatically added to the manifest. > > for example, this POM: > > =================================================================== > <?xml version="1.0" encoding="UTF8"?> > <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd" xmlns=" > http://maven.apache.org/POM/4.0.0" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > > <modelVersion>4.0.0</modelVersion> > <groupId>examples.console</groupId> > <artifactId>myConsole</artifactId> > <version>1.0-SNAPSHOT</version> > > <name>myConsole example</name> > <packaging>bundle</packaging> > > <build> > <plugins> > <plugin> > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <version>1.0.0</version> > <extensions>true</extensions> > <configuration> > <instructions> > <Bundle-Activator>examples.console.internal.Activator > </Bundle-Activator> > <Private-Package>examples.console.internal</Private-Package> > </instructions> > </configuration> > </plugin> > </plugins> > </build> > > <dependencies> > <dependency> > <groupId>org.osgi</groupId> > <artifactId>osgi_R4_core</artifactId> > <version>1.0</version> > </dependency> > <dependency> > <groupId>org.osgi</groupId> > <artifactId>osgi_R4_compendium</artifactId> > <version>1.0</version> > </dependency> > <dependency> > <groupId>org.eclipse</groupId> > <artifactId>osgi</artifactId> > <version>3.3.0-v20070530</version> > <scope>provided</scope> > </dependency> > </dependencies> > > <repositories> > <repository> > <id>eclipse</id> > <url>http://repo1.maven.org/eclipse</url> > </repository> > </repositories> > > </project> > =================================================================== > > and this Java class: > > =================================================================== > package examples.console.internal; > > import org.eclipse.osgi.framework.console.CommandProvider; > > import org.osgi.framework.BundleActivator; > import org.osgi.framework.BundleContext; > > public class Activator > implements BundleActivator > { > static class MyCommands implements CommandProvider > { > public String getHelp() > { > return "don't panic :)"; > } > } > > public void start( BundleContext bc ) > throws Exception > { > } > > public void stop( BundleContext bc ) > throws Exception > { > } > } > =================================================================== > > produce the following manifest using "mvn clean install": > > =================================================================== > Manifest-Version: 1.0 > Bundle-SymbolicName: examples.console.myConsole > Import-Package: org.eclipse.osgi.framework.console;version=1.0,org.osg > i.framework;version=1.4 > Bundle-Activator: examples.console.internal.Activator > Created-By: 1.5.0 (IBM Corporation) > Bundle-ManifestVersion: 2 > Bundle-Name: myConsole example > Bnd-LastModified: 1190176961184 > Tool: Bnd-0.0.160 > Bundle-Version: 1.0.0.SNAPSHOT > Private-Package: examples.console.internal > =================================================================== > > which has org.eclipse.osgi.framework.console;version=1.0 as an import > > HTH > > Thanks for any input, > > Rodrigo > > > > On 9/18/07, Rodrigo Madera <[EMAIL PROTECTED]> wrote: > > > > > > Thanks, I was just putting the scr.component tag. > > > > > > So for the record, and those using the search facility, the solution > was > > > to add both scr.component and scr.service to the service > implementation > > > class. > > > > > > Thank you, > > > Rodrigo > > > > > > On 9/18/07, Felix Meschberger <[EMAIL PROTECTED]> wrote: > > > > > > > > Hi Rodrigo, > > > > > > > > The interface is not marked. The implementation is marked with > > > > @scr.component to indicate to the SCR plugin, that this class > contains > > a > > > > component with tags to be converted to a descriptor. In addition, > the > > > > @scr.service tag would be added to add the <service> element to the > > > > descriptor. > > > > > > > > For example: > > > > > > > > package sample; > > > > import iface.MyService > > > > /** > > > > * @scr.component > > > > * @scr.service > > > > */ > > > > public class MyServiceImpl implements MyService { > > > > } > > > > > > > > This results in the following descriptor: > > > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0 > "> > > > > <scr:component enabled="true" immediate="true" > > > > name="sample.MyServiceImpl"> > > > > <scr:implementation class="sample.MyServiceImpl" /> > > > > <scr:property name="service.pid" > > > > value=" sample.MyServiceImpl" /> > > > > <scr:service> > > > > <provide interface="iface.MyService" /> > > > > </scr:service> > > > > </scr:component> > > > > </components> > > > > > > > > Hope this helps. > > > > > > > > You will find more applications of the SCR plugin tags in the Sling > > Core > > > > project at [1] > > > > > > > > Regards > > > > Felix > > > > > > > > [1] http://svn.apache.org/viewvc/incubator/sling/trunk/core/ > > > > > > > > > > > > Am Dienstag, den 18.09.2007, 06:14 -0300 schrieb Rodrigo Madera: > > > > > Hey Bertrand, > > > > > > > > > > Thanks for the information. I'm already producing code with the > > > > plug-in, but > > > > > unfortunately with a misconfiguration somewhere. Could you provide > a > > > > simple > > > > > example? > > > > > > > > > > For example, MyService interface and MyServiceImpl would be marked > > > > with > > > > > scr.service and scr.component respectively, correct? That's what > I'm > > > > doing > > > > > but something is not right. > > > > > > > > > > Thanks for any insight, > > > > > Rodrigo > > > > > > > > > > On 9/15/07, Bertrand Delacretaz < [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > Hi Rodrigo, > > > > > > > > > > > > On 9/15/07, Rodrigo Madera <[EMAIL PROTECTED]> wrote: > > > > > > >... I'm trying to develop a Declarative Service using the > > > > > > maven-bundle-plugin, > > > > > > > but I can't find documentation on it.... > > > > > > > > > > > > The docs are at > > > > > > http://felix.apache.org/site/maven-bundle-plugin-bnd.html , but > > to > > > > > > create Declarative Services you should also have a look at the > > > > > > maven-scr-plugin, see > > > > > > http://felix.apache.org/site/maven-scr-plugin.html > > > > > > > > > > > > -Bertrand > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > -- > Cheers, Stuart >

