package net.lr.tasklist.persistence.impl; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; import javax.inject.Singleton; import org.ops4j.pax.cdi.api.OsgiServiceProvider; import org.ops4j.pax.cdi.api.Properties; import org.ops4j.pax.cdi.api.Property; import net.lr.tasklist.model.Task; import net.lr.tasklist.model.TaskService; @OsgiServiceProvider(classes=TaskService.class) @Properties(@Property(name = "service.exported.interfaces", value = "*")) @Singleton public class TaskServiceImpl implements TaskService { Map<String, Task> taskMap; public TaskServiceImpl() { taskMap = new HashMap<String, Task>(); Task task = new Task(); task.setId("1"); task.setTitle("Buy some coffee"); task.setDescription("Take the extra strong"); addTask(task); task = new Task(); task.setId("2"); task.setTitle("Finish karaf tutorial"); task.setDescription("Last check and wiki upload"); addTask(task); } @Override public Task getTask(String id) { return taskMap.get(id); } @Override public void addTask(Task task) { taskMap.put(task.getId(), task); } @Override public Collection<Task> getTasks() { // taskMap.values is not serializable return new ArrayList<Task>(taskMap.values()); } @Override public void updateTask(Task task) { taskMap.put(task.getId(), task); } @Override public void deleteTask(String id) { taskMap.remove(id); } }