package fowler; import java.rmi.RemoteException; import java.util.HashMap; import java.util.Map; import brmi.BatchUnicastRemoteObject; public class RemoteMusic extends BatchUnicastRemoteObject implements Music { private Map artists = new HashMap(); private Map albums = new HashMap(); public RemoteMusic() throws RemoteException { /* empty */ } @Override public Artist addArtist(String id, String name) { Artist a = new RemoteArtist(name); artists.put(id, a); return a; } @Override public Album createAlbum(String id, String title) { Album a = new RemoteAlbum(title); albums.put(id, a); return a; } @Override public Track createTrack(String title) { return new RemoteTrack(title); } @Override public Album getAlbum(String id) { return albums.get(id); } @Override public Artist getArtist(String id) { return artists.get(id); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { RemoteMusic obj = new RemoteMusic(); Album album = obj.createAlbum("1", "Test Album"); Artist artist = obj.addArtist("1", "Jane Smith"); album.setArtist(artist); Track t1 = obj.createTrack("First Track"); t1.addPerformer(artist); album.addTrack(t1); Track t2 = obj.createTrack("Second Track"); t2.addPerformer(artist); album.addTrack(t2); new brmi.Server(obj, "music-service"); System.out.println("Bound as music-service."); } catch (Exception e) { System.err.println("RemoteFileServer: " + e.getMessage()); e.printStackTrace(); System.exit(1); } } }