You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2017/06/07 12:17:18 UTC

deltaspike git commit: DELTASPIKE-1267 Remove second factory mechanism of QueryBuilder's

Repository: deltaspike
Updated Branches:
  refs/heads/master 80d672bf0 -> 442366998


DELTASPIKE-1267 Remove second factory mechanism of QueryBuilder's

Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/44236699
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/44236699
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/44236699

Branch: refs/heads/master
Commit: 442366998715112497f6b18391bbee33dfa31a71
Parents: 80d672b
Author: Thomas Andraschko <ta...@apache.org>
Authored: Wed Jun 7 14:17:03 2017 +0200
Committer: Thomas Andraschko <ta...@apache.org>
Committed: Wed Jun 7 14:17:03 2017 +0200

----------------------------------------------------------------------
 .../impl/builder/AnnotatedQueryBuilder.java     |  3 --
 .../data/impl/builder/DelegateQueryBuilder.java |  3 --
 .../data/impl/builder/MethodQueryBuilder.java   |  5 +--
 .../data/impl/builder/QueryBuilderFactory.java  | 40 +++++++++--------
 .../data/impl/meta/QueryInvocation.java         | 46 --------------------
 .../data/impl/meta/QueryInvocationLiteral.java  | 46 --------------------
 6 files changed, 24 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java
index c27a6c6..53cc660 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java
@@ -20,8 +20,6 @@ package org.apache.deltaspike.data.impl.builder;
 
 import org.apache.deltaspike.data.api.Query;
 import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
-import org.apache.deltaspike.data.impl.meta.RepositoryMethodType;
-import org.apache.deltaspike.data.impl.meta.QueryInvocation;
 import org.apache.deltaspike.data.impl.param.Parameters;
 import org.apache.deltaspike.data.impl.util.jpa.QueryStringExtractorFactory;
 
@@ -37,7 +35,6 @@ import static org.apache.deltaspike.core.util.StringUtils.isNotEmpty;
 /**
  * Create the query based on method annotations.
  */
