You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/07/30 21:48:51 UTC
[52/80] zest-java git commit: Stage 2 of the namespace change. Bulk
of documentation fixed.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/common/Qi4jMixinUtil.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/common/Qi4jMixinUtil.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/common/Qi4jMixinUtil.java
deleted file mode 100644
index be08dde..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/common/Qi4jMixinUtil.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.mixins.common;
-
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.*;
-import com.intellij.psi.codeStyle.JavaCodeStyleManager;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.List;
-import java.util.Set;
-
-import static com.intellij.codeInsight.AnnotationUtil.findAnnotation;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.emptySet;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiAnnotationUtil.getAnnotationDefaultParameterValue;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiAnnotationUtil.getClassReference;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiClassUtil.getExtendsDeep;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiClassUtil.getPSIClass;
-import static org.qi4j.ide.plugin.idea.concerns.common.Qi4jConcernUtil.isAConcern;
-import static org.qi4j.ide.plugin.idea.mixins.common.Qi4jMixinConstants.QUALIFIED_NAME_MIXINS;
-import static org.qi4j.ide.plugin.idea.sideEffects.common.Qi4jSideEffectUtil.isASideEffect;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class Qi4jMixinUtil
-{
- /**
- * Get all valid mixin types of given the {@code psiClass} argument.
- *
- * @param psiClass The psi class to check.
- * @return all vlaid mixin types of the given {@code psiClass} argument.
- * @since 0.1
- */
- @NotNull
- public static Set<PsiClass> getAllValidMixinTypes( @NotNull PsiClass psiClass )
- {
- PsiAnnotation mixinsAnnotation = getMixinsAnnotation( psiClass );
- if( mixinsAnnotation == null )
- {
- return emptySet();
- }
-
- Set<PsiClass> validMixinsType = getExtendsDeep( psiClass );
- validMixinsType.add( psiClass );
- return validMixinsType;
- }
-
- @NotNull
- public static List<PsiAnnotationMemberValue> getMixinsAnnotationValue( @NotNull PsiClass psiClass )
- {
- return getMixinsAnnotationValue( getMixinsAnnotation( psiClass ) );
- }
-
- @NotNull
- public static List<PsiAnnotationMemberValue> getMixinsAnnotationValue( @Nullable PsiAnnotation mixinsAnnotation )
- {
- if( mixinsAnnotation == null )
- {
- return emptyList();
- }
-
- String mixinsQualifiedName = mixinsAnnotation.getQualifiedName();
- if( !QUALIFIED_NAME_MIXINS.equals( mixinsQualifiedName ) )
- {
- return emptyList();
- }
-
- return getAnnotationDefaultParameterValue( mixinsAnnotation );
- }
-
- @Nullable
- public static PsiAnnotation getMixinsAnnotation( PsiElement element )
- {
- PsiClass psiClass = getPSIClass( element );
- if( psiClass == null )
- {
- return null;
- }
-
- return findAnnotation( psiClass, QUALIFIED_NAME_MIXINS );
- }
-
- @NotNull
- public static PsiAnnotation addOrReplaceMixinAnnotation( @NotNull PsiModifierListOwner modifierListOwner,
- @NotNull PsiClass mixinClassToAdd )
- {
- Project project = modifierListOwner.getProject();
- JavaPsiFacade psiFacade = JavaPsiFacade.getInstance( project );
- PsiElementFactory factory = psiFacade.getElementFactory();
- PsiAnnotation existingMixinsAnnotation = findAnnotation( modifierListOwner, QUALIFIED_NAME_MIXINS );
-
- boolean isReplace = false;
- PsiAnnotation newMixinsAnnotation;
- if( existingMixinsAnnotation != null )
- {
- // Check duplicate
- List<PsiAnnotationMemberValue> mixinsValues = getMixinsAnnotationValue( existingMixinsAnnotation );
- for( PsiAnnotationMemberValue mixinValue : mixinsValues )
- {
- PsiJavaCodeReferenceElement mixinClassReference = getMixinClassReference( mixinValue );
- if( mixinClassReference == null )
- {
- continue;
- }
-
- PsiElement mixinClass = mixinClassReference.resolve();
- if( mixinClassToAdd.equals( mixinClass ) )
- {
- return existingMixinsAnnotation;
- }
- }
-
- isReplace = true;
- }
-
- String mixinsAnnotationText = createMixinsAnnotationText( existingMixinsAnnotation, mixinClassToAdd );
- newMixinsAnnotation = factory.createAnnotationFromText( mixinsAnnotationText, modifierListOwner );
-
- if( isReplace )
- {
- // Replace @Mixins instead
- existingMixinsAnnotation.replace( newMixinsAnnotation );
- }
- else
- {
- // @Mixins doesn't exists, add it as first child
- PsiModifierList modifierList = modifierListOwner.getModifierList();
- modifierList.addBefore( newMixinsAnnotation, modifierList.getFirstChild() );
- }
-
- // Shorten all class references if possible
- JavaCodeStyleManager codeStyleManager = JavaCodeStyleManager.getInstance( project );
- codeStyleManager.shortenClassReferences( newMixinsAnnotation );
-
- return newMixinsAnnotation;
- }
-
- @NotNull
- private static String createMixinsAnnotationText( @Nullable PsiAnnotation mixinsAnnotationBase,
- @NotNull PsiClass mixinClassToAdd )
- {
- StringBuilder annotationTextBuilder = new StringBuilder();
- annotationTextBuilder.append( "@" ).append( QUALIFIED_NAME_MIXINS ).append( "( {" );
- List<PsiAnnotationMemberValue> mixinsValues = getMixinsAnnotationValue( mixinsAnnotationBase );
- for( PsiAnnotationMemberValue mixinValue : mixinsValues )
- {
- annotationTextBuilder.append( mixinValue.getText() ).append( ", " );
- }
- annotationTextBuilder.append( mixinClassToAdd.getQualifiedName() ).append( ".class" );
- annotationTextBuilder.append( "} )" );
-
- return annotationTextBuilder.toString();
- }
-
-
- @Nullable
- public static PsiJavaCodeReferenceElement getMixinClassReference( @NotNull PsiAnnotationMemberValue value )
- {
- return getClassReference( value );
- }
-
- /**
- * Validate whether psiClass is a mixin.
- *
- * @param psiClass psi class to check.
- * @return {@code true} if psiClass is a mixin, {@code false} otherwise.
- */
- public static boolean isAMixin( @NotNull PsiClass psiClass )
- {
- return !( psiClass.isInterface() || isAConcern( psiClass ) || isASideEffect( psiClass ) );
- }
-
- private Qi4jMixinUtil()
- {
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinImplementsMixinType.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinImplementsMixinType.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinImplementsMixinType.java
deleted file mode 100644
index 2334cec..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinImplementsMixinType.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.mixins.inspections;
-
-import com.intellij.codeInspection.InspectionManager;
-import com.intellij.codeInspection.ProblemDescriptor;
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.PsiAnnotationMemberValue;
-import com.intellij.psi.PsiClass;
-import com.intellij.psi.PsiJavaCodeReferenceElement;
-import org.jetbrains.annotations.NotNull;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractFix;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractInspection;
-
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import static com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING;
-import static org.qi4j.ide.plugin.idea.common.resource.Qi4jResourceBundle.message;
-import static org.qi4j.ide.plugin.idea.concerns.common.Qi4jConcernUtil.isAConcern;
-import static org.qi4j.ide.plugin.idea.mixins.common.Qi4jMixinUtil.*;
-import static org.qi4j.ide.plugin.idea.sideEffects.common.Qi4jSideEffectUtil.isASideEffect;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class MixinImplementsMixinType extends AbstractInspection
-{
- @NotNull
- protected final String resourceBundlePrefixId()
- {
- return "mixin.implements.mixin.type";
- }
-
- @NotNull
- public final String getShortName()
- {
- return "MixinImplementsMixinType";
- }
-
- @Override
- public final ProblemDescriptor[] checkClass( @NotNull PsiClass psiClass,
- @NotNull InspectionManager manager,
- boolean isOnTheFly )
- {
- // If psiClass is not an interface, ignore
- if( !psiClass.isInterface() )
- {
- return null;
- }
-
- // If @Mixins annotation is empty, ignore
- List<PsiAnnotationMemberValue> mixinAnnotationValues = getMixinsAnnotationValue( psiClass );
- if( mixinAnnotationValues.isEmpty() )
- {
- return null;
- }
-
- // Get all valid mixin type
- Set<PsiClass> validMixinsType = getAllValidMixinTypes( psiClass );
- if( validMixinsType.isEmpty() )
- {
- return null;
- }
-
- // For each mixin
- List<ProblemDescriptor> problems = new LinkedList<ProblemDescriptor>();
- for( PsiAnnotationMemberValue mixinAnnotationValue : mixinAnnotationValues )
- {
- PsiJavaCodeReferenceElement mixinClassReference = getMixinClassReference( mixinAnnotationValue );
-
- // If it's not a class reference, ignore
- if( mixinClassReference == null )
- {
- continue;
- }
-
- // If class reference can't be resolved, ignore
- PsiClass mixinClass = (PsiClass) mixinClassReference.resolve();
- if( mixinClass == null )
- {
- continue;
- }
-
- String mixinQualifiedName = mixinClass.getQualifiedName();
-
- boolean isMixinsDeclarationValid = false;
- String message = "";
- if( mixinClass.isInterface() )
- {
- // Mixin can't be an interface
- message = message( "mixin.implements.mixin.type.error.mixin.is.an.interface", mixinQualifiedName );
- }
- else if( isAConcern( mixinClass ) )
- {
- // Mixin can't be a concern
- message = message( "mixin.implements.mixin.type.error.mixin.is.a.concern", mixinQualifiedName );
- }
- else if( isASideEffect( mixinClass ) )
- {
- // Mixin can't be a side effect
- message = message( "mixin.implements.mixin.type.error.mixin.is.a.side.effect", mixinQualifiedName );
- }
- else
- {
- // If doesn't implement any mixin type, it's a problem
- if( !isImplementValidMixinType( mixinClass, validMixinsType ) )
- {
- message = message(
- "mixin.implements.mixin.type.error.does.not.implement.any.mixin.type",
- mixinQualifiedName,
- psiClass.getQualifiedName()
- );
- }
- else
- {
- isMixinsDeclarationValid = true;
- }
- }
-
- if( !isMixinsDeclarationValid )
- {
- ProblemDescriptor problemDescriptor = createProblemDescriptor(
- manager, mixinAnnotationValue, mixinClassReference, message );
- problems.add( problemDescriptor );
- }
- }
-
- return problems.toArray( new ProblemDescriptor[problems.size()] );
- }
-
- private boolean isImplementValidMixinType( PsiClass mixinClass, Set<PsiClass> validMixinsType )
- {
- for( PsiClass validMixinTypeClass : validMixinsType )
- {
- if( mixinClass.isInheritor( validMixinTypeClass, true ) )
- {
- return true;
- }
- }
-
- return false;
- }
-
- private ProblemDescriptor createProblemDescriptor( @NotNull InspectionManager manager,
- @NotNull PsiAnnotationMemberValue mixinAnnotationValue,
- @NotNull PsiJavaCodeReferenceElement mixinClassReference,
- @NotNull String message )
- {
- RemoveInvalidMixinClassReferenceFix fix = new RemoveInvalidMixinClassReferenceFix(
- mixinAnnotationValue, mixinClassReference
- );
- return manager.createProblemDescriptor( mixinAnnotationValue, message, fix, GENERIC_ERROR_OR_WARNING );
- }
-
- private static class RemoveInvalidMixinClassReferenceFix extends AbstractFix
- {
- private final PsiAnnotationMemberValue mixinClassAnnotationValue;
-
- public RemoveInvalidMixinClassReferenceFix( @NotNull PsiAnnotationMemberValue mixinClassAnnotationValue,
- @NotNull PsiJavaCodeReferenceElement mixinClassReference )
- {
- super( message( "mixin.implements.mixin.type.fix.remove.class.reference", mixinClassReference.getQualifiedName() ) );
- this.mixinClassAnnotationValue = mixinClassAnnotationValue;
- }
-
- public final void applyFix( @NotNull Project project, @NotNull ProblemDescriptor descriptor )
- {
- mixinClassAnnotationValue.delete();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinsAnnotationDeclaredOnMixinType.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinsAnnotationDeclaredOnMixinType.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinsAnnotationDeclaredOnMixinType.java
deleted file mode 100644
index 6339ce8..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/mixins/inspections/MixinsAnnotationDeclaredOnMixinType.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.mixins.inspections;
-
-import com.intellij.codeInspection.InspectionManager;
-import com.intellij.codeInspection.ProblemDescriptor;
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.PsiAnnotation;
-import com.intellij.psi.PsiAnnotationMemberValue;
-import com.intellij.psi.PsiClass;
-import org.jetbrains.annotations.NotNull;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractFix;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractInspection;
-
-import static com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING;
-import static org.qi4j.ide.plugin.idea.common.resource.Qi4jResourceBundle.message;
-import static org.qi4j.ide.plugin.idea.mixins.common.Qi4jMixinUtil.getMixinsAnnotation;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class MixinsAnnotationDeclaredOnMixinType extends AbstractInspection
-{
- @NotNull
- public final String getShortName()
- {
- return "MixinsAnnotationDeclaredOnMixinType";
- }
-
- @NotNull
- protected final String resourceBundlePrefixId()
- {
- return "mixins.annotation.declared.on.mixin.type";
- }
-
- @Override
- public ProblemDescriptor[] checkClass( @NotNull PsiClass psiClass,
- @NotNull InspectionManager manager,
- boolean isOnTheFly )
- {
- PsiAnnotation mixinsAnnotation = getMixinsAnnotation( psiClass );
- if( mixinsAnnotation == null )
- {
- return null;
- }
-
- if( psiClass.isInterface() )
- {
- return null;
- }
-
- String message = message( "mixins.annotation.declared.on.mixin.type.error.declared.on.class" );
- RemoveInvalidMixinClassReferenceFix fix = new RemoveInvalidMixinClassReferenceFix( mixinsAnnotation );
- ProblemDescriptor problemDescriptor = manager.createProblemDescriptor( mixinsAnnotation, message, fix,
- GENERIC_ERROR_OR_WARNING );
- return new ProblemDescriptor[]{ problemDescriptor };
-
- }
-
- private static class RemoveInvalidMixinClassReferenceFix extends AbstractFix
- {
- private final PsiAnnotationMemberValue mixinsAnnotation;
-
- public RemoveInvalidMixinClassReferenceFix( @NotNull PsiAnnotationMemberValue mixinsAnnotation )
- {
- super( message( "mixins.annotation.declared.on.mixin.type.fix.remove.mixins.annotation" ) );
- this.mixinsAnnotation = mixinsAnnotation;
- }
-
- public final void applyFix( @NotNull Project project, @NotNull ProblemDescriptor descriptor )
- {
- mixinsAnnotation.delete();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectConstants.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectConstants.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectConstants.java
deleted file mode 100644
index 5089f29..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.sideEffects.common;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class Qi4jSideEffectConstants
-{
- public static final String QUALIFIED_NAME_SIDE_EFFECTS = "org.qi4j.api.sideeffect.SideEffects";
-
- public static final String QUALIFIED_NAME_SIDE_EFFECT_OF = "org.qi4j.api.sideeffect.SideEffectOf";
- public static final String QUALIFIED_NAME_GENERIC_SIDE_EFFECT = "org.qi4j.api.sideeffect.GenericSideEffect";
-
- private Qi4jSideEffectConstants()
- {
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectUtil.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectUtil.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectUtil.java
deleted file mode 100644
index 43912d1..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/common/Qi4jSideEffectUtil.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.sideEffects.common;
-
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.*;
-import com.intellij.psi.search.GlobalSearchScope;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Collections;
-import java.util.List;
-
-import static com.intellij.codeInsight.AnnotationUtil.findAnnotation;
-import static java.util.Collections.emptyList;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiAnnotationUtil.getAnnotationDefaultParameterValue;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiAnnotationUtil.getClassReference;
-import static org.qi4j.ide.plugin.idea.common.psi.PsiClassUtil.getPSIClass;
-import static org.qi4j.ide.plugin.idea.common.psi.search.GlobalSearchScopeUtil.determineSearchScope;
-import static org.qi4j.ide.plugin.idea.sideEffects.common.Qi4jSideEffectConstants.*;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class Qi4jSideEffectUtil
-{
- /**
- * @param searchContext Search context.
- * @return {@code GenericSideEffect} class given the search context. {@code null} if not found.
- * @since 0.1
- */
- @Nullable
- public static PsiClass getGenericSideEffectClass( @NotNull PsiElement searchContext )
- {
- Project project = searchContext.getProject();
- GlobalSearchScope searchScope = determineSearchScope( searchContext );
- return getGenericSideEffectClass( project, searchScope );
- }
-
- /**
- * @param project project.
- * @param scope search scope.
- * @return {@code GenericSideEffect} class given {@code project} and {@code scope} parameters.
- * Returns {@code null} if not found.
- * @since 0.1
- */
- @Nullable
- public static PsiClass getGenericSideEffectClass( @NotNull Project project,
- @Nullable GlobalSearchScope scope )
- {
- JavaPsiFacade psiFacade = JavaPsiFacade.getInstance( project );
- return scope == null ? null : psiFacade.findClass( QUALIFIED_NAME_GENERIC_SIDE_EFFECT, scope );
- }
-
- /**
- * @param searchContext Search context.
- * @return {@code SideEffectOf} class given the search context. {@code null} if not found.
- * @since 0.1
- */
- @Nullable
- public static PsiClass getSideEffectOfClass( @NotNull PsiElement searchContext )
- {
- Project project = searchContext.getProject();
- GlobalSearchScope searchScope = determineSearchScope( searchContext );
- return getSideEffectOfClass( project, searchScope );
- }
-
-
- /**
- * @param project project.
- * @param scope search scope.
- * @return {@code SideEffectOf} class given {@code project} and {@code scope} parameters.
- * Returns {@code null} if not found.
- * @since 0.1
- */
- @Nullable
- public static PsiClass getSideEffectOfClass( @NotNull Project project,
- @Nullable GlobalSearchScope scope )
- {
- JavaPsiFacade psiFacade = JavaPsiFacade.getInstance( project );
- return scope == null ? null : psiFacade.findClass( QUALIFIED_NAME_SIDE_EFFECT_OF, scope );
- }
-
- /**
- * @param elementWithinJavaClass element within java class.
- * @return {@code @SideEffects} annotation declaration of the class that contains the element.
- * Returns {@code null} if not found, or {@code element} is an invalid context.
- * @since 0.1
- */
- @Nullable
- public static PsiAnnotation getSideEffectsAnnotation( @NotNull PsiElement elementWithinJavaClass )
- {
- PsiClass psiClass = getPSIClass( elementWithinJavaClass );
- return findAnnotation( psiClass, QUALIFIED_NAME_SIDE_EFFECTS );
- }
-
- /**
- * @param annotation annotation to process.
- * @return {@code @SideEffects} annotation value. Returns {@link Collections#emptyList()} if {@code annotation} is
- * {@code null} or annotation is not a {@code @SideEffects} annotation.
- * @since 0.1
- */
- @NotNull
- public static List<PsiAnnotationMemberValue> getSideEffectsAnnotationValue( @Nullable PsiAnnotation annotation )
- {
- if( annotation == null )
- {
- return emptyList();
- }
-
- String concernsQualifiedName = annotation.getQualifiedName();
- if( !QUALIFIED_NAME_SIDE_EFFECTS.equals( concernsQualifiedName ) )
- {
- return emptyList();
- }
-
- return getAnnotationDefaultParameterValue( annotation );
- }
-
- /**
- * @param value annotation member value.
- * @return Side effect class reference given the {@code value} parameter. Returns {@code null} if it's not a
- * class reference.
- * @since 0.1
- */
- @Nullable
- public static PsiJavaCodeReferenceElement getSideEffectClassReference( @NotNull PsiAnnotationMemberValue value )
- {
- return getClassReference( value );
- }
-
- /**
- * Returns a {@code boolean} indicator whether the specified {@code psiClass} is a side effect.
- *
- * @param psiClass class to check.
- * @return {@code true} if {@code psiClass} is a side effect, {@code false} otherwise.
- * @since 0.1
- */
- public static boolean isASideEffect( @NotNull PsiClass psiClass )
- {
- if( psiClass.isInterface() )
- {
- return false;
- }
-
- PsiClass sideEffectOfClass = getSideEffectOfClass( psiClass );
- return sideEffectOfClass != null && psiClass.isInheritor( sideEffectOfClass, true );
- }
-
- /**
- * @param psiClass psi class to check.
- * @return {@code true} if {@code psiClass} inherits {@code GenericSideEffect} class, {@code false} if
- * {@code psiClass} does
- * not inherit {@code GenericSideEffect} or {@code GenericSideEffect} is not found.
- * @since 0.1
- */
- public static boolean isAGenericSideEffect( @NotNull PsiClass psiClass )
- {
- if( psiClass.isInterface() )
- {
- return false;
- }
-
- PsiClass genericSideEffect = getGenericSideEffectClass( psiClass );
- return genericSideEffect != null && psiClass.isInheritor( genericSideEffect, true );
- }
-
- private Qi4jSideEffectUtil()
- {
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/inspections/SideEffectsAnnotationDeclaredCorrectlyInspection.java
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/inspections/SideEffectsAnnotationDeclaredCorrectlyInspection.java b/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/inspections/SideEffectsAnnotationDeclaredCorrectlyInspection.java
deleted file mode 100644
index ac4bb90..0000000
--- a/tools/qidea/src/main/java/org/qi4j/ide/plugin/idea/sideEffects/inspections/SideEffectsAnnotationDeclaredCorrectlyInspection.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 2008 Edward Yakop.
-*
-* 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.qi4j.ide.plugin.idea.sideEffects.inspections;
-
-import com.intellij.codeInspection.InspectionManager;
-import com.intellij.codeInspection.ProblemDescriptor;
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.PsiAnnotation;
-import com.intellij.psi.PsiAnnotationMemberValue;
-import com.intellij.psi.PsiClass;
-import com.intellij.psi.PsiJavaCodeReferenceElement;
-import com.intellij.psi.search.GlobalSearchScope;
-import org.jetbrains.annotations.NotNull;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractFix;
-import org.qi4j.ide.plugin.idea.common.inspections.AbstractInspection;
-import org.qi4j.ide.plugin.idea.common.resource.Qi4jResourceBundle;
-import org.qi4j.ide.plugin.idea.sideEffects.common.Qi4jSideEffectUtil;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import static com.intellij.codeInspection.ProblemHighlightType.GENERIC_ERROR_OR_WARNING;
-import static org.qi4j.ide.plugin.idea.common.psi.search.GlobalSearchScopeUtil.determineSearchScope;
-import static org.qi4j.ide.plugin.idea.common.resource.Qi4jResourceBundle.message;
-import static org.qi4j.ide.plugin.idea.sideEffects.common.Qi4jSideEffectUtil.*;
-
-/**
- * @author edward.yakop@gmail.com
- * @since 0.1
- */
-public final class SideEffectsAnnotationDeclaredCorrectlyInspection extends AbstractInspection
-{
- @NotNull
- protected final String resourceBundlePrefixId()
- {
- return "side.effects.annotation.declared.correctly";
- }
-
- @NotNull
- public final String getShortName()
- {
- return "SideEffectsAnnotationDeclaredCorrectlyInspection";
- }
-
- @Override
- public final ProblemDescriptor[] checkClass( @NotNull PsiClass psiClass,
- @NotNull InspectionManager manager,
- boolean isOnTheFly )
- {
- // If class does not have @SideEffects, ignore
- PsiAnnotation sideEffectsAnnotation = getSideEffectsAnnotation( psiClass );
- if( sideEffectsAnnotation == null )
- {
- return null;
- }
-
- // If @SideEffects declared in class, suggest remove @SideEffects annotation
- if( !psiClass.isInterface() )
- {
- String message = message( "side.effects.annotation.declared.correctly.error.annotation.declared.in.class" );
- RemoveSideEffectsAnnotationFix fix = new RemoveSideEffectsAnnotationFix( sideEffectsAnnotation );
- ProblemDescriptor problemDescriptor = manager.createProblemDescriptor( sideEffectsAnnotation, message, fix,
- GENERIC_ERROR_OR_WARNING );
- return new ProblemDescriptor[]{ problemDescriptor };
- }
-
- // If @SideEffects annotation is empty, ignore
- List<PsiAnnotationMemberValue> sideEffectsAnnotationValue =
- getSideEffectsAnnotationValue( sideEffectsAnnotation );
- if( sideEffectsAnnotationValue.isEmpty() )
- {
- return null;
- }
-
- // If SideEffectOf is not resolved, ignore
- Project project = psiClass.getProject();
- GlobalSearchScope searchScope = determineSearchScope( psiClass );
- PsiClass sideEffectOfClass = Qi4jSideEffectUtil.getGenericSideEffectClass( project, searchScope );
- if( sideEffectOfClass == null )
- {
- return null;
- }
-
- List<ProblemDescriptor> problems = new LinkedList<ProblemDescriptor>();
- for( PsiAnnotationMemberValue sideEffectClassReferenceWrapper : sideEffectsAnnotationValue )
- {
- PsiJavaCodeReferenceElement sideEffectClassReference =
- getSideEffectClassReference( sideEffectClassReferenceWrapper );
-
- // If it's not a class reference, ignore
- if( sideEffectClassReference == null )
- {
- continue;
- }
-
- // If class reference can't be resolved, ignore
- PsiClass sideEffectClass = (PsiClass) sideEffectClassReference.resolve();
- if( sideEffectClass == null )
- {
- continue;
- }
-
- // If side effect class does not inherit SideEffectOf class, suggest remove that reference.
- if( !sideEffectClass.isInheritor( sideEffectOfClass, true ) )
- {
- String message = Qi4jResourceBundle.message(
- "side.effects.annotation.declared.correctly.error.side.effect.does.not.extend.side.effect.of",
- sideEffectClass.getQualifiedName()
- );
-
- RemoveAnnotationValueFix fix = new RemoveAnnotationValueFix(
- sideEffectClassReferenceWrapper, sideEffectClassReference
- );
- ProblemDescriptor problemDescriptor = manager.createProblemDescriptor(
- sideEffectClassReferenceWrapper, message, fix, GENERIC_ERROR_OR_WARNING );
- problems.add( problemDescriptor );
- }
- else
- {
- // TODO: Test whether it is a generic side effect
- // TODO: Test whether it is a specific side effect
- }
- }
-
- return problems.toArray( new ProblemDescriptor[problems.size()] );
- }
-
- private static class RemoveSideEffectsAnnotationFix extends AbstractFix
- {
- private final PsiAnnotation sideEffectsAnnotation;
-
- private RemoveSideEffectsAnnotationFix( @NotNull PsiAnnotation sideEffectsAnnotation )
- {
- super( message( "side.effects.annotation.declared.correctly.fix.remove.annotation" ) );
- this.sideEffectsAnnotation = sideEffectsAnnotation;
- }
-
- public final void applyFix( @NotNull Project project, @NotNull ProblemDescriptor descriptor )
- {
- sideEffectsAnnotation.delete();
- }
- }
-
- private static class RemoveAnnotationValueFix extends AbstractFix
- {
- private final PsiAnnotationMemberValue annotationValueToRemove;
-
- private RemoveAnnotationValueFix( @NotNull PsiAnnotationMemberValue annotationValueToRemove,
- @NotNull PsiJavaCodeReferenceElement sideEffectClassReference )
- {
- super( message( "side.effects.annotation.declared.correctly.fix.remove.class.reference",
- sideEffectClassReference.getQualifiedName() ) );
- this.annotationValueToRemove = annotationValueToRemove;
- }
-
- public final void applyFix( @NotNull Project project, @NotNull ProblemDescriptor descriptor )
- {
- annotationValueToRemove.delete();
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/resources/META-INF/plugin.xml
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/resources/META-INF/plugin.xml b/tools/qidea/src/main/resources/META-INF/plugin.xml
index 5a4a6e6..e85fd5d 100644
--- a/tools/qidea/src/main/resources/META-INF/plugin.xml
+++ b/tools/qidea/src/main/resources/META-INF/plugin.xml
@@ -27,20 +27,20 @@
<application-components>
<component>
- <implementation-class>org.qi4j.ide.plugin.idea.Qi4jApplicationComponent</implementation-class>
+ <implementation-class>org.apache.zest.ide.plugin.idea.Qi4jApplicationComponent</implementation-class>
</component>
</application-components>
<actions>
<action id="CreateConcernFromMixinTypeOrCompositeAction"
- class="org.qi4j.ide.plugin.idea.concerns.actions.create.CreateConcernFromMixinTypeOrCompositeAction"
+ class="org.apache.zest.ide.plugin.idea.concerns.actions.create.CreateConcernFromMixinTypeOrCompositeAction"
text="New Concern" description="Create new Zest™ concern">
<add-to-group group-id="CodeMenu" anchor="last"/>
</action>
- <group id="Zest" class="org.qi4j.ide.plugin.idea.common.actions.Qi4jCreateActionGroup" text="Zest™">
+ <group id="Zest" class="org.apache.zest.ide.plugin.idea.common.actions.Qi4jCreateActionGroup" text="Zest™">
<action id="Zest.NewConcernOf"
- class="org.qi4j.ide.plugin.idea.concerns.actions.create.inPackage.CreateConcernOfInPackageAction"
+ class="org.apache.zest.ide.plugin.idea.concerns.actions.create.inPackage.CreateConcernOfInPackageAction"
text="New Concern" description="Create new Zest concern">
</action>
<add-to-group group-id="NewGroup" anchor="last"/>
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/resources/org/apache/zest/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/resources/org/apache/zest/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties b/tools/qidea/src/main/resources/org/apache/zest/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
new file mode 100644
index 0000000..cd8c07c
--- /dev/null
+++ b/tools/qidea/src/main/resources/org/apache/zest/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
@@ -0,0 +1,159 @@
+# 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.
+
+# *****************************************************************************
+# Common
+# *****************************************************************************
+qi4j.quick.fixes.family.name=Qi4j
+qi4j.action.group.title=Qi4j
+qi4j.action.group.description=Qi4j
+qi4j.inspections.name=Qi4j issues
+qi4j.file.template.group.title=Qi4j
+
+# *****************************************************************************
+# Concern
+# *****************************************************************************
+
+# =========
+# Intention
+# =========
+add.concern.family.name=Add Qi4j Concern
+add.concern.name=Add Qi4j Concern
+
+# ==========
+# Inspection
+# ==========
+concerns.annotation.declared.correctly.name.display=Concern class extends ConcernOf abstract class
+concerns.annotation.declared.correctly.error.concern.class.does.not.extend.ConcernOf=Concern class ''{0}'' does not inherit ''org.qi4j.composite.ConcernOf'' class.
+concerns.annotation.declared.correctly.fix.remove.concern.class.reference=Remove ''{0}'' concern class reference.
+concerns.annotation.declared.correctly.error.annotation.declared.in.class=@Concerns annotation can only be declared at interface
+concerns.annotation.declared.correctly.fix.remove.annotation=Remove @Concerns annotation
+
+# =======
+# Actions
+# =======
+
+# -------------------------
+# Create concern in package
+# -------------------------
+createConcernOfInPackage.menu.action.text=Qi4j Concern Of
+createConcernOfInPackage.menu.action.description=Creates new Qi4j ConcernOf
+createConcernOfInPackage.dlg.title=New Qi4j ConcernOf
+createConcernOfInPackage.dlg.prompt=Enter name for new ConcernOf
+createConcernOfInPackage.command.name=Create ConcernOf
+createConcernOfInPackage.progress.text=Creating ConcernOf ''{0}'' class
+createConcernOfInPackage.error.title=Create concern fail
+
+# *****************************************************************************
+# Mixin
+# *****************************************************************************
+
+# ==========
+# Inspection
+# ==========
+
+# ----------------------------
+# Mixins implements mixin type
+# ----------------------------
+mixin.implements.mixin.type.name.display=Mixin class implements Mixin type class
+mixin.implements.mixin.type.fix.remove.class.reference=Remove ''{0}'' mixin class reference.
+mixin.implements.mixin.type.error.does.not.implement.any.mixin.type=Mixin class ''{0}'' does not inherit any mixin type of ''{1}''
+mixin.implements.mixin.type.error.mixin.is.an.interface=Mixin class ''{0}'' is an interface
+mixin.implements.mixin.type.error.mixin.is.a.concern=''{0}'' class is a concern
+mixin.implements.mixin.type.error.mixin.is.a.side.effect=''{0}'' class is a side effect
+
+# ------------------------------------------
+# Mixins declared on mixin type or composite
+# ------------------------------------------
+mixins.annotation.declared.on.mixin.type.name.display=@Mixins must be declared on interface
+mixins.annotation.declared.on.mixin.type.error.declared.on.class=@Mixins can only be declared on interface
+mixins.annotation.declared.on.mixin.type.fix.remove.mixins.annotation=Remove @Mixins annotation
+
+# *****************************************************************************
+# Side Effect
+# *****************************************************************************
+
+# ==========
+# Inspection
+# ==========
+side.effects.annotation.declared.correctly.name.display=@SideEffects annotation declared correctly
+side.effects.annotation.declared.correctly.error.side.effect.does.not.extend.side.effect.of=Side Effect class ''{0}'' does not inherit ''org.qi4j.composite.SideEffectOf'' class.
+side.effects.annotation.declared.correctly.fix.remove.class.reference=Remove ''{0}'' class reference
+side.effects.annotation.declared.correctly.error.annotation.declared.in.class=@SideEffects annotation can only be declared at interface
+side.effects.annotation.declared.correctly.fix.remove.annotation=Remove @SideEffects annotation
+
+# *****************************************************************************
+# Injections
+# *****************************************************************************
+
+# -----------------
+# Common Inspection
+# -----------------
+abstract.injection.annotation.declaration.inspection.error.annotation.not.declared.correctly=''{0}'' can only be declared in constructor parameters or non static class field.
+
+# -------------------
+# @Structure injection
+# -------------------
+
+# ==========
+# Inspection
+# ==========
+injections.structure.annotation.declared.correctly.name.display=@Structure Injection
+injections.structure.annotation.declared.correctly.error.invalid.injection.type=@Structure does not inject ''{0}'' type.
+injections.structure.annotation.declared.correctly.fix.remove.annotation=Remove @Structure annotation
+
+# -----------------
+# @Service injection
+# -----------------
+
+# ==========
+# Inspection
+# ==========
+injections.service.annotation.declared.correctly.name.display=@Service Injection
+injections.service.annotation.declared.correctly.error.type.is.injected.by.structure=''{0}'' type is injected by @Structure
+injections.service.annotation.declared.correctly.fix.remove.annotation=Remove @Service annotation
+injections.service.annotation.declared.correctly.fix.replace.with.structure.annotation=Replace @Service with @Structure annotation
+
+# -----------------
+# @Invocation injection
+# -----------------
+
+# ==========
+# Inspection
+# ==========
+injections.invocation.annotation.declared.correctly.name.display=@Invocation Injection
+injections.invocation.annotation.declared.correctly.error.type.is.injected.by.structure=''{0}'' type is injected by @Structure
+injections.invocation.annotation.declared.correctly.error.type.is.not.injectable=''{0}'' type is not injectable by @Invocation
+injections.invocation.annotation.declared.correctly.fix.remove.annotation=Remove @Invocation annotation
+injections.invocation.annotation.declared.correctly.fix.replace.with.structure.annotation=Replace @Invocation with @Structure annotation
+
+# *****************************************************************************
+# Applies To
+# *****************************************************************************
+
+# ==========
+# Inspection
+# ==========
+applies.to.annotation.declared.correctly.error.annotation.must.be.declared.on.class=@AppliesTo must be declared on class
+applies.to.annotation.declared.correctly.error.value.is.invalid.for.mixin=''{0}'' is neither an interface or implements ''AppliesToFilter''
+applies.to.annotation.declared.correctly.error.value.requires.class.to.extends.GenericConcern=''{0}'' requires ''{1}'' to extends GenericConcern
+applies.to.annotation.declared.correctly.error.value.requires.class.to.extends.GenericSideEffect=''{0}'' requires ''{1}'' to extends GenericSideEffect
+applies.to.annotation.declared.correctly.error.value.requires.class.to.implements.InvocationHandler=''{0}'' requires ''{1}'' to implements InvocationHandler
+applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.interface.or.extends.GenericConcern=''{0}'' requires ''{1}'' to implement ''{0}'' interface or to extends ''GenericConcern''
+applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.interface.or.extends.GenericSideEffect=''{0}'' requires ''{1}'' to implement ''{0}'' interface or to extends ''GenericSideEffect''
+applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.value.interface.or.implements.InvocationHandler=''{0}'' requires ''{1}'' to implement ''{0}'' or ''InvocationHandler'' interface
+applies.to.annotation.declared.correctly.error.annotation.value.is.invalid.for.non.mixin=''{0}'' is not an annotation or ''AppliesToFilter'' or an interface
+applies.to.annotation.declared.correctly.fix.remove.annotation=Remove ''@AppliesTo'' annotation
+applies.to.annotation.declared.correctly.fix.remove.class.reference=Remove ''{0}'' class reference
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tools/qidea/src/main/resources/org/qi4j/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
----------------------------------------------------------------------
diff --git a/tools/qidea/src/main/resources/org/qi4j/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties b/tools/qidea/src/main/resources/org/qi4j/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
deleted file mode 100644
index cd8c07c..0000000
--- a/tools/qidea/src/main/resources/org/qi4j/ide/plugin/idea/common/resource/Qi4jResourceBundle.properties
+++ /dev/null
@@ -1,159 +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.
-
-# *****************************************************************************
-# Common
-# *****************************************************************************
-qi4j.quick.fixes.family.name=Qi4j
-qi4j.action.group.title=Qi4j
-qi4j.action.group.description=Qi4j
-qi4j.inspections.name=Qi4j issues
-qi4j.file.template.group.title=Qi4j
-
-# *****************************************************************************
-# Concern
-# *****************************************************************************
-
-# =========
-# Intention
-# =========
-add.concern.family.name=Add Qi4j Concern
-add.concern.name=Add Qi4j Concern
-
-# ==========
-# Inspection
-# ==========
-concerns.annotation.declared.correctly.name.display=Concern class extends ConcernOf abstract class
-concerns.annotation.declared.correctly.error.concern.class.does.not.extend.ConcernOf=Concern class ''{0}'' does not inherit ''org.qi4j.composite.ConcernOf'' class.
-concerns.annotation.declared.correctly.fix.remove.concern.class.reference=Remove ''{0}'' concern class reference.
-concerns.annotation.declared.correctly.error.annotation.declared.in.class=@Concerns annotation can only be declared at interface
-concerns.annotation.declared.correctly.fix.remove.annotation=Remove @Concerns annotation
-
-# =======
-# Actions
-# =======
-
-# -------------------------
-# Create concern in package
-# -------------------------
-createConcernOfInPackage.menu.action.text=Qi4j Concern Of
-createConcernOfInPackage.menu.action.description=Creates new Qi4j ConcernOf
-createConcernOfInPackage.dlg.title=New Qi4j ConcernOf
-createConcernOfInPackage.dlg.prompt=Enter name for new ConcernOf
-createConcernOfInPackage.command.name=Create ConcernOf
-createConcernOfInPackage.progress.text=Creating ConcernOf ''{0}'' class
-createConcernOfInPackage.error.title=Create concern fail
-
-# *****************************************************************************
-# Mixin
-# *****************************************************************************
-
-# ==========
-# Inspection
-# ==========
-
-# ----------------------------
-# Mixins implements mixin type
-# ----------------------------
-mixin.implements.mixin.type.name.display=Mixin class implements Mixin type class
-mixin.implements.mixin.type.fix.remove.class.reference=Remove ''{0}'' mixin class reference.
-mixin.implements.mixin.type.error.does.not.implement.any.mixin.type=Mixin class ''{0}'' does not inherit any mixin type of ''{1}''
-mixin.implements.mixin.type.error.mixin.is.an.interface=Mixin class ''{0}'' is an interface
-mixin.implements.mixin.type.error.mixin.is.a.concern=''{0}'' class is a concern
-mixin.implements.mixin.type.error.mixin.is.a.side.effect=''{0}'' class is a side effect
-
-# ------------------------------------------
-# Mixins declared on mixin type or composite
-# ------------------------------------------
-mixins.annotation.declared.on.mixin.type.name.display=@Mixins must be declared on interface
-mixins.annotation.declared.on.mixin.type.error.declared.on.class=@Mixins can only be declared on interface
-mixins.annotation.declared.on.mixin.type.fix.remove.mixins.annotation=Remove @Mixins annotation
-
-# *****************************************************************************
-# Side Effect
-# *****************************************************************************
-
-# ==========
-# Inspection
-# ==========
-side.effects.annotation.declared.correctly.name.display=@SideEffects annotation declared correctly
-side.effects.annotation.declared.correctly.error.side.effect.does.not.extend.side.effect.of=Side Effect class ''{0}'' does not inherit ''org.qi4j.composite.SideEffectOf'' class.
-side.effects.annotation.declared.correctly.fix.remove.class.reference=Remove ''{0}'' class reference
-side.effects.annotation.declared.correctly.error.annotation.declared.in.class=@SideEffects annotation can only be declared at interface
-side.effects.annotation.declared.correctly.fix.remove.annotation=Remove @SideEffects annotation
-
-# *****************************************************************************
-# Injections
-# *****************************************************************************
-
-# -----------------
-# Common Inspection
-# -----------------
-abstract.injection.annotation.declaration.inspection.error.annotation.not.declared.correctly=''{0}'' can only be declared in constructor parameters or non static class field.
-
-# -------------------
-# @Structure injection
-# -------------------
-
-# ==========
-# Inspection
-# ==========
-injections.structure.annotation.declared.correctly.name.display=@Structure Injection
-injections.structure.annotation.declared.correctly.error.invalid.injection.type=@Structure does not inject ''{0}'' type.
-injections.structure.annotation.declared.correctly.fix.remove.annotation=Remove @Structure annotation
-
-# -----------------
-# @Service injection
-# -----------------
-
-# ==========
-# Inspection
-# ==========
-injections.service.annotation.declared.correctly.name.display=@Service Injection
-injections.service.annotation.declared.correctly.error.type.is.injected.by.structure=''{0}'' type is injected by @Structure
-injections.service.annotation.declared.correctly.fix.remove.annotation=Remove @Service annotation
-injections.service.annotation.declared.correctly.fix.replace.with.structure.annotation=Replace @Service with @Structure annotation
-
-# -----------------
-# @Invocation injection
-# -----------------
-
-# ==========
-# Inspection
-# ==========
-injections.invocation.annotation.declared.correctly.name.display=@Invocation Injection
-injections.invocation.annotation.declared.correctly.error.type.is.injected.by.structure=''{0}'' type is injected by @Structure
-injections.invocation.annotation.declared.correctly.error.type.is.not.injectable=''{0}'' type is not injectable by @Invocation
-injections.invocation.annotation.declared.correctly.fix.remove.annotation=Remove @Invocation annotation
-injections.invocation.annotation.declared.correctly.fix.replace.with.structure.annotation=Replace @Invocation with @Structure annotation
-
-# *****************************************************************************
-# Applies To
-# *****************************************************************************
-
-# ==========
-# Inspection
-# ==========
-applies.to.annotation.declared.correctly.error.annotation.must.be.declared.on.class=@AppliesTo must be declared on class
-applies.to.annotation.declared.correctly.error.value.is.invalid.for.mixin=''{0}'' is neither an interface or implements ''AppliesToFilter''
-applies.to.annotation.declared.correctly.error.value.requires.class.to.extends.GenericConcern=''{0}'' requires ''{1}'' to extends GenericConcern
-applies.to.annotation.declared.correctly.error.value.requires.class.to.extends.GenericSideEffect=''{0}'' requires ''{1}'' to extends GenericSideEffect
-applies.to.annotation.declared.correctly.error.value.requires.class.to.implements.InvocationHandler=''{0}'' requires ''{1}'' to implements InvocationHandler
-applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.interface.or.extends.GenericConcern=''{0}'' requires ''{1}'' to implement ''{0}'' interface or to extends ''GenericConcern''
-applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.interface.or.extends.GenericSideEffect=''{0}'' requires ''{1}'' to implement ''{0}'' interface or to extends ''GenericSideEffect''
-applies.to.annotation.declared.correctly.error.value.requires.class.to.implement.value.interface.or.implements.InvocationHandler=''{0}'' requires ''{1}'' to implement ''{0}'' or ''InvocationHandler'' interface
-applies.to.annotation.declared.correctly.error.annotation.value.is.invalid.for.non.mixin=''{0}'' is not an annotation or ''AppliesToFilter'' or an interface
-applies.to.annotation.declared.correctly.fix.remove.annotation=Remove ''@AppliesTo'' annotation
-applies.to.annotation.declared.correctly.fix.remove.class.reference=Remove ''{0}'' class reference
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step1.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step1.txt b/tutorials/composites/src/docs/step1.txt
index df8ce5c..fce9a72 100644
--- a/tutorials/composites/src/docs/step1.txt
+++ b/tutorials/composites/src/docs/step1.txt
@@ -27,7 +27,7 @@ Composite Oriented application. Here is the initial code of HelloWorld.
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial1/HelloWorld.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial1/HelloWorld.java
tag=initial
----
@@ -57,28 +57,28 @@ If you have successfully completed the task, you should end up with the followin
*HelloWorld.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial2/HelloWorld.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial2/HelloWorld.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial2/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial2/HelloWorldState.java
tag=solution
----
*HelloWorldBehaviour.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial2/HelloWorldBehaviour.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial2/HelloWorldBehaviour.java
tag=solution
----
*HelloWorldMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial2/HelloWorldMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial2/HelloWorldMixin.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step2.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step2.txt b/tutorials/composites/src/docs/step2.txt
index 1268ce1..eb26138 100644
--- a/tutorials/composites/src/docs/step2.txt
+++ b/tutorials/composites/src/docs/step2.txt
@@ -34,7 +34,7 @@ checks in the Mixin. If a null value is passed in an exception will be thrown by
Steps for this tutorial:
-- Create an interface that extends the domain interface HelloWorld and org.qi4j.api.composite.TransientComposite.
+- Create an interface that extends the domain interface +HelloWorld+ and +org.apache.zest.api.composite.TransientComposite+.
- Add a @Mixins annotation to it with the name of the Mixin as argument.
== Solution ==
@@ -48,14 +48,14 @@ These ones remain unchanged:
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial3/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial3/HelloWorldComposite.java
tag=solution
----
*HelloWorldMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial2/HelloWorldMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial2/HelloWorldMixin.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step3.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step3.txt b/tutorials/composites/src/docs/step3.txt
index 3522898..e87014e 100644
--- a/tutorials/composites/src/docs/step3.txt
+++ b/tutorials/composites/src/docs/step3.txt
@@ -40,35 +40,35 @@ Only *HelloWorld.java* remains unchanged.
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial4/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial4/HelloWorldComposite.java
tag=solution
----
*HelloWorldBehaviour.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial4/HelloWorldBehaviour.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial4/HelloWorldBehaviour.java
tag=solution
----
*HelloWorldBehaviourMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial4/HelloWorldBehaviourMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial4/HelloWorldBehaviourMixin.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial4/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial4/HelloWorldState.java
tag=solution
----
*HelloWorldStateMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial4/HelloWorldStateMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial4/HelloWorldStateMixin.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step4.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step4.txt b/tutorials/composites/src/docs/step4.txt
index d940443..ed77e6a 100644
--- a/tutorials/composites/src/docs/step4.txt
+++ b/tutorials/composites/src/docs/step4.txt
@@ -63,14 +63,14 @@ These ones remain unchanged:
*HelloWorldBehaviourMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial5/HelloWorldBehaviourMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial5/HelloWorldBehaviourMixin.java
tag=solution
----
*HelloWorldBehaviourConcern.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial5/HelloWorldBehaviourConcern.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial5/HelloWorldBehaviourConcern.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step5.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step5.txt b/tutorials/composites/src/docs/step5.txt
index 054d1ad..9e4dac5 100644
--- a/tutorials/composites/src/docs/step5.txt
+++ b/tutorials/composites/src/docs/step5.txt
@@ -66,28 +66,28 @@ These ones remain unchanged:
*HelloWorldBehaviour.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial6/HelloWorldBehaviour.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial6/HelloWorldBehaviour.java
tag=solution
----
*HelloWorldBehaviourMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial6/HelloWorldBehaviourMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial6/HelloWorldBehaviourMixin.java
tag=solution
----
*HelloWorldBehaviourConcern.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial6/HelloWorldBehaviourConcern.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial6/HelloWorldBehaviourConcern.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial6/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial6/HelloWorldState.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step6.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step6.txt b/tutorials/composites/src/docs/step6.txt
index 4ba88e5..136f36a 100644
--- a/tutorials/composites/src/docs/step6.txt
+++ b/tutorials/composites/src/docs/step6.txt
@@ -62,28 +62,28 @@ These ones remain unchanged:
*HelloWorldBehaviour.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial7/HelloWorldBehaviour.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial7/HelloWorldBehaviour.java
tag=solution
----
*HelloWorldBehaviourSideEffect.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial7/HelloWorldBehaviourSideEffect.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial7/HelloWorldBehaviourSideEffect.java
tag=solution
----
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial7/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial7/HelloWorldComposite.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial7/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial7/HelloWorldState.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step7.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step7.txt b/tutorials/composites/src/docs/step7.txt
index bdec58a..98fb3bd 100644
--- a/tutorials/composites/src/docs/step7.txt
+++ b/tutorials/composites/src/docs/step7.txt
@@ -80,28 +80,28 @@ Theses ones are deleted:
*HelloWorldBehaviourMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial8/HelloWorldBehaviourMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial8/HelloWorldBehaviourMixin.java
tag=solution
----
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial8/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial8/HelloWorldComposite.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial8/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial8/HelloWorldState.java
tag=solution
----
*HelloWorldStateMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial8/HelloWorldStateMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial8/HelloWorldStateMixin.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step8.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step8.txt b/tutorials/composites/src/docs/step8.txt
index 90225ce..11e0752 100644
--- a/tutorials/composites/src/docs/step8.txt
+++ b/tutorials/composites/src/docs/step8.txt
@@ -60,21 +60,21 @@ These ones remain unchanged:
*GenericPropertyMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial9/GenericPropertyMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial9/GenericPropertyMixin.java
tag=solution
----
*HelloWorldBehaviourMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial9/HelloWorldBehaviourMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial9/HelloWorldBehaviourMixin.java
tag=solution
----
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial9/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial9/HelloWorldComposite.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/composites/src/docs/step9.txt
----------------------------------------------------------------------
diff --git a/tutorials/composites/src/docs/step9.txt b/tutorials/composites/src/docs/step9.txt
index 6e6047f..0108bab 100644
--- a/tutorials/composites/src/docs/step9.txt
+++ b/tutorials/composites/src/docs/step9.txt
@@ -65,20 +65,20 @@ If you have successfully completed the task, you should end up with the followin
*HelloWorldComposite.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial10/HelloWorldComposite.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial10/HelloWorldComposite.java
tag=solution
----
*HelloWorldMixin.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial10/HelloWorldMixin.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial10/HelloWorldMixin.java
tag=solution
----
*HelloWorldState.java*
[snippet,java]
----
-source=tutorials/composites/src/main/java/org/qi4j/tutorials/composites/tutorial10/HelloWorldState.java
+source=tutorials/composites/src/main/java/org/apache/zest/tutorials/composites/tutorial10/HelloWorldState.java
tag=solution
----
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/src/docs/qi4j-cop.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/src/docs/qi4j-cop.txt b/tutorials/introduction/src/docs/qi4j-cop.txt
deleted file mode 100644
index 0726ab8..0000000
--- a/tutorials/introduction/src/docs/qi4j-cop.txt
+++ /dev/null
@@ -1,22 +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.
-///////////////////////////////////////////////////////////////
-
-[[qi4j-cop,COP with Java and Zest™]]
-= COP with Java and Zest™ =
-
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/src/docs/state-modeling.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/src/docs/state-modeling.txt b/tutorials/introduction/src/docs/state-modeling.txt
index 0c5ec82..5a4aea1 100644
--- a/tutorials/introduction/src/docs/state-modeling.txt
+++ b/tutorials/introduction/src/docs/state-modeling.txt
@@ -48,7 +48,7 @@ Here's an example of how you could define an EntityComposite:
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/StateModelingDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/StateModelingDocs.java
tag=intro1
-----------
@@ -72,7 +72,7 @@ context instead of classes you would probably do something like this instead:
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/StateModelingDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/StateModelingDocs.java
tag=roles
-----------
@@ -108,7 +108,7 @@ checks when they are updated. What you want are ValueComposites:
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/StateModelingDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/StateModelingDocs.java
tag=values
-----------
@@ -142,7 +142,7 @@ you write role mixins which map domain methods to that internal state. Here's an
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/StateModelingDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/StateModelingDocs.java
tag=private
-----------
@@ -171,7 +171,7 @@ To end with, here's a sample of how some other state modeling concepts can be ex
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/StateModelingDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/StateModelingDocs.java
tag=more
-----------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/src/docs/whats-an-object.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/src/docs/whats-an-object.txt b/tutorials/introduction/src/docs/whats-an-object.txt
index 11bb20d..2a8cd05 100644
--- a/tutorials/introduction/src/docs/whats-an-object.txt
+++ b/tutorials/introduction/src/docs/whats-an-object.txt
@@ -90,7 +90,7 @@ This leads us to this typical implementation of an Entity
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/WhatsAnObjectDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/WhatsAnObjectDocs.java
tag=wo1
-----------
@@ -102,7 +102,7 @@ in the mixins.
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/WhatsAnObjectDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/WhatsAnObjectDocs.java
tag=wo2
-----------
@@ -114,7 +114,7 @@ interface:
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/WhatsAnObjectDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/WhatsAnObjectDocs.java
tag=wo3
-----------
@@ -122,7 +122,7 @@ This lets us see the totality of all the state that the Entity has, and can be u
[snippet,java]
-----------
-source=tutorials/introduction/src/main/java/org/qi4j/demo/intro/WhatsAnObjectDocs.java
+source=tutorials/introduction/src/main/java/org/apache/zest/demo/intro/WhatsAnObjectDocs.java
tag=wo4
-----------
@@ -199,5 +199,5 @@ on this page.
That's it. Well done if you've read this far :-)
-Comments and thoughts to qi4j-dev forum at Google Groups on this are highly appreciated. This is very very important topics,
-and crucial to understanding/explaining why COP/Zest™ is so great! :-)
+Comments and thoughts to dev@zest.apache.org mailing list on this are highly appreciated. This is very very important
+topics, and crucial to understanding/explaining why COP/Zest™ is so great! :-)
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/src/docs/zest-cop.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/src/docs/zest-cop.txt b/tutorials/introduction/src/docs/zest-cop.txt
new file mode 100644
index 0000000..fb06080
--- /dev/null
+++ b/tutorials/introduction/src/docs/zest-cop.txt
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////
+ * 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.
+///////////////////////////////////////////////////////////////
+
+[[zest-cop,COP with Java and Zest™]]
+= COP with Java and Zest™ =
+
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/tenminutes/src/docs/ten-minutes.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/tenminutes/src/docs/ten-minutes.txt b/tutorials/introduction/tenminutes/src/docs/ten-minutes.txt
index dc86b5f..0d8c4ac 100644
--- a/tutorials/introduction/tenminutes/src/docs/ten-minutes.txt
+++ b/tutorials/introduction/tenminutes/src/docs/ten-minutes.txt
@@ -46,7 +46,7 @@ See the <<howto-depend-on-zest>> tutorial for details.
Composition is done with Java interfaces and Annotations. Example;
[snippet,java]
-----------
-source=tutorials/introduction/tenminutes/src/main/java/org/qi4j/demo/tenminute/OrderEntity.java
+source=tutorials/introduction/tenminutes/src/main/java/org/apache/zest/demo/tenminute/OrderEntity.java
tag=mainClass
-----------
@@ -56,7 +56,7 @@ methods that they declare, for instance;
[snippet,java]
-----------
-source=tutorials/introduction/tenminutes/src/main/java/org/qi4j/demo/tenminute/InventoryConcern.java
+source=tutorials/introduction/tenminutes/src/main/java/org/apache/zest/demo/tenminute/InventoryConcern.java
tag=allClass
-----------
@@ -80,7 +80,7 @@ will execute after the Constraints, Concerns and Mixins. We add the SideEffect t
[snippet,java]
-----------
-source=tutorials/introduction/tenminutes/src/main/java/org/qi4j/demo/tenminute/OrderEntity.java
+source=tutorials/introduction/tenminutes/src/main/java/org/apache/zest/demo/tenminute/OrderEntity.java
tag=sideEffect
-----------
@@ -88,7 +88,7 @@ The SideEffect implementation is fairly simple.
[snippet,java]
-----------
-source=tutorials/introduction/tenminutes/src/main/java/org/qi4j/demo/tenminute/MailNotifySideEffect.java
+source=tutorials/introduction/tenminutes/src/main/java/org/apache/zest/demo/tenminute/MailNotifySideEffect.java
tag=allClass
-----------
The MailService is dependency injected, as we have seen before.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/thirtyminutes/src/docs/thirty-minutes.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/thirtyminutes/src/docs/thirty-minutes.txt b/tutorials/introduction/thirtyminutes/src/docs/thirty-minutes.txt
index 3913a9f..ff2fa34 100644
--- a/tutorials/introduction/thirtyminutes/src/docs/thirty-minutes.txt
+++ b/tutorials/introduction/thirtyminutes/src/docs/thirty-minutes.txt
@@ -41,7 +41,7 @@ See the <<howto-depend-on-zest>> tutorial for details.
We will go back to the OrderEntity example;
[snippet,java]
-----------
-source=tutorials/introduction/tenminutes/src/main/java/org/qi4j/demo/tenminute/OrderEntity.java
+source=tutorials/introduction/tenminutes/src/main/java/org/apache/zest/demo/tenminute/OrderEntity.java
tag=mainClass
-----------
@@ -52,7 +52,7 @@ First we need to create (or also find in a library) the mechanics of the audit t
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=2
-----------
@@ -66,7 +66,7 @@ We also need a Concern to hang into the methods of the Order interface.
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=3
-----------
@@ -81,7 +81,7 @@ the re-use value. It could look like this;
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=4
-----------
@@ -93,7 +93,7 @@ Finally, we need to declare the Concern in the OrderEntity;
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=5
-----------
@@ -115,7 +115,7 @@ Let's say that we want to find a particular Order from its SequenceNumber.
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=6
-----------
@@ -132,7 +132,7 @@ Another example,
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=7
-----------
@@ -144,7 +144,7 @@ that has made an Order in the last 30 days;
[snippet,java]
-----------
-source=tutorials/introduction/thirtyminutes/src/main/java/org/qi4j/demo/thirtyminutes/ThirtyMinutesDocs.java
+source=tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java
tag=8
-----------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/introduction/twominutes/src/docs/two-minutes.txt
----------------------------------------------------------------------
diff --git a/tutorials/introduction/twominutes/src/docs/two-minutes.txt b/tutorials/introduction/twominutes/src/docs/two-minutes.txt
index be502d2..d1ad443 100644
--- a/tutorials/introduction/twominutes/src/docs/two-minutes.txt
+++ b/tutorials/introduction/twominutes/src/docs/two-minutes.txt
@@ -43,7 +43,7 @@ But we also need an implementation for Speaker, which we declare here via the `@
[snippet,java]
-----------
-source=tutorials/introduction/twominutes/src/main/java/org/qi4j/demo/twominute/Speaker.java
+source=tutorials/introduction/twominutes/src/main/java/org/apache/zest/demo/twominute/Speaker.java
tag=documentation
-----------
@@ -52,7 +52,7 @@ In this case, return a String with the content "Hello, World!".
[snippet,java]
-----------
-source=tutorials/introduction/twominutes/src/main/java/org/qi4j/demo/twominute/SpeakerMixin.java
+source=tutorials/introduction/twominutes/src/main/java/org/apache/zest/demo/twominute/SpeakerMixin.java
tag=documentation
-----------
@@ -60,7 +60,7 @@ So far so good. We now need to make this into something that can run. This can b
[snippet,java]
-----------
-source=tutorials/introduction/twominutes/src/main/java/org/qi4j/demo/twominute/Main.java
+source=tutorials/introduction/twominutes/src/main/java/org/apache/zest/demo/twominute/Main.java
tag=documentation
-----------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/fc41bb18/tutorials/services/src/docs/step3.txt
----------------------------------------------------------------------
diff --git a/tutorials/services/src/docs/step3.txt b/tutorials/services/src/docs/step3.txt
index f81f3e1..e4d0f6f 100644
--- a/tutorials/services/src/docs/step3.txt
+++ b/tutorials/services/src/docs/step3.txt
@@ -41,7 +41,7 @@ Steps to do.
- Delete the LibraryActivator and remove the @Activators annotation from the LibraryService and the corresponding createInitialData method.
- In the LibraryMixin remove the member injection of the ValueBuilderFactory, and instead inject the ValueBuilderFactory in the constructor.
- Inject the LibraryConfiguration via the constructor. The injection scope is @This.
-- Create a resource called LibraryService.properties and place it in the directory org/qi4j/tutorials/services/step4 in the classpath (for instance, src/main/resources ). Put something like this in:
+- Create a resource called LibraryService.properties and place it in the directory +org/apache/zest/tutorials/services/step4+ in the classpath (for instance, src/main/resources ). Put something like this in:
titles=Domain Driven Design, Pragmatic Programmer, Extreme Programming Explained
authors=Eric Evans, Andy Hunt, Kent Beck
#Number of copies of each book.