Book repository for storing books that are accessed by ISBN
Your code is nice and the only advice I can give you is this: getAllBooks() may be improved from linear to constant time.

Consider

public boolean addBook(Book book) {
    Book copy = new Book(book);

    if (!books.containsKey(copy.getIsbn())) {
        this.list.add(book);
        return books.put(copy.getIsbn(), copy) == null;
    }

    return false;
}

public List&lt;Book&gt; getAllBooks() {
    return Collections.unmodifiableList(this.list);
}


Hope that helps.