Ok thanks
On Jun 16, 2011 12:24 PM, "Richard S. Hall" <[email protected]> wrote:
> On 6/16/11 14:46, Mike Veksler wrote:
>> Cool thanks.
>> So you said it is coming next week?
>
> If all goes well with the vote, yes. I will shoot for Tues...
>
> -> richard
>
>>
>> On Thu, Jun 16, 2011 at 11:14 AM, Richard S. Hall<[email protected]
>wrote:
>>
>>> On 6/16/11 13:57, Mike Veksler wrote:
>>>
>>>> So how will it be addressed? It will convert string into string array?
>>>> Will
>>>> I have to specify list of functions with specific format?
>>>>
>>> It will accept either a string or a string[]...
>>>
>>> -> richard
>>>
>>>
>>> On Jun 16, 2011 10:54 AM, "Richard S. Hall"<[email protected]> wrote:
>>>>> On 6/16/11 13:51, Mike Veksler wrote:
>>>>>
>>>>>> Also, I could just use activator and not use IPOJO for TUI component.
>>>>>> I through I was doing something wrong.
>>>>>> However, looks like we need to raise an issue with IPOJO Annotation
to
>>>>>> properly convert string into String array?
>>>>>>
>>>>>> Thanks for the info on the "e" and "type" commands. I did not see
them
>>>>>> documented anywhere did you dig in the code to uncover theme?
>>>>>>
>>>>> I just started a release vote for Gogo 0.10.0 which should address
this
>>>>> issue in Gogo too, so grab that early next week.
>>>>>
>>>>> -> richard
>>>>>
>>>>>
>>>>>> On Thu, Jun 16, 2011 at 2:13 AM, Derek Baum<[email protected]>
>>>>>>
>>>>> wrote:
>>>>> Hmmm this seems to be a limitation of the iPojo @ServiceProperty
>>>>>>> annotation.
>>>>>>>
>>>>>>> You don't actually need the gogo help command to test your example.
>>>>>>>
>>>>>>> another command which will show the existence of your search command
is
>>>>>>> 'type':
>>>>>>>
>>>>>>> g! type search
>>>>>>>
>>>>>>> search is Set<Book> book:search(String, String, String, String)
>>>>>>> search is Set<Book> book:search(String, String, String, int, int)
>>>>>>>
>>>>>>> You should be able to invoke it directly:
>>>>>>>
>>>>>>> g! search args ...
>>>>>>>
>>>>>>> Derek
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 16 June 2011 09:58, Mike Veksler<[email protected]> wrote:
>>>>>>>
>>>>>>> I tried registing FUNCTIONS however the annotation expects String
>>>>>>>> value
>>>>>>>>
>>>>>>> and
>>>>>>>
>>>>>>>> not String array.
>>>>>>>>
>>>>>>>> On Thu, Jun 16, 2011 at 1:55 AM, Derek Baum<[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> This is a bug in the gogo help command.
>>>>>>>>> Services proving commands can be registered with
>>>>>>>>> @ServiceProperty(name = "osgi.command.function", functions)
>>>>>>>>>
>>>>>>>>> where functions is either String or String[].
>>>>>>>>>
>>>>>>>>> The gogo help command does not take account of this being a String
>>>>>>>>>
>>>>>>>> rather
>>>>>>>> than String[].
>>>>>>>>> The quick fix for now is to register FUNCTIONS rather than
>>>>>>>>>
>>>>>>>> FUNCTIONS_STR.
>>>>>>>> I'll raise an issue to fix the gogo help command.
>>>>>>>>> Derek
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 16 June 2011 09:46, Mike Veksler<[email protected]> wrote:
>>>>>>>>>
>>>>>>>>> Here is the stack trace:
>>>>>>>>>> g! e
>>>>>>>>>> java.lang.ClassCastException: java.lang.String cannot be cast to
>>>>>>>>>> [Ljava.lang.String;
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>> org.apache.felix.gogo.command.Basic.getCommands(Basic.java:384)
>>>>>>>>> at org.apache.felix.gogo.command.Basic.help(Basic.java:211)
>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>>>>>>>>>
>>>>>>>>> Source)
>>>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>>>>>>>>> at
>>>>>>>>>>
org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
>>>>> at
>>>>>>>>>>
org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
>>>>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>>>>>>>>> at
>>>>>>>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.jav
>>>>> a:89)
>>>>>>>>>> at org.apache.felix.gogo.shell.Console.run(Console.java:62)
>>>>>>>>>> at org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
>>>>>>>>>> at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>>>>>>>>>
>>>>>>>>> Source)
>>>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>>>>>>>>> at
>>>>>>>>>>
org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
>>>>> at
>>>>>>>>>>
org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
>>>>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>>>>>>>>> at
>>>>>>>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>>>>>>>>> at
>>>>>>>>>>
>>>>>>>>>>
org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.jav
>>>>> a:89)
>>>>>>>>>> at
>>>>>>>>>>
org.apache.felix.shell.remote.Shell.startGogoShell(Shell.java:108)
>>>>>>>>>> at org.apache.felix.shell.remote.Shell.run(Shell.java:81)
>>>>>>>>>> at java.lang.Thread.run(Unknown Source)
>>>>>>>>>> g!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Jun 16, 2011 at 1:39 AM, Derek Baum<
[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Have you got a stack trace?
>>>>>>>>>>> Type 'e' in gogo after an exception is reported to see the stack
>>>>>>>>>>>
>>>>>>>>>> trace
>>>>>>>>> 'e' is actually a function:
>>>>>>>>>>> g! type e
>>>>>>>>>>> e is function { $exception printStackTrace }
>>>>>>>>>>>
>>>>>>>>>>> which simply invokes the printStackTrace() method on the
Exception
>>>>>>>>>>>
>>>>>>>>>> object
>>>>>>>>>> stored in the gogo exception variable.
>>>>>>>>>>> Derek
>>>>>>>>>>>
>>>>>>>>>>> On 16 June 2011 06:35, Mike Veksler<[email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I am trying to go through tutorial from OSGI and Apache Felix
3.0
>>>>>>>>>>> book
>>>>>>>>>> and
>>>>>>>>>>>> one of the the examples is to use IPOJO Annotation and
Meta.xml.
>>>>>>>>>>>>
>>>>>>>>>>> When
>>>>>>>>> I
>>>>>>>>>
>>>>>>>>>> deploy application to Felix the application runs fine but if i
>>>>>>>>>>> try
>>>>>>>> to
>>>>>>>>
>>>>>>>>> lookup
>>>>>>>>>>>> help iside Felix Gogo shell, I get error: gogo:
>>>>>>>>>>>>
>>>>>>>>>>> ClassCastException:
>>>>>>>> java.lang.String cannot be cast to [Ljava.lang.String;
>>>>>>>>>>>> Here is the code with annotation:
>>>>>>>>>>>>
>>>>>>>>>>>> package com.packtpub.felix.bookshelf.service.tui;
>>>>>>>>>>>>
>>>>>>>>>>>> import com.packtpub.felix.bookshelf.inventory.api.Book;
>>>>>>>>>>>> import
>>>>>>>>>>>>
>>>>>>>>>>>>
com.packtpub.felix.bookshelf.inventory.api.BookAlreadyExistsException;
>>>>>>>>>> import
>>>>>>>>>>>
com.packtpub.felix.bookshelf.inventory.api.BookNotFoundException;
>>>>>>>>>>> import
>>>>>>>>>>> com.packtpub.felix.bookshelf.inventory.api.InvalidBookException;
>>>>>>>>>> import com.packtpub.felix.bookshelf.service.api.BookshelfService;
>>>>>>>>>>>> import
>>>>>>>>>>>>
>>>>>>>>>>>>
com.packtpub.felix.bookshelf.service.api.InvalidCredentialsException;
>>>>>>>>> import
>>>>>>>>>>>
com.packtpub.felix.bookshelf.service.tui.api.BookshelfServiceProxy;
>>>>>>>>>>>
>>>>>>>>>>>> import org.apache.felix.ipojo.annotations.Component;
>>>>>>>>>>>> import org.apache.felix.ipojo.annotations.Provides;
>>>>>>>>>>>> import org.apache.felix.ipojo.annotations.Requires;
>>>>>>>>>>>> import org.apache.felix.ipojo.annotations.ServiceProperty;
>>>>>>>>>>>> import org.apache.felix.service.command.Descriptor;
>>>>>>>>>>>> //import org.osgi.framework.BundleContext;
>>>>>>>>>>>> import org.osgi.framework.ServiceReference;
>>>>>>>>>>>>
>>>>>>>>>>>> import java.util.HashSet;
>>>>>>>>>>>> import java.util.Set;
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> @Component(name = "BookshelfServiceProxy")
>>>>>>>>>>>> @Provides
>>>>>>>>>>>> public class BookshelfServiceProxyImpl implements
>>>>>>>>>>>>
>>>>>>>>>>> BookshelfServiceProxy{
>>>>>>>>>>> public static final String SCOPE = "book";
>>>>>>>>>>>> @ServiceProperty(name = "osgi.command.scope", value = SCOPE)
>>>>>>>>>>>> public String gogoScope;
>>>>>>>>>>>>
>>>>>>>>>>>> public static final String[] FUNCTIONS = new String[] {
>>>>>>>>>>>> "add", "search"
>>>>>>>>>>>> };
>>>>>>>>>>>>
>>>>>>>>>>>> public static final String FUNCTIONS_STR ="search";
>>>>>>>>>>>> @ServiceProperty(name = "osgi.command.function", value =
>>>>>>>>>>>>
>>>>>>>>>>> FUNCTIONS_STR)
>>>>>>>>>>>
>>>>>>>>>>>> public String gogoFunctions;
>>>>>>>>>>>>
>>>>>>>>>>>> //private BundleContext context;
>>>>>>>>>>>> @Requires
>>>>>>>>>>>> private BookshelfService bookshelf;
>>>>>>>>>>>>
>>>>>>>>>>>> // public BookshelfServiceProxyImpl(BundleContext context){
>>>>>>>>>>>> // this.context = context;
>>>>>>>>>>>> // }
>>>>>>>>>>>> public BookshelfServiceProxyImpl(){
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> @Descriptor("Search books by author, title, or category")
>>>>>>>>>>>> public Set<Book> search(
>>>>>>>>>>>> @Descriptor("username")
>>>>>>>>>>>> String username,
>>>>>>>>>>>> @Descriptor("password")
>>>>>>>>>>>> String password,
>>>>>>>>>>>> @Descriptor(
>>>>>>>>>>>> "search on attribute: author, title, or
>>>>>>>>>>>>
>>>>>>>>>>> category"
>>>>>>>>> )
>>>>>>>>>>>> String attribute,
>>>>>>>>>>>> @Descriptor(
>>>>>>>>>>>> "match like (use % at the beginning or end of
>>>>>>>>>>>>
>>>>>>>>>>> <like>"
>>>>>>>>>>> +
>>>>>>>>>>>
>>>>>>>>>>>> " for wild-card)")
>>>>>>>>>>>> String filter) throws InvalidCredentialsException{
>>>>>>>>>>>>
>>>>>>>>>>>> BookshelfService service = lookupService();
>>>>>>>>>>>>
>>>>>>>>>>>> String sessionid =
>>>>>>>>>>>>
>>>>>>>>>>> service.login(username,password.toCharArray());
>>>>>>>>>>> Set<String> results;
>>>>>>>>>>>> if("title".equals(attribute)){
>>>>>>>>>>>> results =
>>>>>>>>>>>>
>>>>>>>>>>> service.searchBooksByTitle(sessionid,filter);
>>>>>>>> }
>>>>>>>>>>>> else if("author".equals(attribute)){
>>>>>>>>>>>> results =
>>>>>>>>>>>>
>>>>>>>>>>> service.searchBooksByAuthor(sessionid,filter);
>>>>>>>> }
>>>>>>>>>>>> else if("category".equals(attribute)){
>>>>>>>>>>>> results =
>>>>>>>>>>>>
>>>>>>>>>>> service.searchBooksByCategory(sessionid,filter);
>>>>>>>>> }
>>>>>>>>>>>> else{
>>>>>>>>>>>> throw new RuntimeException(
>>>>>>>>>>>> "Invalid attribute, expecting one of {
>>>>>>>>>>>>
>>>>>>>>>>> 'title',
>>>>>>>> "
>>>>>>>>
>>>>>>>>> +
>>>>>>>>>
>>>>>>>>>> "'author', 'category' } got
>>>>>>>>>>> '"+attribute+"'");
>>>>>>>>>>> }
>>>>>>>>>>>> return getBooks(sessionid,service,results);
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> @Descriptor("Search books by rating")
>>>>>>>>>>>> public Set<Book> search(
>>>>>>>>>>>> @Descriptor("username")
>>>>>>>>>>>> String username,
>>>>>>>>>>>> @Descriptor("password")
>>>>>>>>>>>> String password,
>>>>>>>>>>>> @Descriptor("search on attribute rating")
>>>>>>>>>>>> String attribute,
>>>>>>>>>>>> @Descriptor("lower rating limit (inclusive)")
>>>>>>>>>>>> int lower,
>>>>>>>>>>>> @Descriptor("upper rating limit (inclusive)")
>>>>>>>>>>>> int upper) throws InvalidCredentialsException {
>>>>>>>>>>>>
>>>>>>>>>>>> if(!"rating".equals(attribute)){
>>>>>>>>>>>> throw new RuntimeException(
>>>>>>>>>>>> "Invalid attribute, expecting 'rating' got '"+
>>>>>>>>>>>> attribute+"'");
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> BookshelfService service = lookupService();
>>>>>>>>>>>> String sessionid =
>>>>>>>>>>>>
>>>>>>>>>>> service.login(username,password.toCharArray());
>>>>>>>>>>> Set<String> results =
>>>>>>>>>>>> service.searchBooksByRating(sessionid,lower,upper);
>>>>>>>>>>>> return getBooks(sessionid,service,results);
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> @Descriptor("Add book to the inventory")
>>>>>>>>>>>> public String add(
>>>>>>>>>>>> @Descriptor("username") String username,
>>>>>>>>>>>> @Descriptor("password") String password,
>>>>>>>>>>>> @Descriptor("ISBN") String isbn,
>>>>>>>>>>>> @Descriptor("Title") String title,
>>>>>>>>>>>> @Descriptor("Author") String author,
>>>>>>>>>>>> @Descriptor("Category") String category,
>>>>>>>>>>>> @Descriptor("Rating (0..10)") int rating)
>>>>>>>>>>>> throws InvalidCredentialsException,
>>>>>>>>>>>> BookAlreadyExistsException,
>>>>>>>>>>>> InvalidBookException{
>>>>>>>>>>>> BookshelfService service = lookupService();
>>>>>>>>>>>> String sessionId =
>>>>>>>>>>>>
>>>>>>>>>>> service.login(username,password.toCharArray());
>>>>>>>>> service.addBook(sessionId,isbn,title,author,category,rating);
>>>>>>>>> return isbn;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> private BookshelfService lookupService(){
>>>>>>>>>>>> // ServiceReference reference =
>>>>>>>>>>>>
>>>>>>>>>>> context.getServiceReference(
>>>>>>>> // BookshelfService.class.getName());
>>>>>>>>>>>> // if(reference==null){
>>>>>>>>>>>> // throw new RuntimeException("BookshelfService not
>>>>>>>>>>>> registered,cannot invoke "+
>>>>>>>>>>>> // "operation");
>>>>>>>>>>>> // }
>>>>>>>>>>>> // BookshelfService service = (BookshelfService)
>>>>>>>>>>>> this.context.getService(reference);
>>>>>>>>>>>> // if(service==null){
>>>>>>>>>>>> // throw new RuntimeException(
>>>>>>>>>>>> // "BookshelfService not registered, cannot
>>>>>>>>>>>>
>>>>>>>>>>> invoke
>>>>>>>>> "+
>>>>>>>>>>> // "operation");
>>>>>>>>>>>> // }
>>>>>>>>>>>> // return service;
>>>>>>>>>>>> return this.bookshelf;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> private Set<Book> getBooks(
>>>>>>>>>>>> String sessionid, BookshelfService service,
>>>>>>>>>>>> Set<String> results) {
>>>>>>>>>>>> Set<Book> books = new HashSet<Book>();
>>>>>>>>>>>> for(String isbn: results){
>>>>>>>>>>>> Book book;
>>>>>>>>>>>> try{
>>>>>>>>>>>> book = service.getBook(sessionid,isbn);
>>>>>>>>>>>> books.add(book);
>>>>>>>>>>>> } catch (BookNotFoundException e) {
>>>>>>>>>>>> System.out.println("ISBN "+ isbn +
>>>>>>>>>>>> " referenced but not found");
>>>>>>>>>>>> }
>>>>>>>>>>>> }
>>>>>>>>>>>> return books;
>>>>>>>>>>>> }
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Here is meta.xml:
>>>>>>>>>>>>
>>>>>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>>>>>> <ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>>>>>>>>>> xsi:schemaLocation="org.apache.felix.ipojo
>>>>>>>>>>>> http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd";
>>>>>>>>>>>> xmlns="org.apache.felix.ipojo">
>>>>>>>>>>>>
>>>>>>>>>>>> <instance component="BookshelfServiceProxy"
>>>>>>>>>>>> name="bookshelf.service.tui"/>
>>>>>>>>>>>> </ipojo>
>>>>>>>>>>>>
>>>>>>>>>>>>
---------------------------------------------------------------------
>>>>> 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]
>

Reply via email to