title: Resource specification not allowed error
body: <p>I'm getting the following error when running this java code in eclipse.</p>
  
  <pre><code>Exception in thread "main" java.lang.Error: Unresolved compilation problems:    Resource specification not allowed here for source level below 1.7  The type Transaction is not visible     tx cannot be resolved
  
      at neo4jTesting.EmbeddedNeo4j.createDb(EmbeddedNeo4j.java:52)   at neo4jTesting.EmbeddedNeo4j.main(EmbeddedNeo4j.java:38)
  </code></pre>
  
  <p>Here is the code</p>
  
  <pre><code>import java.io.File; import java.io.IOException; import org.neo4j.graphdb.Direction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.factory.GraphDatabaseFactory; import org.neo4j.kernel.impl.util.FileUtils;
  
  public class EmbeddedNeo4j {
      private static final String DB_PATH = "target/neo4j-hello-db";
  
      public String greeting;
  
      // START SNIPPET: vars
      GraphDatabaseService graphDb;
      Node firstNode;
      Node secondNode;
      Relationship relationship;
      // END SNIPPET: vars
  
      // START SNIPPET: createReltype
      private static enum RelTypes implements RelationshipType
      {
          KNOWS
      }
      // END SNIPPET: createReltype
  
      public static void main( final String[] args )
      {
          EmbeddedNeo4j hello = new EmbeddedNeo4j();
          hello.createDb();
          hello.removeData();
          hello.shutDown();
      }
  
      void createDb()
      {
          clearDb();
          // START SNIPPET: startDb
          graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
          registerShutdownHook( graphDb );
          // END SNIPPET: startDb
  
          // START SNIPPET: transaction
          try ( Transaction tx = graphDb.beginTx() )
          {
              // Database operations go here
              // END SNIPPET: transaction
              // START SNIPPET: addData
              firstNode = graphDb.createNode();
              firstNode.setProperty( "message", "Hello, " );
              secondNode = graphDb.createNode();
              secondNode.setProperty( "message", "World!" );
  
              relationship = firstNode.createRelationshipTo( secondNode, RelTypes.KNOWS );
              relationship.setProperty( "message", "brave Neo4j " );
              // END SNIPPET: addData
  
              // START SNIPPET: readData
              System.out.print( firstNode.getProperty( "message" ) );
              System.out.print( relationship.getProperty( "message" ) );
              System.out.print( secondNode.getProperty( "message" ) );
              // END SNIPPET: readData
  
              greeting = ( (String) firstNode.getProperty( "message" ) )
                         + ( (String) relationship.getProperty( "message" ) )
                         + ( (String) secondNode.getProperty( "message" ) );
  
              // START SNIPPET: transaction
              tx.success();
          } finally {
              tx.finish();
          }
          // END SNIPPET: transaction
      }
  
      private void clearDb()
      {
          try
          {
              FileUtils.deleteRecursively( new File( DB_PATH ) );
          }
          catch ( IOException e )
          {
              throw new RuntimeException( e );
          }
      }
  
      void removeData()
      {
          try ( Transaction tx = graphDb.beginTx() )
          {
              // START SNIPPET: removingData
              // let's remove the data
              firstNode.getSingleRelationship( RelTypes.KNOWS, Direction.OUTGOING ).delete();
              firstNode.delete();
              secondNode.delete();
              // END SNIPPET: removingData
  
              tx.success();
          } finally {
              tx.finish();
          }
      }
  
      void shutDown()
      {
          System.out.println();
          System.out.println( "Shutting down database ..." );
          // START SNIPPET: shutdownServer
          graphDb.shutdown();
          // END SNIPPET: shutdownServer
      }
  
      // START SNIPPET: shutdownHook
      private static void registerShutdownHook( final GraphDatabaseService graphDb )
      {
          // Registers a shutdown hook for the Neo4j instance so that it
          // shuts down nicely when the VM exits (even if you "Ctrl-C" the
          // running application).
          Runtime.getRuntime().addShutdownHook( new Thread()
          {
              @Override
              public void run()
              {
                  graphDb.shutdown();
              }
          } );
      }
      // END SNIPPET: shutdownHook }
  </code></pre>
  
  <p>The code source is from
  <a href="https://github.com/neo4j/neo4j/blob/master/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java" rel="nofollow">https://github.com/neo4j/neo4j/blob/master/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java</a></p>
  
  <p>My apologies for the wall of code, but I have no idea how to demonstrate the problem with a simpler solution.</p>
  
  <p>Any advice would be greatly appreciated.</p>
  
  <hr>
  
  <p><strong>Edit 1</strong> </p>
  
  <p>Thanks, I've updated Java to 1.7 and have been greeted with a new error.
  This is from the Eclipse, not the compiler.</p>
  
  <blockquote>
    <p>The resource type Transaction does not implement
    java.lang.AutoCloseable</p>
  </blockquote>
  
  <p>Once again, any help appreciated.</p>