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
>

Reply via email to