I know this is terribly off-topic, but taking advantage of your knowledge, what would the main difference of q4e be in your opinion?
Thanks for the input, Rodrigo On 9/19/07, Stuart McCulloch <[EMAIL PROTECTED]> wrote: > > On 19/09/2007, Rodrigo Madera <[EMAIL PROTECTED]> wrote: > > > > Thank you for your replies. > > > > However, this comes to mind: > > > > If your code refers to a class in the org.eclipse.osgi.framework.console > > > package, the Bundle plugin will automatically create an import for > this > > > package. > > > > This yields a chicken and the egg problem. I use Eclipse with M2 to > code. > > If the bundle doesn't generate the data at design level, Eclipse is as > > good > > as notepad. > > > yes, this is a long-running problem with Eclipse/PDE + Maven :( > > Eclipse/PDE expects the manifest at the top of the project and uses it to > augment > the compilation classpath. Maven uses dependencies to augment the > compilation > classpath and puts generated content in the target folder. > > unfortunately this can mean that adding an import in the Eclipse/PDE > manifest > will get things compiling in Eclipse (because the jar is available inside > Eclipse) > but break Maven because it doesn't know about this dependency. > > I think there are ways to link the Eclipse installation and maven > repository, but > haven't tried them myself. Btw, there's also a new plugin for Eclipse > called > q4e: > > http://code.google.com/p/q4e > > which might help you with the dependency management part... > > I'm still trying out the earlier recommendation and will post results > here. > > > > Thanks, > > Rodrigo > > > > > > Regards > > > Felix > > > > > > Am Mittwoch, den 19.09.2007, 12:47 +0800 schrieb Stuart McCulloch: > > > > 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] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > -- > Cheers, Stuart >

