Commit 93c20a20604d18d50bebf5f138e04590c42b395d

Authored by Cleverson Sacramento
1 parent 509e9461
Exists in master

FWK-217: Movendo as anotações do Managment para o pacote correto

Task-Url: https://demoiselle.atlassian.net/browse/FWK-217
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/ManagedOperation.java
@@ -1,78 +0,0 @@ @@ -1,78 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -import java.lang.annotation.Documented;  
40 -import java.lang.annotation.ElementType;  
41 -import java.lang.annotation.Retention;  
42 -import java.lang.annotation.RetentionPolicy;  
43 -import java.lang.annotation.Target;  
44 -  
45 -import javax.enterprise.util.Nonbinding;  
46 -  
47 -import br.gov.frameworkdemoiselle.DemoiselleException;  
48 -  
49 -/**  
50 - * <p>  
51 - * Indicates that a method is a <b>managed operation</b>, meaning you can manage some aspect of the application by  
52 - * calling it from a external management client.  
53 - * </p>  
54 - * <p>  
55 - * This annotation can't be used together with {@link ManagedProperty}, doing so will throw a  
56 - * {@link DemoiselleException}.  
57 - * </p>  
58 - *  
59 - * @author SERPRO  
60 - */  
61 -@Documented  
62 -@Target({ ElementType.METHOD })  
63 -@Retention(RetentionPolicy.RUNTIME)  
64 -public @interface ManagedOperation {  
65 -  
66 - /**  
67 - * Description that will be used to publish the operation to clients. Defaults to an empty description.  
68 - */  
69 - @Nonbinding  
70 - String description() default "";  
71 -  
72 - /**  
73 - * Type of operation. Defaults to {@link OperationType#UNKNOWN}.  
74 - */  
75 - @Nonbinding  
76 - OperationType type() default OperationType.UNKNOWN;  
77 -  
78 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/ManagedProperty.java
@@ -1,109 +0,0 @@ @@ -1,109 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -import java.lang.annotation.Documented;  
40 -import java.lang.annotation.ElementType;  
41 -import java.lang.annotation.Retention;  
42 -import java.lang.annotation.RetentionPolicy;  
43 -import java.lang.annotation.Target;  
44 -  
45 -import javax.enterprise.util.Nonbinding;  
46 -  
47 -/**  
48 - * <p>  
49 - * Indicates that a field must be exposed as a property to management clients.  
50 - * </p>  
51 - * <p>  
52 - * The property will be writable if there's a public setter method declared for the field and readable if there's a  
53 - * getter method. You can override this behaviour by passing a value to the {@link #accessLevel()} property.  
54 - * </p>  
55 - * <p>  
56 - * It's a runtime error to annotate a field with no getter and no setter method.  
57 - * </p>  
58 - * <p>  
59 - * It's also a runtime error to declare a field as a property and one or both of it's getter and setter methods as an  
60 - * operation using the {@link ManagedOperation} annotation.  
61 - * </p>  
62 - *  
63 - * @author SERPRO  
64 - */  
65 -@Documented  
66 -@Target({ ElementType.FIELD })  
67 -@Retention(RetentionPolicy.RUNTIME)  
68 -public @interface ManagedProperty {  
69 -  
70 - /**  
71 - * @return The description of this property exposed to management clients.  
72 - */  
73 - @Nonbinding  
74 - String description() default "";  
75 -  
76 - @Nonbinding  
77 - ManagedPropertyAccess accessLevel() default ManagedPropertyAccess.DEFAULT;  
78 -  
79 - /**  
80 - * <p>  
81 - * Access level of a managed property.  
82 - * </p>  
83 - * <p>  
84 - * These values only affect access via external management clients, the application is still able to inject and use  
85 - * the normal visibility of the property by Java standards.  
86 - * </p>  
87 - *  
88 - * @author serpro  
89 - */  
90 - enum ManagedPropertyAccess {  
91 -  
92 - /**  
93 - * Restricts a property to be only readable even if a setter method exists.  
94 - */  
95 - READ_ONLY  
96 -  
97 - /**  
98 - * Restricts a property to be only writeable even if a getter method exists.  
99 - */  
100 - , WRITE_ONLY  
101 -  
102 - /**  
103 - * Says that the read or write access will be determined by the presence of a getter method  
104 - * <code>(getProperty())</code> or setter method <code>(setProperty(propertyValue))</code> for a property.  
105 - */  
106 - , DEFAULT;  
107 - }  
108 -  
109 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/OperationParameter.java
@@ -1,75 +0,0 @@ @@ -1,75 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -import java.lang.annotation.Documented;  
40 -import java.lang.annotation.ElementType;  
41 -import java.lang.annotation.Retention;  
42 -import java.lang.annotation.RetentionPolicy;  
43 -import java.lang.annotation.Target;  
44 -  
45 -import javax.enterprise.util.Nonbinding;  
46 -  
47 -/**  
48 - * <p>  
49 - * Optional annotation to write additional detail about an operation's parameter.  
50 - * </p>  
51 - * <p>  
52 - * This annotation is ignored for non-operation methods.  
53 - * </p>  
54 - *  
55 - * @author SERPRO  
56 - */  
57 -@Documented  
58 -@Target({ ElementType.PARAMETER })  
59 -@Retention(RetentionPolicy.RUNTIME)  
60 -public @interface OperationParameter {  
61 -  
62 - /**  
63 - * AmbiguousQualifier that will be used to publish this operation's parameter to clients.  
64 - */  
65 - @Nonbinding  
66 - String name();  
67 -  
68 - /**  
69 - * Optional description that will be used to publish this operation's parameter to clients. Defaults to an empty  
70 - * description.  
71 - */  
72 - @Nonbinding  
73 - String description() default "";  
74 -  
75 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/OperationType.java
@@ -1,78 +0,0 @@ @@ -1,78 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -  
40 -/**  
41 - * <p>  
42 - * Define the operation type for an operation inside a ManagementController class.  
43 - * </p>  
44 - * <p>  
45 - * This is an optional annotation and it's significanse will change based on the management extension used. Most  
46 - * extensions will just publish this information to the client so it can better show to the user the inner workings of  
47 - * the annotated operation.  
48 - * </p>  
49 - *  
50 - * @author SERPRO  
51 - */  
52 -public enum OperationType {  
53 -  
54 - /**  
55 - * ManagedOperation is write-only, it causes the application to change some of it's behaviour but doesn't return any  
56 - * kind of information  
57 - */  
58 - ACTION,  
59 -  
60 - /**  
61 - * ManagedOperation is read-only, it will operate over data provided by the application and return some information,  
62 - * but will not change the application in any way.  
63 - */  
64 - INFO,  
65 -  
66 - /**  
67 - * ManagedOperation is read-write, it will both change the way the application work and return some information  
68 - * regarding the result of the operation.  
69 - */  
70 - ACTION_INFO,  
71 -  
72 - /**  
73 - * The effect of calling this operation is unknown. This is the default type and if this type is assigned to an  
74 - * operation, the user must rely on the {@link ManagedOperation#description()} attribute to learn about how the  
75 - * operation works.  
76 - */  
77 - UNKNOWN  
78 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/StaticScoped.java
@@ -1,61 +0,0 @@ @@ -1,61 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -import static java.lang.annotation.ElementType.FIELD;  
40 -import static java.lang.annotation.ElementType.METHOD;  
41 -import static java.lang.annotation.ElementType.TYPE;  
42 -import static java.lang.annotation.RetentionPolicy.RUNTIME;  
43 -  
44 -import java.lang.annotation.Inherited;  
45 -import java.lang.annotation.Retention;  
46 -import java.lang.annotation.Target;  
47 -  
48 -import javax.enterprise.context.NormalScope;  
49 -  
50 -/**  
51 - *This scope stores the classes just as if it was a static attribute.  
52 - *  
53 - * @author SERPRO  
54 - */  
55 -@Inherited  
56 -@Target({ METHOD, TYPE, FIELD })  
57 -@Retention(RUNTIME)  
58 -@NormalScope  
59 -public @interface StaticScoped {  
60 -  
61 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/ViewScoped.java
@@ -1,61 +0,0 @@ @@ -1,61 +0,0 @@
1 -/*  
2 - * Demoiselle Framework  
3 - * Copyright (C) 2010 SERPRO  
4 - * ----------------------------------------------------------------------------  
5 - * This file is part of Demoiselle Framework.  
6 - *  
7 - * Demoiselle Framework is free software; you can redistribute it and/or  
8 - * modify it under the terms of the GNU Lesser General Public License version 3  
9 - * as published by the Free Software Foundation.  
10 - *  
11 - * This program is distributed in the hope that it will be useful,  
12 - * but WITHOUT ANY WARRANTY; without even the implied warranty of  
13 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
14 - * GNU General Public License for more details.  
15 - *  
16 - * You should have received a copy of the GNU Lesser General Public License version 3  
17 - * along with this program; if not, see <http://www.gnu.org/licenses/>  
18 - * or write to the Free Software Foundation, Inc., 51 Franklin Street,  
19 - * Fifth Floor, Boston, MA 02110-1301, USA.  
20 - * ----------------------------------------------------------------------------  
21 - * Este arquivo é parte do Framework Demoiselle.  
22 - *  
23 - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou  
24 - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação  
25 - * do Software Livre (FSF).  
26 - *  
27 - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA  
28 - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou  
29 - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português  
30 - * para maiores detalhes.  
31 - *  
32 - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título  
33 - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>  
34 - * ou escreva para a Fundação do Software Livre (FSF) Inc.,  
35 - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.  
36 - */  
37 -package br.gov.frameworkdemoiselle.annotation;  
38 -  
39 -import static java.lang.annotation.ElementType.FIELD;  
40 -import static java.lang.annotation.ElementType.METHOD;  
41 -import static java.lang.annotation.ElementType.TYPE;  
42 -import static java.lang.annotation.RetentionPolicy.RUNTIME;  
43 -  
44 -import java.lang.annotation.Inherited;  
45 -import java.lang.annotation.Retention;  
46 -import java.lang.annotation.Target;  
47 -  
48 -import javax.enterprise.context.NormalScope;  
49 -  
50 -/**  
51 - * This scope maintains the context for viewed page; when the viewed page change, the data will be lost.  
52 - *  
53 - * @author SERPRO  
54 - */  
55 -@Inherited  
56 -@Target({ METHOD, TYPE, FIELD })  
57 -@Retention(RUNTIME)  
58 -@NormalScope(passivating = true)  
59 -public @interface ViewScoped {  
60 -  
61 -}  
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/ManagedOperation.java 0 → 100644
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.management;
  38 +
  39 +import java.lang.annotation.Documented;
  40 +import java.lang.annotation.ElementType;
  41 +import java.lang.annotation.Retention;
  42 +import java.lang.annotation.RetentionPolicy;
  43 +import java.lang.annotation.Target;
  44 +
  45 +import javax.enterprise.util.Nonbinding;
  46 +
  47 +import br.gov.frameworkdemoiselle.DemoiselleException;
  48 +
  49 +/**
  50 + * <p>
  51 + * Indicates that a method is a <b>managed operation</b>, meaning you can manage some aspect of the application by
  52 + * calling it from a external management client.
  53 + * </p>
  54 + * <p>
  55 + * This annotation can't be used together with {@link ManagedProperty}, doing so will throw a
  56 + * {@link DemoiselleException}.
  57 + * </p>
  58 + *
  59 + * @author SERPRO
  60 + */
  61 +@Documented
  62 +@Target({ ElementType.METHOD })
  63 +@Retention(RetentionPolicy.RUNTIME)
  64 +public @interface ManagedOperation {
  65 +
  66 + /**
  67 + * Description that will be used to publish the operation to clients. Defaults to an empty description.
  68 + */
  69 + @Nonbinding
  70 + String description() default "";
  71 +
  72 + /**
  73 + * Type of operation. Defaults to {@link OperationType#UNKNOWN}.
  74 + */
  75 + @Nonbinding
  76 + OperationType type() default OperationType.UNKNOWN;
  77 +
  78 +}
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/ManagedProperty.java 0 → 100644
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.management;
  38 +
  39 +import java.lang.annotation.Documented;
  40 +import java.lang.annotation.ElementType;
  41 +import java.lang.annotation.Retention;
  42 +import java.lang.annotation.RetentionPolicy;
  43 +import java.lang.annotation.Target;
  44 +
  45 +import javax.enterprise.util.Nonbinding;
  46 +
  47 +/**
  48 + * <p>
  49 + * Indicates that a field must be exposed as a property to management clients.
  50 + * </p>
  51 + * <p>
  52 + * The property will be writable if there's a public setter method declared for the field and readable if there's a
  53 + * getter method. You can override this behaviour by passing a value to the {@link #accessLevel()} property.
  54 + * </p>
  55 + * <p>
  56 + * It's a runtime error to annotate a field with no getter and no setter method.
  57 + * </p>
  58 + * <p>
  59 + * It's also a runtime error to declare a field as a property and one or both of it's getter and setter methods as an
  60 + * operation using the {@link ManagedOperation} annotation.
  61 + * </p>
  62 + *
  63 + * @author SERPRO
  64 + */
  65 +@Documented
  66 +@Target({ ElementType.FIELD })
  67 +@Retention(RetentionPolicy.RUNTIME)
  68 +public @interface ManagedProperty {
  69 +
  70 + /**
  71 + * @return The description of this property exposed to management clients.
  72 + */
  73 + @Nonbinding
  74 + String description() default "";
  75 +
  76 + @Nonbinding
  77 + ManagedPropertyAccess accessLevel() default ManagedPropertyAccess.DEFAULT;
  78 +
  79 + /**
  80 + * <p>
  81 + * Access level of a managed property.
  82 + * </p>
  83 + * <p>
  84 + * These values only affect access via external management clients, the application is still able to inject and use
  85 + * the normal visibility of the property by Java standards.
  86 + * </p>
  87 + *
  88 + * @author serpro
  89 + */
  90 + enum ManagedPropertyAccess {
  91 +
  92 + /**
  93 + * Restricts a property to be only readable even if a setter method exists.
  94 + */
  95 + READ_ONLY
  96 +
  97 + /**
  98 + * Restricts a property to be only writeable even if a getter method exists.
  99 + */
  100 + , WRITE_ONLY
  101 +
  102 + /**
  103 + * Says that the read or write access will be determined by the presence of a getter method
  104 + * <code>(getProperty())</code> or setter method <code>(setProperty(propertyValue))</code> for a property.
  105 + */
  106 + , DEFAULT;
  107 + }
  108 +
  109 +}
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/OperationParameter.java 0 → 100644
@@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.management;
  38 +
  39 +import java.lang.annotation.Documented;
  40 +import java.lang.annotation.ElementType;
  41 +import java.lang.annotation.Retention;
  42 +import java.lang.annotation.RetentionPolicy;
  43 +import java.lang.annotation.Target;
  44 +
  45 +import javax.enterprise.util.Nonbinding;
  46 +
  47 +/**
  48 + * <p>
  49 + * Optional annotation to write additional detail about an operation's parameter.
  50 + * </p>
  51 + * <p>
  52 + * This annotation is ignored for non-operation methods.
  53 + * </p>
  54 + *
  55 + * @author SERPRO
  56 + */
  57 +@Documented
  58 +@Target({ ElementType.PARAMETER })
  59 +@Retention(RetentionPolicy.RUNTIME)
  60 +public @interface OperationParameter {
  61 +
  62 + /**
  63 + * AmbiguousQualifier that will be used to publish this operation's parameter to clients.
  64 + */
  65 + @Nonbinding
  66 + String name();
  67 +
  68 + /**
  69 + * Optional description that will be used to publish this operation's parameter to clients. Defaults to an empty
  70 + * description.
  71 + */
  72 + @Nonbinding
  73 + String description() default "";
  74 +
  75 +}
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/OperationType.java 0 → 100644
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
  1 +/*
  2 + * Demoiselle Framework
  3 + * Copyright (C) 2010 SERPRO
  4 + * ----------------------------------------------------------------------------
  5 + * This file is part of Demoiselle Framework.
  6 + *
  7 + * Demoiselle Framework is free software; you can redistribute it and/or
  8 + * modify it under the terms of the GNU Lesser General Public License version 3
  9 + * as published by the Free Software Foundation.
  10 + *
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
  15 + *
  16 + * You should have received a copy of the GNU Lesser General Public License version 3
  17 + * along with this program; if not, see <http://www.gnu.org/licenses/>
  18 + * or write to the Free Software Foundation, Inc., 51 Franklin Street,
  19 + * Fifth Floor, Boston, MA 02110-1301, USA.
  20 + * ----------------------------------------------------------------------------
  21 + * Este arquivo é parte do Framework Demoiselle.
  22 + *
  23 + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  24 + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  25 + * do Software Livre (FSF).
  26 + *
  27 + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  28 + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  29 + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  30 + * para maiores detalhes.
  31 + *
  32 + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  33 + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  34 + * ou escreva para a Fundação do Software Livre (FSF) Inc.,
  35 + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  36 + */
  37 +package br.gov.frameworkdemoiselle.management;
  38 +
  39 +
  40 +/**
  41 + * <p>
  42 + * Define the operation type for an operation inside a ManagementController class.
  43 + * </p>
  44 + * <p>
  45 + * This is an optional annotation and it's significanse will change based on the management extension used. Most
  46 + * extensions will just publish this information to the client so it can better show to the user the inner workings of
  47 + * the annotated operation.
  48 + * </p>
  49 + *
  50 + * @author SERPRO
  51 + */
  52 +public enum OperationType {
  53 +
  54 + /**
  55 + * ManagedOperation is write-only, it causes the application to change some of it's behaviour but doesn't return any
  56 + * kind of information
  57 + */
  58 + ACTION,
  59 +
  60 + /**
  61 + * ManagedOperation is read-only, it will operate over data provided by the application and return some information,
  62 + * but will not change the application in any way.
  63 + */
  64 + INFO,
  65 +
  66 + /**
  67 + * ManagedOperation is read-write, it will both change the way the application work and return some information
  68 + * regarding the result of the operation.
  69 + */
  70 + ACTION_INFO,
  71 +
  72 + /**
  73 + * The effect of calling this operation is unknown. This is the default type and if this type is assigned to an
  74 + * operation, the user must rely on the {@link ManagedOperation#description()} attribute to learn about how the
  75 + * operation works.
  76 + */
  77 + UNKNOWN
  78 +}