import io.sphere.sdk.client.BlockingSphereClient;
import io.sphere.sdk.client.SphereClient;
import io.sphere.sdk.client.SphereClientConfig;
import io.sphere.sdk.client.SphereClientFactory;
import io.sphere.sdk.products.ProductProjection;
import io.sphere.sdk.products.search.ProductProjectionSearch;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

// This example uses the official Sphere Java client:
// https://github.com/sphereio/sphere-jvm-sdk

public class HelloApi {
    public static void main(String[] args) throws Exception {
        final SphereClientConfig config = loadCommercetoolsConfig();
        final SphereClientFactory factory = SphereClientFactory.of();
        final SphereClient underlyingClient = factory.createClient(config);//this client only works asynchronous
        try(final BlockingSphereClient client = BlockingSphereClient.of(underlyingClient, 10, TimeUnit.SECONDS)) {
            final ProductProjectionSearch sphereRequest = ProductProjectionSearch.ofCurrent()
                    .withSort(m -> m.createdAt().byDesc());
            final List<ProductProjection> products = client.executeBlocking(sphereRequest).getResults();
            for (ProductProjection product : products) {
                System.out.println(product.getName());
            }
        }
    }

    private static SphereClientConfig loadCommercetoolsConfig() throws IOException {
        final Properties properties = loadPropertiesFromClasspath("commercetools.properties");
        return SphereClientConfig.ofProperties(properties, "");
    }

    private static Properties loadPropertiesFromClasspath(final String path) throws IOException {
        final Properties properties = new Properties();
        try (final InputStream stream = HelloApi.class.getResourceAsStream(path)) {
            properties.load(stream);
        }
        return properties;
    }
}

@@ -640,362 +640,74 @@
     
-final SphereClientConfig config = loadCommercetoolsConfig();%0A        final SphereClientFactory factory = SphereClientFactory.of();%0A        final SphereClient underlyingClient = factory.createClient(config);//this client only works asynchronous%0A        try(final BlockingSphereClient client = BlockingSphereClient.of(underlyingClient, 10, TimeUnit.SECONDS
+try(final BlockingSphereClient client = createCommercetoolsClient(
 )) %7B
@@ -835,14 +835,26 @@
 ort(
-m -%3E m
+product -%3E product
 .cre
@@ -995,16 +995,22 @@
    for (
+final 
 ProductP
@@ -1146,16 +1146,24 @@
  static 
+Blocking
 SphereCl
@@ -1170,19 +1170,15 @@
 ient
-Config load
+ create
 Comm
@@ -1187,21 +1187,21 @@
 cetoolsC
-onfig
+lient
 () throw
@@ -1319,22 +1319,49 @@
         
-return
+final SphereClientConfig config =
  SphereC
@@ -1398,24 +1398,234 @@
 rties, %22%22);%0A
+        final SphereClient underlyingClient = SphereClientFactory.of().createClient(config);//this client only works asynchronous%0A        return BlockingSphereClient.of(underlyingClient, 10, TimeUnit.SECONDS);%0A
     %7D%0A%0A    p

Apply review feedback for Java example.