[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16585569#comment-16585569 ] Matej Novotny commented on DELTASPIKE-1338: --- Well, I am not debating the usefulness of such a rule, just saying that there will be failures because Weld works just like spec stated it back there. > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16580810#comment-16580810 ] Gerhard Petracek commented on DELTASPIKE-1338: -- @[~manovotn]: if you mean that a #veto isn't allowed for alternative beans then i agree with [~struberg] (that such a rule is useless). in any case the "main" use-case uses @Priority, we just can't use it in the test-suite currently, because the min. spec. level is still 1.0. > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16579466#comment-16579466 ] Matej Novotny commented on DELTASPIKE-1338: --- Tests are failing with {{Weld2}} profile because according to CDI 1.2 spec you cannot have an enabled alternative declared in {{beans.xml}} which is not actually a bean. This was later on changed for CDI 2.0 (which is why \{{Weld3}} profile works just fine), or reverted to what it was prior to 1.2, if you like. The change was covered in https://issues.jboss.org/browse/CDI-627 > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16445735#comment-16445735 ] ASF subversion and git services commented on DELTASPIKE-1338: - Commit 3f219d6fbf87186edcd934848bff80ae608a6af7 in deltaspike's branch refs/heads/deltaspike-1.8.x from [~gpetracek] [ https://git-wip-us.apache.org/repos/asf?p=deltaspike.git;h=3f219d6 ] DELTASPIKE-1338 support for ClassFilter per @TestControl test > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16445736#comment-16445736 ] ASF subversion and git services commented on DELTASPIKE-1338: - Commit 9429dd07ce38359d905b30f86a5cfbe9a108841b in deltaspike's branch refs/heads/deltaspike-1.8.x from [~gpetracek] [ https://git-wip-us.apache.org/repos/asf?p=deltaspike.git;h=9429dd0 ] DELTASPIKE-1338 tests for @TestControl#classFilter > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16445711#comment-16445711 ] ASF subversion and git services commented on DELTASPIKE-1338: - Commit 6475f49ce82cf568430792b81b58117e41423b17 in deltaspike's branch refs/heads/master from [~gpetracek] [ https://git-wip-us.apache.org/repos/asf?p=deltaspike.git;h=6475f49 ] DELTASPIKE-1338 tests for @TestControl#classFilter > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DELTASPIKE-1338) support class-filter per test
[ https://issues.apache.org/jira/browse/DELTASPIKE-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16445709#comment-16445709 ] ASF subversion and git services commented on DELTASPIKE-1338: - Commit 1c187042577258360680de517151d748807ff6c8 in deltaspike's branch refs/heads/master from [~gpetracek] [ https://git-wip-us.apache.org/repos/asf?p=deltaspike.git;h=1c18704 ] DELTASPIKE-1338 support for ClassFilter per @TestControl test > support class-filter per test > - > > Key: DELTASPIKE-1338 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-1338 > Project: DeltaSpike > Issue Type: New Feature > Components: TestControl >Affects Versions: 1.8.1 >Reporter: Gerhard Petracek >Assignee: Gerhard Petracek >Priority: Major > Fix For: 1.8.2 > > > based on DELTASPIKE-1337 it should be possible to define a class-filter per > test. > it allows type-safe isolation for tests and with cdi 1.1+ e.g. to build > labeled-alternatives without text-based config. > a possible approach looks like: > {code:java} > @Retention(RUNTIME) > @Target(TYPE) > public @interface Labeled { > Class value(); > } > public abstract class AbstractLabeledAlternativeFilter implements ClassFilter > { > private final Class activeLabel; > protected AbstractLabeledAlternativeFilter(Class TestControl.Label> activeLabel) { > this.activeLabel = activeLabel; > } > @Override > public boolean isFiltered(Class targetClass) { > if (!targetClass.isAnnotationPresent(Alternative.class)) { > return false; > } > Labeled labeled = targetClass.getAnnotation(Labeled.class); > if (labeled == null) { > return false; > } > if (labeled.value().equals(activeLabel)) { > return false; > } > return true; > } > } > {code} > {code:java} > @Labeled(Label1Test.Label1.class) > @Alternative > @Priority(1) > public class MyLabeledAlternativeBean1 extends MyBean { /*...*/ } > @RunWith(CdiTestRunner.class) > @TestControl(activeAlternativeLabel = Label1Test.Label1.class, classFilter = > Label1Test.Label1Filter.class) > public class Label1Test { > @Inject > private MyBean myBean; > //tests > public static class Label1 implements TestControl.Label { > } > public static class Label1Filter extends AbstractLabeledAlternativeFilter > { > public Label1Filter() { > super(Label1.class); > } > } > } > {code} > besides that other custom concepts are possible as well (not even bound to > alternative-beans). -- This message was sent by Atlassian JIRA (v7.6.3#76005)