src/jdk.incubator.adba/share/classes/jdk/incubator/sql2/Examples.java
branchJDK-8188051-branch
changeset 56828 64304e37e9b1
parent 56824 62e92191354d
child 56832 4f7713e6a308
--- a/src/jdk.incubator.adba/share/classes/jdk/incubator/sql2/Examples.java	Wed Jul 11 19:30:26 2018 -0400
+++ b/src/jdk.incubator.adba/share/classes/jdk/incubator/sql2/Examples.java	Wed Jul 11 19:36:23 2018 -0400
@@ -32,6 +32,7 @@
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionStage;
 import java.util.concurrent.Flow;
+import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.Semaphore;
 import java.util.stream.Collector;
 import java.util.stream.Collectors;
@@ -173,11 +174,11 @@
     }
   }
   
-  // TransactionEnd
+  // TransactionCompletion
   
   public void transaction(DataSource ds) {
     try (Session session = ds.getSession(t -> System.out.println("ERROR: " + t.toString()))) {
-      TransactionEnd trans = session.transactionEnd();
+      TransactionCompletion trans = session.transactionCompletion();
       CompletionStage<Integer> idPromise = session.<Integer>rowOperation("select empno, ename from emp where ename = :1 for update")
               .set("1", "CLARK", AdbaType.VARCHAR)
               .collect(Collectors.collectingAndThen(
@@ -336,6 +337,42 @@
   // LocalOperation
   
   // SessionProperty
+  public enum ExampleSessionProperty implements SessionProperty {
+    LANGUAGE;
+    
+    private static final String DEFAULT_VALUE = "AMERICAN_AMERICA";
+
+    @Override
+    public Class<?> range() {
+      return String.class;
+    }
+
+    @Override
+    public Object defaultValue() {
+      return DEFAULT_VALUE;
+    }
+
+    @Override
+    public boolean isSensitive() {
+      return false;
+    }
+
+    @Override
+    public boolean configureOperation(OperationGroup<?, ?> group, Object value) {
+      group.operation("ALTER SESSION SET NLS_LANG = " 
+                      + group.enquoteIdentifier((String)value, false))
+              .submit();
+      return true;
+    }
+    
+  }
+  
+  public Session getSession(DataSource ds) {
+    return ds.builder()
+            .property(ExampleSessionProperty.LANGUAGE, "FRENCH_FRANCE")
+            .build()
+            .attach();
+  }
   
   // Sharding