-@QueryInvocation(RepositoryMethodType.ANNOTATED)
 @ApplicationScoped
 public class AnnotatedQueryBuilder extends QueryBuilder
 {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
index 9994f1d..b86252c 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/DelegateQueryBuilder.java
@@ -39,12 +39,9 @@ import org.apache.deltaspike.core.util.OptionalUtil;
 import org.apache.deltaspike.core.util.StreamUtil;
 import org.apache.deltaspike.data.api.QueryInvocationException;
 import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
-import org.apache.deltaspike.data.impl.meta.RepositoryMethodType;
-import org.apache.deltaspike.data.impl.meta.QueryInvocation;
 import org.apache.deltaspike.data.impl.util.bean.BeanDestroyable;
 import org.apache.deltaspike.data.spi.DelegateQueryHandler;
 
-@QueryInvocation(RepositoryMethodType.DELEGATE)
 @ApplicationScoped
 public class DelegateQueryBuilder extends QueryBuilder
 {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/MethodQueryBuilder.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/MethodQueryBuilder.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/MethodQueryBuilder.java
index f9efd1e..89f3e58 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/MethodQueryBuilder.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/MethodQueryBuilder.java
@@ -23,11 +23,8 @@ import javax.persistence.Query;
 
 import org.apache.deltaspike.data.impl.builder.part.QueryRoot;
 import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
-import org.apache.deltaspike.data.impl.meta.RepositoryMethodType;
-import org.apache.deltaspike.data.impl.meta.QueryInvocation;
 import org.apache.deltaspike.data.impl.param.Parameters;
 
-@QueryInvocation(RepositoryMethodType.PARSE)
 @ApplicationScoped
 public class MethodQueryBuilder extends QueryBuilder
 {
@@ -39,7 +36,7 @@ public class MethodQueryBuilder extends QueryBuilder
         return context.executeQuery(jpaQuery);
     }
 
-    private Query createJpaQuery(CdiQueryInvocationContext context)
+     private Query createJpaQuery(CdiQueryInvocationContext context)
     {
         Parameters params = context.getParams();
         QueryRoot root = context.getRepositoryMethodMetadata().getQueryRoot();

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
index 77a8653..9d512a9 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/builder/QueryBuilderFactory.java
@@ -22,36 +22,42 @@ import static org.apache.deltaspike.data.impl.meta.RepositoryMethodType.ANNOTATE
 import static org.apache.deltaspike.data.impl.meta.RepositoryMethodType.DELEGATE;
 import static org.apache.deltaspike.data.impl.meta.RepositoryMethodType.PARSE;
 
-import java.util.HashMap;
-import java.util.Map;
 import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
 
-import org.apache.deltaspike.core.api.provider.BeanProvider;
 import org.apache.deltaspike.data.api.QueryResult;
 import org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext;
 import org.apache.deltaspike.data.impl.meta.RepositoryMethodType;
-import org.apache.deltaspike.data.impl.meta.QueryInvocationLiteral;
 import org.apache.deltaspike.data.impl.meta.RepositoryMethodMetadata;
 
 @ApplicationScoped
 public class QueryBuilderFactory
 {
-    private static final Map<RepositoryMethodType, QueryInvocationLiteral> LITERALS =
-            new HashMap<RepositoryMethodType, QueryInvocationLiteral>()
-            {
-                private static final long serialVersionUID = 1L;
-
-                {
-                    put(ANNOTATED, new QueryInvocationLiteral(ANNOTATED));
-                    put(DELEGATE, new QueryInvocationLiteral(DELEGATE));
-                    put(PARSE, new QueryInvocationLiteral(PARSE));
-                }
-            };
+    @Inject
+    private MethodQueryBuilder methodQueryBuilder;
+    @Inject
+    private DelegateQueryBuilder delegateQueryBuilder;
+    @Inject
+    private AnnotatedQueryBuilder annotatedQueryBuilder;
+            
+    protected QueryBuilder getQueryBuilder(RepositoryMethodType repositoryMethodType)
+    {
+        switch (repositoryMethodType)
+        {
+            case ANNOTATED:
+                return annotatedQueryBuilder;
+            case PARSE:
+                return methodQueryBuilder;
+            case DELEGATE:
+                return delegateQueryBuilder;
+        }
+        
+        throw new RuntimeException("No " + QueryBuilder.class.getName() + " avialable for type: " + repositoryMethodType);
+    }
 
     public QueryBuilder build(RepositoryMethodMetadata methodMetadata, CdiQueryInvocationContext context)
     {
-        QueryBuilder builder = BeanProvider.getContextualReference(
-                QueryBuilder.class, LITERALS.get(methodMetadata.getMethodType()));
+        QueryBuilder builder = getQueryBuilder(context.getRepositoryMethodMetadata().getMethodType());
 
         if (QueryResult.class.equals(methodMetadata.getMethod().getReturnType()))
         {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocation.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocation.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocation.java
deleted file mode 100644
index bbd900b..0000000
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.deltaspike.data.impl.meta;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import javax.inject.Qualifier;
-
-/**
- * CDI qualifier - defines the kind of query invocation. Mainly used to resolve the correct query builder by method
- * type.
- */
-@Qualifier
-@Target({ TYPE, METHOD, PARAMETER, FIELD })
-@Retention(RUNTIME)
-@Documented
-public @interface QueryInvocation
-{
-
-    RepositoryMethodType value();
-
-}

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/44236699/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocationLiteral.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocationLiteral.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocationLiteral.java
deleted file mode 100644
index a21143c..0000000
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/meta/QueryInvocationLiteral.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.deltaspike.data.impl.meta;
-
-import javax.enterprise.util.AnnotationLiteral;
-
-/**
- * Utility class to construct a qualifier and resolve a dependency programmatically.
- */
-@SuppressWarnings("all")
-public class QueryInvocationLiteral extends AnnotationLiteral<QueryInvocation>
-        implements QueryInvocation
-{
-
-    private static final long serialVersionUID = 1L;
-
-    private final RepositoryMethodType methodType;
-
-    public QueryInvocationLiteral(RepositoryMethodType methodType)
-    {
-        this.methodType = methodType;
-    }
-
-    @Override
-    public RepositoryMethodType value()
-    {
-        return methodType;
-    }
-
-}