/*
 * JBoss, Home of Professional Open Source Copyright 2014 Red Hat Inc. and/or its affiliates and
 * other contributors as indicated by the @authors tag. All rights reserved. See the copyright.txt
 * in the distribution for a full listing of individual contributors.
 * 
 * Licensed under the Apache License, Version 2.0 (the 'License') you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in
 * writing, software distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
 * language governing permissions and limitations under the License.
 */
package org.jboss.aesh.nanook;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 * @author Yoshimasa Tanabe
 */
@Path("/")
public class NanookRest {

    @Path("/history")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<PojoCommand> history() throws IOException {

        List<PojoCommand> pojoCommandList = new ArrayList<>();

        Stream<String> lines = Files.lines(Paths.get(System.getProperty("user.home"), ".aesh_history"));
        lines.forEach(line -> pojoCommandList.add(new PojoCommand(line)));
        lines.close();

        return pojoCommandList;
    }

    @Path("/log")
    @GET
    public String log() {
        return "NOT_IMPLEMENTED";
    }

}

@@ -852,187 +852,206 @@
 java
-.io.IOException;%0Aimport java.nio.file.Files;%0Aimport java.nio.file.Paths;%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0Aimport java.util.stream.Stream;%0A%0Aimport javax.ws.rs.GET
+x.ws.rs.GET;%0Aimport javax.ws.rs.Path;%0Aimport javax.ws.rs.Produces;%0Aimport javax.ws.rs.core.MediaType;%0Aimport java.io.IOException;%0Aimport java.nio.file.Files;%0Aimport java.nio.file.NoSuchFileException
 ;%0Aim
@@ -1055,36 +1055,39 @@
 %0Aimport java
-x.ws.rs
+.nio.file
 .Path
+s
 ;%0Aimport jav
@@ -1091,59 +1091,78 @@
 java
-x.ws.rs.Produces;%0Aimport javax.ws.rs.core.MediaType
+.util.ArrayList;%0Aimport java.util.List;%0Aimport java.util.stream.Stream
 ;%0A%0A/
@@ -1440,16 +1440,21 @@
         
+try (
 Stream%3CS
@@ -1540,18 +1540,24 @@
 story%22))
-;%0A
+) %7B%0A    
         
@@ -1635,22 +1635,47 @@
     
-lines.close();
+%7D catch (NoSuchFileException ignore) %7B%7D
 %0A%0A  

Return empty array when .aesh_history doesn't exist.