package com.example.bookmanager; public class Book { private String title; private String author; private String publicationDate; // ... } package com.example.bookmanager; import java.util.List; public interface BookManager { void addBook(Book book); void removeBook(String title); List<Book> getBookList(); } package com.example.bookmanager.provider; import com.example.bookmanager.BookManager; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import java.util.ArrayList; import java.util.List; @Component(service = BookManager.class) public class BookManagerImpl implements BookManager { private List<Book> bookList; @Reference public void setBookList(List<Book> bookList) { this.bookList = bookList; } @Override public void addBook(Book book) { bookList.add(book); } @Override public void removeBook(String title) { bookList.removeIf(book -> book.getTitle().equals(title)); } @Override public List<Book> getBookList() { return new ArrayList<>(bookList); } } -runfw: org.apache.felix.framework -runproperties:\ osgi.console=\ Bundle-Version: 1.0.0 Private-Package: \ com.example.bookmanager\ com.example.bookmanager.provider Require-Capability:\ osgi.ee; filter:='(&(osgi.ee=JavaSE)(version=11))' <?xml version="1.0" encoding="UTF-8"?> <component xmlns="http://www.osgi.org/xmlns/scr/v1.4.0" name="com.example.bookmanager.provider.BookManagerImpl"> <implementation class="com.example.bookmanager.provider.BookManagerImpl"/> <service> <provide interface="com.example.bookmanager.BookManager"/> </service> </component>


上一篇:
下一篇:
切换中文