Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
- adjust testFullyDocumentedProcessor to correctly eval to false when needed
- Introduce the ability to deprecate a component
- Allow documentation to inform user about deprecation of a component
- This closes #1718

NIFI-391 - Add set/getDeprecationReson to DocumentedDTO and use it within DtoFactory'
  • Loading branch information
trixpan authored and mcgilman committed May 15, 2017
1 parent 3353865 commit d092551
Show file tree
Hide file tree
Showing 13 changed files with 536 additions and 70 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.nifi.annotation.documentation;

import org.apache.nifi.components.ConfigurableComponent;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Annotation that can be applied to a {@link org.apache.nifi.processor.Processor Processor},
* {@link org.apache.nifi.controller.ControllerService ControllerService}, or
* {@link org.apache.nifi.reporting.ReportingTask ReportingTask} in order to
* warn about the deprecation of the component. The deprecation warning is informational only
* and doesn't affect the processor run time behavior in any way
*/
@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface DeprecationNotice {
Class<? extends ConfigurableComponent>[] value() default {};

String[] classNames() default {};

String reason() default "";
}

Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class ControllerServiceDTO extends ComponentDTO {
private String state;
private Boolean persistsState;
private Boolean restricted;
private Boolean deprecated;
private Boolean isExtensionMissing;
private Boolean multipleVersionsAvailable;

Expand Down Expand Up @@ -154,6 +155,20 @@ public void setRestricted(Boolean restricted) {
this.restricted = restricted;
}

/**
* @return Whether the controller service has been deprecated.
*/
@ApiModelProperty(
value = "Whether the ontroller service has been deprecated."
)
public Boolean getDeprecated() {
return deprecated;
}

public void setDeprecated(Boolean deprecated) {
this.deprecated= deprecated;
}

/**
* @return whether the underlying extension is missing
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class DocumentedTypeDTO {
private List<ControllerServiceApiDTO> controllerServiceApis;
private String description;
private String usageRestriction;
private String deprecationReason;
private Set<String> tags;

/**
Expand Down Expand Up @@ -64,6 +65,21 @@ public void setUsageRestriction(String usageRestriction) {
this.usageRestriction = usageRestriction;
}

/**
* @return An optional description of why the usage of this component is deprecated
*/
@ApiModelProperty(
value = "The description of why the usage of this component is restricted."
)
public String getDeprecationReason() {
return deprecationReason;
}

public void setDeprecationReason(String deprecationReason) {
this.deprecationReason = deprecationReason;
}


/**
* @return The type is the fully-qualified name of a Java class
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class ProcessorDTO extends ComponentDTO {
private Boolean supportsBatching;
private Boolean persistsState;
private Boolean restricted;
private Boolean deprecated;
private Boolean isExtensionMissing;
private Boolean multipleVersionsAvailable;
private String inputRequirement;
Expand Down Expand Up @@ -200,6 +201,20 @@ public void setRestricted(Boolean restricted) {
this.restricted = restricted;
}

/**
* @return Whether the processor has been deprecated.
*/
@ApiModelProperty(
value = "Whether the processor has been deprecated."
)
public Boolean getDeprecated() {
return deprecated;
}

public void setDeprecated(Boolean deprecated) {
this.deprecated = deprecated;
}

/**
* @return the input requirement of this processor
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class ReportingTaskDTO extends ComponentDTO {
private String comments;
private Boolean persistsState;
private Boolean restricted;
private Boolean deprecated;
private Boolean isExtensionMissing;
private Boolean multipleVersionsAvailable;

Expand Down Expand Up @@ -153,6 +154,20 @@ public void setRestricted(Boolean restricted) {
this.restricted = restricted;
}

/**
* @return Whether the reporting task has been deprecated.
*/
@ApiModelProperty(
value = "Whether the reporting task has been deprecated."
)
public Boolean getDeprecated() {
return deprecated;
}

public void setDeprecated(Boolean deprecated) {
this.deprecated= deprecated;
}

/**
* @return whether the underlying extension is missing
*/
Expand Down
Loading

0 comments on commit d092551

Please sign in to comment.