Fixed undocumented parts of the payload and license API docs code
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
index 86eee87..892e1d4 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/BalanceSegmentSetApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -32,166 +50,166 @@
 
 public class BalanceSegmentSetApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-balancesegmentsets");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-balancesegmentsets");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp ( ) {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentCreateBalanceSegmentSet ( ) throws Exception {
+  @Test
+  public void documentCreateBalanceSegmentSet() throws Exception {
 
-        final Product product = createProduct();
+    final Product product = createProduct();
 
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(5, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(5, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 5)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", "ghi"));
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(5, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(5, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 5)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", "ghi"));
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/" +product.getIdentifier()+ "/balancesegmentsets/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(balanceSegmentSet)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-balance-segment-set", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance segment set's given name"),
-                                fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + "/balancesegmentsets/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(balanceSegmentSet)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-balance-segment-set", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Balance segment set's identifier"),
+                            fieldWithPath("segments").description("Balance segment set's given name"),
+                            fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
 
-    }
+  }
 
-    @Test
-    public void documentGetAllBalanceSegmentSets () throws Exception {
-        final Product product = createProduct();
+  @Test
+  public void documentGetAllBalanceSegmentSets() throws Exception {
+    final Product product = createProduct();
 
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", "you"));
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", "you"));
 
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
 
-        this.mockMvc.perform(get("/products/" +product.getIdentifier()+ "/balancesegmentsets/")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-all-balance-segment-sets", preprocessRequest(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("[]").description("An array of balance segment sets"),
-                                fieldWithPath("[].identifier").description("Balance segment set's identifier "),
-                                fieldWithPath("[].segments").description("Balance segment set's segments "),
-                                fieldWithPath("[].segmentIdentifiers").description("Balance segment set's segment identifier"))));
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/balancesegmentsets/")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-all-balance-segment-sets", preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("[]").description("An array of balance segment sets"),
+                            fieldWithPath("[].identifier").description("Balance segment set's identifier "),
+                            fieldWithPath("[].segments").description("Balance segment set's segments "),
+                            fieldWithPath("[].segmentIdentifiers").description("Balance segment set's segment identifier"))));
 
-    }
+  }
 
-    @Test
-    public void documentGetBalanceSegmentSet () throws Exception {
-        final Product product = createProduct();
+  @Test
+  public void documentGetBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
 
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", "you"));
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", "you"));
 
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
-        this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new BalanceSegmentSetEvent(product.getIdentifier(), balanceSegmentSet.getIdentifier()));
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
+    this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new BalanceSegmentSetEvent(product.getIdentifier(), balanceSegmentSet.getIdentifier()));
 
 
-        this.mockMvc.perform(get("/products/" +product.getIdentifier()+ "/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-balance-segment-set", preprocessRequest(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance segment set's given name"),
-                                fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-balance-segment-set", preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Balance segment set's identifier"),
+                            fieldWithPath("segments").description("Balance segment set's given name"),
+                            fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
 
-    }
+  }
 
-    @Test
-    public void documentChangeBalanceSegmentSet () throws Exception {
-        final Product product = createProduct();
+  @Test
+  public void documentChangeBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
 
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how","are", "you"));
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("how", "are", "you"));
 
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
-        this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new BalanceSegmentSetEvent(product.getIdentifier(), balanceSegmentSet.getIdentifier()));
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
+    this.eventRecorder.wait(EventConstants.POST_BALANCE_SEGMENT_SET, new BalanceSegmentSetEvent(product.getIdentifier(), balanceSegmentSet.getIdentifier()));
 
 
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(6, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(100_0000, 6),
-                BigDecimal.valueOf(10_000_0000, 6)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", "ghi"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(6, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(100_0000, 6),
+            BigDecimal.valueOf(10_000_0000, 6)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("abc", "def", "ghi"));
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier()+ "/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(balanceSegmentSet)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-balance-segment-set", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Balance segment set's identifier"),
-                                fieldWithPath("segments").description("Balance segment set's given name"),
-                                fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(balanceSegmentSet)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-balance-segment-set", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Balance segment set's identifier"),
+                            fieldWithPath("segments").description("Balance segment set's given name"),
+                            fieldWithPath("segmentIdentifiers").description("Balance segment sets's segment identfiers"))));
 
-    }
+  }
 
-    @Test
-    public void documentDeleteBalanceSegmentSet() throws Exception {
-        final Product product = createProduct();
+  @Test
+  public void documentDeleteBalanceSegmentSet() throws Exception {
+    final Product product = createProduct();
 
-        final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
-        balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
-        balanceSegmentSet.setSegments(Arrays.asList(
-                BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
-                BigDecimal.valueOf(10_000_0000, 3)));
-        balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("am","fine", "thanks"));
+    final BalanceSegmentSet balanceSegmentSet = new BalanceSegmentSet();
+    balanceSegmentSet.setIdentifier(testEnvironment.generateUniqueIdentifer("bss"));
+    balanceSegmentSet.setSegments(Arrays.asList(
+            BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.TEN.setScale(3, BigDecimal.ROUND_HALF_EVEN),
+            BigDecimal.valueOf(10_000_0000, 3)));
+    balanceSegmentSet.setSegmentIdentifiers(Arrays.asList("am", "fine", "thanks"));
 
-        portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
-        this.mockMvc.perform(delete("/products/" + product.getIdentifier()+ "/balancesegmentsets/" +balanceSegmentSet.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-balance-segment-set", preprocessResponse(prettyPrint())));
+    portfolioManager.createBalanceSegmentSet(product.getIdentifier(), balanceSegmentSet);
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + "/balancesegmentsets/" + balanceSegmentSet.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-balance-segment-set", preprocessResponse(prettyPrint())));
 
-    }
+  }
 
 
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
index 2f01abc..856998a 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CaseDocumentsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -30,98 +48,98 @@
 
 public class CaseDocumentsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-casedocuments");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-casedocuments");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetCaseDocuments() throws Exception {
+  @Test
+  public void documentGetCaseDocuments() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
-        final Case customerCase = createCase(product.getIdentifier());
+    final Case customerCase = createCase(product.getIdentifier());
 
 
-       final CaseCustomerDocuments caseDocuments = caseDocumentsManager.getCaseDocuments(
-                product.getIdentifier(), customerCase.getIdentifier());
+    final CaseCustomerDocuments caseDocuments = caseDocumentsManager.getCaseDocuments(
+            product.getIdentifier(), customerCase.getIdentifier());
 
-       final CaseCustomerDocuments.Document studentLoanDocument
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "student_loan_documents");
-        final CaseCustomerDocuments.Document houseTitle
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
-        final CaseCustomerDocuments.Document workContract
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
+    final CaseCustomerDocuments.Document studentLoanDocument
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "student_loan_documents");
+    final CaseCustomerDocuments.Document houseTitle
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
+    final CaseCustomerDocuments.Document workContract
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
 
-      caseDocuments.setDocuments(Arrays.asList(studentLoanDocument, houseTitle, workContract));
+    caseDocuments.setDocuments(Arrays.asList(studentLoanDocument, houseTitle, workContract));
 
-        this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + "/documents")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isOk())
-                .andDo(document("document-get-case-documents", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("documents").type("List<Document>").description("The case document +\n" +
-                                        " +\n" +
-                                        "_Document_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     customerId, +\n" +
-                                        "     documentId, +\n" +
-                                        "  } +"))));
+    this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + "/documents")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-case-documents", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("documents").type("List<Document>").description("The case document +\n" +
+                                    " +\n" +
+                                    "_Document_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     customerId, +\n" +
+                                    "     documentId, +\n" +
+                                    "  } +"))));
 
-    }
+  }
 
 
-    @Test
-    public void documentChangeCaseDocuments() throws Exception {
+  @Test
+  public void documentChangeCaseDocuments() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
-        final Case customerCase = createCase(product.getIdentifier());
+    final Case customerCase = createCase(product.getIdentifier());
 
-        final CaseCustomerDocuments caseDocuments = caseDocumentsManager.getCaseDocuments(
-                product.getIdentifier(), customerCase.getIdentifier());
+    final CaseCustomerDocuments caseDocuments = caseDocumentsManager.getCaseDocuments(
+            product.getIdentifier(), customerCase.getIdentifier());
 
-        final CaseCustomerDocuments.Document houseLoanDocument
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_loan_documents");
-        final CaseCustomerDocuments.Document houseTitle
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
-        final CaseCustomerDocuments.Document workContract
-                = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
+    final CaseCustomerDocuments.Document houseLoanDocument
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_loan_documents");
+    final CaseCustomerDocuments.Document houseTitle
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "house_title");
+    final CaseCustomerDocuments.Document workContract
+            = new CaseCustomerDocuments.Document(Fixture.CUSTOMER_IDENTIFIER, "work_contract");
 
-        caseDocuments.setDocuments(Arrays.asList(houseLoanDocument, houseTitle, workContract));
+    caseDocuments.setDocuments(Arrays.asList(houseLoanDocument, houseTitle, workContract));
 
-        caseDocumentsManager.changeCaseDocuments(product.getIdentifier(), customerCase.getIdentifier(), caseDocuments);
+    caseDocumentsManager.changeCaseDocuments(product.getIdentifier(), customerCase.getIdentifier(), caseDocuments);
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/individuallending/products/" + product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + "/documents")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(caseDocuments)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-case-documents", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("documents").type("List<Document>").description("The case document +\n" +
-                                        " +\n" +
-                                        "_Document_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     customerId, +\n" +
-                                        "     documentId, +\n" +
-                                        "  } +"))));
-    }
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/individuallending/products/" + product.getIdentifier() + "/cases/" + customerCase.getIdentifier() + "/documents")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(caseDocuments)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-case-documents", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("documents").type("List<Document>").description("The case document +\n" +
+                                    " +\n" +
+                                    "_Document_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     customerId, +\n" +
+                                    "     documentId, +\n" +
+                                    "  } +"))));
+  }
 
 }
\ No newline at end of file
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
index 00b1d6b..2470942 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/CasesApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -15,8 +33,10 @@
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
+
 import java.util.HashSet;
 import java.util.Set;
+
 import static org.apache.fineract.cn.lang.config.TenantHeaderFilter.TENANT_HEADER;
 import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
 import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
@@ -31,78 +51,79 @@
 
 public class CasesApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-cases");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-cases");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentCreateCase () throws Exception {
+  @Test
+  public void documentCreateCase() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
-       final Case caseInstance = createCase(product.getIdentifier());
-       caseInstance.setIdentifier("case-v1");
+    final Case caseInstance = createCase(product.getIdentifier());
+    caseInstance.setIdentifier("case-v1");
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/cases/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-case", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Cases's identifier"),
-                                fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's interest"),
-                                fieldWithPath("parameters").description("cases's parameters"),
-                                fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                fieldWithPath("currentState").description("Cases's current state"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + "/cases/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-case", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's identifier"),
+                            fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's interest"),
+                            fieldWithPath("parameters").description("cases's parameters"),
+                            fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's current state"))));
 
-    }
+  }
 
-    @Test
-    public void documentChangeCase () throws Exception {
+  @Test
+  public void documentChangeCase() throws Exception {
 
-        final Product product = createAndEnableProduct();
+    final Product product = createAndEnableProduct();
 
 
-        final CaseParameters newCaseParameters = Fixture.createAdjustedCaseParameters(x -> {});
-        final String originalParameters = new Gson().toJson(newCaseParameters);
-        final Case caseInstance = createAdjustedCase(product.getIdentifier(), x -> x.setParameters(originalParameters));
+    final CaseParameters newCaseParameters = Fixture.createAdjustedCaseParameters(x -> {
+    });
+    final String originalParameters = new Gson().toJson(newCaseParameters);
+    final Case caseInstance = createAdjustedCase(product.getIdentifier(), x -> x.setParameters(originalParameters));
 
-        final Set<AccountAssignment> accountAssignments = new HashSet<>();
-        accountAssignments.add(new AccountAssignment(AccountDesignators.CUSTOMER_LOAN_GROUP, "002-011"));
-        accountAssignments.add(new AccountAssignment(AccountDesignators.ENTRY, "002-012"));
-        caseInstance.setAccountAssignments(accountAssignments);
+    final Set<AccountAssignment> accountAssignments = new HashSet<>();
+    accountAssignments.add(new AccountAssignment(AccountDesignators.CUSTOMER_LOAN_GROUP, "002-011"));
+    accountAssignments.add(new AccountAssignment(AccountDesignators.ENTRY, "002-012"));
+    caseInstance.setAccountAssignments(accountAssignments);
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/cases/" + caseInstance.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-case", preprocessRequest(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Cases's identifier"),
-                                fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's interest"),
-                                fieldWithPath("parameters").description("cases's parameters"),
-                                fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                fieldWithPath("currentState").description("Cases's current state"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/cases/" + caseInstance.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-case", preprocessRequest(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's identifier"),
+                            fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's interest"),
+                            fieldWithPath("parameters").description("cases's parameters"),
+                            fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's current state"))));
 
-    }
+  }
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
index 63da9d8..281d25d 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ChargeDefinitionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -33,207 +51,207 @@
 
 public class ChargeDefinitionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-chargedefinitions");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-chargedefinitions");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetAllChargeDefinitions ( ) throws Exception {
-        final Product product = createProduct();
+  @Test
+  public void documentGetAllChargeDefinitions() throws Exception {
+    final Product product = createProduct();
 
-        try {
-            this.mockMvc.perform(get("/products/" +product.getIdentifier()+"/charges/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-all-charge-definitions", preprocessRequest(prettyPrint()),
-                            responseFields(
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/charges/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-all-charge-definitions", preprocessRequest(prettyPrint()),
+                      responseFields(
 
-                                    fieldWithPath("identifier").description("Charge definition's identifier"),
-                                    fieldWithPath("name").description("Charge definitions given name"),
-                                    fieldWithPath("description").description("Charge definitions description"),
-                                    fieldWithPath("accrueAction").description("Charge definitions accrue action"),
-                                    fieldWithPath("proportionalTo").description("Charge definitions proportional to"),
-                                    fieldWithPath("accrualAccountDesignator").description("Charge definitions accrual acion generatort"),
-                                    fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size unit"),
-                                    fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
-                                    fieldWithPath("fromSegment").description("Charge definitions from segment"),
-                                    fieldWithPath("toSegment").description("Charge definitions to segment"),
-                                    fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
-                                    fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                    fieldWithPath("toAccountDesignator").description("To account designator"),
-                                    fieldWithPath("amount").description("Charge definition's amount"),
-                                    fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                    fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                    fieldWithPath("description").description("Employee's middle name"),
-                                    fieldWithPath("readOnly").description("Readability"))));
+                              fieldWithPath("identifier").description("Charge definition's identifier"),
+                              fieldWithPath("name").description("Charge definitions given name"),
+                              fieldWithPath("description").description("Charge definitions description"),
+                              fieldWithPath("accrueAction").description("Charge definitions accrue action"),
+                              fieldWithPath("proportionalTo").description("Charge definitions proportional to"),
+                              fieldWithPath("accrualAccountDesignator").description("Charge definitions accrual acion generatort"),
+                              fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size unit"),
+                              fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
+                              fieldWithPath("fromSegment").description("Charge definitions from segment"),
+                              fieldWithPath("toSegment").description("Charge definitions to segment"),
+                              fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
+                              fieldWithPath("fromAccountDesignator").description("From account designator"),
+                              fieldWithPath("toAccountDesignator").description("To account designator"),
+                              fieldWithPath("amount").description("Charge definition's amount"),
+                              fieldWithPath("chargeMethod").description("Charge definitions charge method"),
+                              fieldWithPath("chargeAction").description("Charge definition's charge action"),
+                              fieldWithPath("description").description("Employee's middle name"),
+                              fieldWithPath("readOnly").description("Readability"))));
 
     } catch (Exception e) {
-            e.printStackTrace();
-        }
-
+      e.printStackTrace();
     }
 
-
-    @Test
-    public void documentCreateChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge123");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("Pembe");
-        chargeDefinition.setToAccountDesignator("Miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
+  }
 
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/charges/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(chargeDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-charge-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge definitions given name"),
-                                fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge definition's amount"),
-                                fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                fieldWithPath("description").description("Employee's middle name"),
-                                fieldWithPath("readOnly").description("Readability"))));
+  @Test
+  public void documentCreateChargeDefinition() throws Exception {
 
-    }
+    final Product product = createProduct();
 
-    @Test
-    public void documentChangeChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge124");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("Pembe");
-        chargeDefinition.setToAccountDesignator("Miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
-
-        portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinition);
-
-        chargeDefinition.setName("charge12345");
-        chargeDefinition.setFromAccountDesignator("Paul");
-        chargeDefinition.setToAccountDesignator("Motia");
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/charges/" + chargeDefinition.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(chargeDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-charge-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge definitions given name"),
-                                fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge definition's amount"),
-                                fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                fieldWithPath("description").description("Employee's middle name"),
-                                fieldWithPath("readOnly").description("Readability"))));
-    }
-
-    @Test
-    public void documentGetChargeDefinition() throws Exception {
-
-        final Product product = createProduct();
-
-        final ChargeDefinition chargeDefinition = new ChargeDefinition();
-        chargeDefinition.setIdentifier("charge10");
-        chargeDefinition.setName("core123");
-        chargeDefinition.setFromAccountDesignator("pembe");
-        chargeDefinition.setToAccountDesignator("miriam");
-        chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
-        chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinition.setChargeAction(Action.OPEN.name());
-        chargeDefinition.setDescription("describe charge");
-
-        portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinition);
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge123");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("Pembe");
+    chargeDefinition.setToAccountDesignator("Miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
 
 
-        this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/charges/" + chargeDefinition.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isOk())
-                .andDo(document("document-get-case-document", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge definitions given name"),
-                                fieldWithPath("description").description("Charge definitions description"),
-                                fieldWithPath("accrueAction").description("Charge definitions accrue action"),
-                                fieldWithPath("proportionalTo").description("Charge definitions proportional to"),
-                                fieldWithPath("accrualAccountDesignator").description("Charge definitions accrual acion generatort"),
-                                fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size unit"),
-                                fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
-                                fieldWithPath("fromSegment").description("Charge definitions from segment"),
-                                fieldWithPath("toSegment").description("Charge definitions to segment"),
-                                fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
-                                fieldWithPath("fromAccountDesignator").description("From account designator"),
-                                fieldWithPath("toAccountDesignator").description("To account designator"),
-                                fieldWithPath("amount").description("Charge definition's amount"),
-                                fieldWithPath("chargeMethod").description("Charge definitions charge method"),
-                                fieldWithPath("chargeAction").description("Charge definition's charge action"),
-                                fieldWithPath("description").description("Employee's middle name"),
-                                fieldWithPath("readOnly").description("Readability"))));
-    }
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + "/charges/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(chargeDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-charge-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge definition's identifier"),
+                            fieldWithPath("name").description("Charge definitions given name"),
+                            fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge definition's charge action"),
+                            fieldWithPath("description").description("Employee's middle name"),
+                            fieldWithPath("readOnly").description("Readability"))));
 
-    @Test
-    public void documentDeleteChargeDefinition () throws Exception{
+  }
 
-        final Product product = createProduct();
+  @Test
+  public void documentChangeChargeDefinition() throws Exception {
 
-        final ChargeDefinition chargeDefinitionToDelete = new ChargeDefinition();
-        chargeDefinitionToDelete.setAmount(BigDecimal.TEN);
-        chargeDefinitionToDelete.setIdentifier("random123");
-        chargeDefinitionToDelete.setName("account");
-        chargeDefinitionToDelete.setDescription("account charge definition");
-        chargeDefinitionToDelete.setChargeAction(Action.APPROVE.name());
-        chargeDefinitionToDelete.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
-        chargeDefinitionToDelete.setToAccountDesignator(AccountDesignators.GENERAL_LOSS_ALLOWANCE);
-        chargeDefinitionToDelete.setFromAccountDesignator(AccountDesignators.INTEREST_ACCRUAL);
-        portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinitionToDelete);
-        this.eventRecorder.wait(EventConstants.POST_CHARGE_DEFINITION,
-                new ChargeDefinitionEvent(product.getIdentifier(), chargeDefinitionToDelete.getIdentifier()));
+    final Product product = createProduct();
 
-        this.mockMvc.perform(delete("/products/"+product.getIdentifier()+"/charges/" + chargeDefinitionToDelete.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-charge-definition", preprocessResponse(prettyPrint())));
-    }
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge124");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("Pembe");
+    chargeDefinition.setToAccountDesignator("Miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
+
+    portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinition);
+
+    chargeDefinition.setName("charge12345");
+    chargeDefinition.setFromAccountDesignator("Paul");
+    chargeDefinition.setToAccountDesignator("Motia");
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/charges/" + chargeDefinition.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(chargeDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-charge-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge definition's identifier"),
+                            fieldWithPath("name").description("Charge definitions given name"),
+                            fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge definition's charge action"),
+                            fieldWithPath("description").description("Employee's middle name"),
+                            fieldWithPath("readOnly").description("Readability"))));
+  }
+
+  @Test
+  public void documentGetChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinition = new ChargeDefinition();
+    chargeDefinition.setIdentifier("charge10");
+    chargeDefinition.setName("core123");
+    chargeDefinition.setFromAccountDesignator("pembe");
+    chargeDefinition.setToAccountDesignator("miriam");
+    chargeDefinition.setAmount(BigDecimal.ONE.setScale(3, BigDecimal.ROUND_UNNECESSARY));
+    chargeDefinition.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinition.setChargeAction(Action.OPEN.name());
+    chargeDefinition.setDescription("describe charge");
+
+    portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinition);
+
+
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/charges/" + chargeDefinition.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-case-document", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Charge definition's identifier"),
+                            fieldWithPath("name").description("Charge definitions given name"),
+                            fieldWithPath("description").description("Charge definitions description"),
+                            fieldWithPath("accrueAction").description("Charge definitions accrue action"),
+                            fieldWithPath("proportionalTo").description("Charge definitions proportional to"),
+                            fieldWithPath("accrualAccountDesignator").description("Charge definitions accrual acion generatort"),
+                            fieldWithPath("forCycleSizeUnit").description("Charge definitions cycle size unit"),
+                            fieldWithPath("forSegmentSet").description("Charge definitions segment set"),
+                            fieldWithPath("fromSegment").description("Charge definitions from segment"),
+                            fieldWithPath("toSegment").description("Charge definitions to segment"),
+                            fieldWithPath("chargeOnTop").description("Charge definitions charge on top"),
+                            fieldWithPath("fromAccountDesignator").description("From account designator"),
+                            fieldWithPath("toAccountDesignator").description("To account designator"),
+                            fieldWithPath("amount").description("Charge definition's amount"),
+                            fieldWithPath("chargeMethod").description("Charge definitions charge method"),
+                            fieldWithPath("chargeAction").description("Charge definition's charge action"),
+                            fieldWithPath("description").description("Employee's middle name"),
+                            fieldWithPath("readOnly").description("Readability"))));
+  }
+
+  @Test
+  public void documentDeleteChargeDefinition() throws Exception {
+
+    final Product product = createProduct();
+
+    final ChargeDefinition chargeDefinitionToDelete = new ChargeDefinition();
+    chargeDefinitionToDelete.setAmount(BigDecimal.TEN);
+    chargeDefinitionToDelete.setIdentifier("random123");
+    chargeDefinitionToDelete.setName("account");
+    chargeDefinitionToDelete.setDescription("account charge definition");
+    chargeDefinitionToDelete.setChargeAction(Action.APPROVE.name());
+    chargeDefinitionToDelete.setChargeMethod(ChargeDefinition.ChargeMethod.FIXED);
+    chargeDefinitionToDelete.setToAccountDesignator(AccountDesignators.GENERAL_LOSS_ALLOWANCE);
+    chargeDefinitionToDelete.setFromAccountDesignator(AccountDesignators.INTEREST_ACCRUAL);
+    portfolioManager.createChargeDefinition(product.getIdentifier(), chargeDefinitionToDelete);
+    this.eventRecorder.wait(EventConstants.POST_CHARGE_DEFINITION,
+            new ChargeDefinitionEvent(product.getIdentifier(), chargeDefinitionToDelete.getIdentifier()));
+
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + "/charges/" + chargeDefinitionToDelete.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-charge-definition", preprocessResponse(prettyPrint())));
+  }
 
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
index c297245..4673268 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/LossProvisionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 
@@ -35,93 +53,95 @@
 
 public class LossProvisionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-lossprovision");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-lossprovision");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp ( ) {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentChangeLossProvisionConfiguration() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+
+    final List<LossProvisionStep> lossProvisionSteps = new ArrayList<>();
+    lossProvisionSteps.add(new LossProvisionStep(1, BigDecimal.valueOf(5_00, 2)));
+    final LossProvisionConfiguration lossProvisionConfiguration = new LossProvisionConfiguration(lossProvisionSteps);
+
+    individualLending.changeLossProvisionConfiguration(product.getIdentifier(), lossProvisionConfiguration);
+
+
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/individuallending/products/" + product.getIdentifier() + "/lossprovisionconfiguration")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(lossProvisionConfiguration)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-loss-provision-configuration", preprocessRequest(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The loss provision configurations +\n" +
+                                    " +\n" +
+                                    "_LossProvisionSteps_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     daysLate, +\n" +
+                                    "     percentProvision, +\n" +
+                                    "  } +")
+                    )
+            ));
+  }
+
+  @Test
+  public void documentGetLossProvisionConfiguration() throws Exception {
+
+    final Product product = createAdjustedProduct(x -> {
+    });
+
+    final List<LossProvisionStep> lossProvisionSteps1 = new ArrayList<>();
+    lossProvisionSteps1.add(new LossProvisionStep(0, BigDecimal.valueOf(1_00, 2)));
+    lossProvisionSteps1.add(new LossProvisionStep(1, BigDecimal.valueOf(9_00, 2)));
+    lossProvisionSteps1.add(new LossProvisionStep(30, BigDecimal.valueOf(35_00, 2)));
+    lossProvisionSteps1.add(new LossProvisionStep(60, BigDecimal.valueOf(55_00, 2)));
+    final LossProvisionConfiguration lossProvisionConfiguration = new LossProvisionConfiguration(lossProvisionSteps1);
+
+    individualLending.changeLossProvisionConfiguration(product.getIdentifier(), lossProvisionConfiguration);
+
+    try {
+      this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/lossprovisionconfiguration")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-loss-provision-configuration", preprocessRequest(prettyPrint()),
+                      responseFields(
+                              fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The loss provision configurations +\n" +
+                                      " +\n" +
+                                      "_LossProvisionSteps_ { +\n" +
+                                      "  *enum* _Type_ { +\n" +
+                                      "     daysLate, +\n" +
+                                      "     percentProvision, +\n" +
+                                      "  } +")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentChangeLossProvisionConfiguration ( ) throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
+  }
 
 
-        final List<LossProvisionStep> lossProvisionSteps = new ArrayList<>();
-        lossProvisionSteps.add(new LossProvisionStep(1, BigDecimal.valueOf(5_00, 2)));
-        final LossProvisionConfiguration lossProvisionConfiguration = new LossProvisionConfiguration(lossProvisionSteps);
-
-        individualLending.changeLossProvisionConfiguration(product.getIdentifier(), lossProvisionConfiguration);
-
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/individuallending/products/" + product.getIdentifier() + "/lossprovisionconfiguration")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(lossProvisionConfiguration)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-loss-provision-configuration", preprocessRequest(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The loss provision configurations +\n" +
-                                        " +\n" +
-                                        "_LossProvisionSteps_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     daysLate, +\n" +
-                                        "     percentProvision, +\n" +
-                                        "  } +")
-                        )
-                ));
-    }
-
-    @Test
-    public void documentGetLossProvisionConfiguration ( ) throws Exception{
-
-        final Product product = createAdjustedProduct(x -> {});
-
-        final List<LossProvisionStep> lossProvisionSteps1 = new ArrayList<>();
-        lossProvisionSteps1.add(new LossProvisionStep(0, BigDecimal.valueOf(1_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(1, BigDecimal.valueOf(9_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(30, BigDecimal.valueOf(35_00, 2)));
-        lossProvisionSteps1.add(new LossProvisionStep(60, BigDecimal.valueOf(55_00, 2)));
-        final LossProvisionConfiguration lossProvisionConfiguration = new LossProvisionConfiguration(lossProvisionSteps1);
-
-        individualLending.changeLossProvisionConfiguration(product.getIdentifier(), lossProvisionConfiguration);
-
-        try {
-            this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/lossprovisionconfiguration")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-loss-provision-configuration", preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    fieldWithPath("lossProvisionSteps").type("List<LossProvisionSteps>").description("The loss provision configurations +\n" +
-                                            " +\n" +
-                                            "_LossProvisionSteps_ { +\n" +
-                                            "  *enum* _Type_ { +\n" +
-                                            "     daysLate, +\n" +
-                                            "     percentProvision, +\n" +
-                                            "  } +")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-
-
-    }
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
index da82448..2d9c6a9 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PatternApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import org.junit.Before;
@@ -22,44 +40,44 @@
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 public class PatternApiDocumentation extends AbstractPortfolioTest {
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-pattern");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-pattern");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp ( ) {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentGetPatterns() throws Exception {
+
+    try {
+      this.mockMvc.perform(get("/patterns/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-patterns", preprocessRequest(prettyPrint()),
+                      responseFields(
+                              fieldWithPath("[].parameterPackage").description("Pattern's parameter package"),
+                              fieldWithPath("[].accountAssignmentGroups").description("Pattern's groups"),
+                              fieldWithPath("[].accountAssignmentsRequired").description("List of Pattern's account assignments")
+                      )
+
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
-
-    @Test
-    public void documentGetPatterns ( ) throws Exception {
-
-        try {
-            this.mockMvc.perform(get("/patterns/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-patterns", preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    fieldWithPath("parameterPackage").description("Pattern's parameter package"),
-                                    fieldWithPath("accountAssignmentGroups").description("Pattern's groups"),
-                                    fieldWithPath("accountAssignmentsRequired").description("Pattern's account assignment status")
-                                    )
-
-                                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
+  }
 
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
index a3c3102..dee2c3a 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/PlannedPaymentsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -28,62 +46,62 @@
 
 public class PlannedPaymentsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-plannedpayments");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-plannedpayments");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentGetPaymentScheduledForCase() throws Exception {
-        final Product product = createAndEnableProduct();
-        final Case caseInstance = createCase(product.getIdentifier());
+  @Test
+  public void documentGetPaymentScheduledForCase() throws Exception {
+    final Product product = createAndEnableProduct();
+    final Case caseInstance = createCase(product.getIdentifier());
 
-        this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/cases/" + caseInstance.getIdentifier() + "/plannedpayments")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-payment-scheduled-for-case", preprocessRequest(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("chargeNames").description("Charge names"),
-                                fieldWithPath("elements").description("Payments"),
-                                fieldWithPath("totalPages").description("Total number of pages "),
-                                fieldWithPath("totalElements").description("Total elements found"))));
+    this.mockMvc.perform(get("/individuallending/products/" + product.getIdentifier() + "/cases/" + caseInstance.getIdentifier() + "/plannedpayments")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-payment-scheduled-for-case", preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("chargeNames").description("Charge names"),
+                            fieldWithPath("elements").description("Payments"),
+                            fieldWithPath("totalPages").description("Total number of pages "),
+                            fieldWithPath("totalElements").description("Total elements found"))));
 
-    }
+  }
 
-    @Test
-    public void documentGetPaymentScheduledForParameters() throws Exception {
-        final Product product = createAndEnableProduct();
-        final Case caseInstance = createCase(product.getIdentifier());
+  @Test
+  public void documentGetPaymentScheduledForParameters() throws Exception {
+    final Product product = createAndEnableProduct();
+    final Case caseInstance = createCase(product.getIdentifier());
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/individuallending/products/" + product.getIdentifier() + "/plannedpayments")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(caseInstance)))
-                .andExpect(status().isOk())
-                .andDo(document("document-get-payment-scheduled-for-parameters", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Cases's identifier"),
-                                fieldWithPath("productIdentifier").description("Products's identifier"),
-                                fieldWithPath("interest").description("Cases's interest"),
-                                fieldWithPath("parameters").description("cases's parameters"),
-                                fieldWithPath("accountAssignments").description("Cases's account assignment"),
-                                fieldWithPath("currentState").description("Cases's current state"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/individuallending/products/" + product.getIdentifier() + "/plannedpayments")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(caseInstance)))
+            .andExpect(status().isOk())
+            .andDo(document("document-get-payment-scheduled-for-parameters", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Cases's identifier"),
+                            fieldWithPath("productIdentifier").description("Products's identifier"),
+                            fieldWithPath("interest").description("Cases's interest"),
+                            fieldWithPath("parameters").description("cases's parameters"),
+                            fieldWithPath("accountAssignments").description("Cases's account assignment"),
+                            fieldWithPath("currentState").description("Cases's current state"))));
 
-    }
+  }
 
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
index 4675a03..e37237e 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/ProductsApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -27,210 +45,211 @@
 
 public class ProductsApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-product");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-product");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp() {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
-    }
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
 
-    @Test
-    public void documentCreateProduct() throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
-         product.setIdentifier("agro11");
+  @Test
+  public void documentCreateProduct() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
+    product.setIdentifier("agro11");
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(product)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-create-product", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Product's identifier"),
-                                fieldWithPath("name").description("Product's given name"),
-                                fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                fieldWithPath("balanceRange").description("Product's balance range"),
-                                fieldWithPath("interestRange").description("Products interest Range"),
-                                fieldWithPath("interestBasis").description("Products's interest basis"),
-                                fieldWithPath("patternPackage").description("Product's pattern package"),
-                                fieldWithPath("description").description("product description"),
-                                fieldWithPath("currencyCode").description("Country currency code"),
-                                fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency unit"),
-                                fieldWithPath("accountAssignments").description("Account Assignments"),
-                                fieldWithPath("parameters").description("Product's parameters"),
-                                fieldWithPath("enabled").description("Readability"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(product)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-create-product", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Product's identifier"),
+                            fieldWithPath("name").description("Product's given name"),
+                            fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            fieldWithPath("balanceRange").description("Product's balance range"),
+                            fieldWithPath("interestRange").description("Products interest Range"),
+                            fieldWithPath("interestBasis").description("Products's interest basis"),
+                            fieldWithPath("patternPackage").description("Product's pattern package"),
+                            fieldWithPath("description").description("product description"),
+                            fieldWithPath("currencyCode").description("Country currency code"),
+                            fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency unit"),
+                            fieldWithPath("accountAssignments").description("Account Assignments"),
+                            fieldWithPath("parameters").description("Product's parameters"),
+                            fieldWithPath("enabled").description("Readability"))));
 
-    }
+  }
 
 
-    @Test
-    public void documentGetProducts() throws Exception {
-        final Product product = createAdjustedProduct(x -> {});
+  @Test
+  public void documentGetProducts() throws Exception {
+    final Product product = createAdjustedProduct(x -> {
+    });
 
-       this.eventRecorder.wait(EventConstants.POST_PRODUCT, product.getIdentifier());
+    this.eventRecorder.wait(EventConstants.POST_PRODUCT, product.getIdentifier());
 
-        try {
-            this.mockMvc.perform(get("/products?pageIndex=0&size=200")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-products", preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    fieldWithPath("identifier").description("Product's identifier"),
-                                    fieldWithPath("name").description("Product's given name"),
-                                    fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
-                                            " +\n" +
-                                            "_TermRange_ { +\n" +
-                                            "  *enum* _Type_ { +\n" +
-                                            "     temporalUnit, +\n" +
-                                            "     maximum, +\n" +
-                                            "  } +"),
-                                    fieldWithPath("balanceRange").description("Product's balance range"),
-                                    fieldWithPath("interestRange").description("Products interest Range"),
-                                    fieldWithPath("interestBasis").description("Products's interest basis"),
-                                    fieldWithPath("patternPackage").description("Product's pattern package"),
-                                    fieldWithPath("description").description("product description"),
-                                    fieldWithPath("currencyCode").description("Country currency code"),
-                                    fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency unit"),
-                                    fieldWithPath("accountAssignments").description("Account Assignments"),
-                                    fieldWithPath("parameters").description("Product's parameters"),
-                                    fieldWithPath("enabled").description("Readability"))));
+    try {
+      this.mockMvc.perform(get("/products?pageIndex=0&size=200")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-products", preprocessRequest(prettyPrint()),
+                      responseFields(
+                              fieldWithPath("identifier").description("Product's identifier"),
+                              fieldWithPath("name").description("Product's given name"),
+                              fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
+                                      " +\n" +
+                                      "_TermRange_ { +\n" +
+                                      "  *enum* _Type_ { +\n" +
+                                      "     temporalUnit, +\n" +
+                                      "     maximum, +\n" +
+                                      "  } +"),
+                              fieldWithPath("balanceRange").description("Product's balance range"),
+                              fieldWithPath("interestRange").description("Products interest Range"),
+                              fieldWithPath("interestBasis").description("Products's interest basis"),
+                              fieldWithPath("patternPackage").description("Product's pattern package"),
+                              fieldWithPath("description").description("product description"),
+                              fieldWithPath("currencyCode").description("Country currency code"),
+                              fieldWithPath("minorCurrencyUnitDigits").description("Country minor currency unit"),
+                              fieldWithPath("accountAssignments").description("Account Assignments"),
+                              fieldWithPath("parameters").description("Product's parameters"),
+                              fieldWithPath("enabled").description("Readability"))));
     } catch (Exception e) {
-        e.printStackTrace();
+      e.printStackTrace();
     }
 
-}
+  }
 
-    @Test
-    public void documentDeleteProducts() throws Exception {
+  @Test
+  public void documentDeleteProducts() throws Exception {
 
-        final Product product = createAdjustedProduct(x -> {
-        });
+    final Product product = createAdjustedProduct(x -> {
+    });
 
 
-        this.mockMvc.perform(delete("/products/" + product.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-products", preprocessResponse(prettyPrint())));
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-products", preprocessResponse(prettyPrint())));
 
-    }
+  }
 
-    @Test
-    public void documentGetProduct() throws Exception {
+  @Test
+  public void documentGetProduct() throws Exception {
 
-        final Product product = createAdjustedProduct(x -> {
-        });
+    final Product product = createAdjustedProduct(x -> {
+    });
 
-        this.mockMvc.perform(get("/products/" + product.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-product", preprocessRequest(prettyPrint()),
-                        responseFields(
-                                fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge definitions given name"),
-                                fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                fieldWithPath("balanceRange").description("From account designator"),
-                                fieldWithPath("interestRange").description("To account designator"),
-                                fieldWithPath("interestBasis").description("Charge definition's amount"),
-                                fieldWithPath("patternPackage").description("Charge definitions charge method"),
-                                fieldWithPath("description").description("Charge definitions charge method"),
-                                fieldWithPath("currencyCode").description("Charge definition's charge action"),
-                                fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
-                                fieldWithPath("accountAssignments").description("Readability"),
-                                fieldWithPath("parameters").description("Readability"),
-                                fieldWithPath("enabled").description("Readability"),
-                                fieldWithPath("createdOn").description("Readability"),
-                                fieldWithPath("createdBy").description("Readability"),
-                                fieldWithPath("lastModifiedOn").description("Readability"),
-                                fieldWithPath("lastModifiedBy").description("Readability"))));
+    this.mockMvc.perform(get("/products/" + product.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-product", preprocessRequest(prettyPrint()),
+                    responseFields(
+                            fieldWithPath("identifier").description("Charge definition's identifier"),
+                            fieldWithPath("name").description("Charge definitions given name"),
+                            fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            fieldWithPath("balanceRange").description("From account designator"),
+                            fieldWithPath("interestRange").description("To account designator"),
+                            fieldWithPath("interestBasis").description("Charge definition's amount"),
+                            fieldWithPath("patternPackage").description("Charge definitions charge method"),
+                            fieldWithPath("description").description("Charge definitions charge method"),
+                            fieldWithPath("currencyCode").description("Charge definition's charge action"),
+                            fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
+                            fieldWithPath("accountAssignments").description("Readability"),
+                            fieldWithPath("parameters").description("Readability"),
+                            fieldWithPath("enabled").description("Readability"),
+                            fieldWithPath("createdOn").description("Readability"),
+                            fieldWithPath("createdBy").description("Readability"),
+                            fieldWithPath("lastModifiedOn").description("Readability"),
+                            fieldWithPath("lastModifiedBy").description("Readability"))));
 
-}
+  }
 
-    @Test
-    public void documentChangeProduct() throws Exception {
+  @Test
+  public void documentChangeProduct() throws Exception {
 
-        final Product product = createAdjustedProduct(x -> {});
-        product.setName("akawo");
+    final Product product = createAdjustedProduct(x -> {
+    });
+    product.setName("akawo");
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier())
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(product)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-product", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").description("Charge definition's identifier"),
-                                fieldWithPath("name").description("Charge definitions given name"),
-                                fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
-                                        " +\n" +
-                                        "_TermRange_ { +\n" +
-                                        "  *enum* _Type_ { +\n" +
-                                        "     temporalUnit, +\n" +
-                                        "     maximum, +\n" +
-                                        "  } +"),
-                                fieldWithPath("balanceRange").description("From account designator"),
-                                fieldWithPath("interestRange").description("To account designator"),
-                                fieldWithPath("interestBasis").description("Charge definition's amount"),
-                                fieldWithPath("patternPackage").description("Charge definitions charge method"),
-                                fieldWithPath("description").description("Charge definitions charge method"),
-                                fieldWithPath("currencyCode").description("Charge definition's charge action"),
-                                fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
-                                fieldWithPath("accountAssignments").description("Readability"),
-                                fieldWithPath("parameters").description("Readability"),
-                                fieldWithPath("enabled").description("Readability"))));
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(product)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-product", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").description("Charge definition's identifier"),
+                            fieldWithPath("name").description("Charge definitions given name"),
+                            fieldWithPath("termRange").type("List<TermRange>").description("The term range +\n" +
+                                    " +\n" +
+                                    "_TermRange_ { +\n" +
+                                    "  *enum* _Type_ { +\n" +
+                                    "     temporalUnit, +\n" +
+                                    "     maximum, +\n" +
+                                    "  } +"),
+                            fieldWithPath("balanceRange").description("From account designator"),
+                            fieldWithPath("interestRange").description("To account designator"),
+                            fieldWithPath("interestBasis").description("Charge definition's amount"),
+                            fieldWithPath("patternPackage").description("Charge definitions charge method"),
+                            fieldWithPath("description").description("Charge definitions charge method"),
+                            fieldWithPath("currencyCode").description("Charge definition's charge action"),
+                            fieldWithPath("minorCurrencyUnitDigits").description("Employee's middle name"),
+                            fieldWithPath("accountAssignments").description("Readability"),
+                            fieldWithPath("parameters").description("Readability"),
+                            fieldWithPath("enabled").description("Readability"))));
 
-    }
+  }
 
-    @Test
-    public void documentGetIncompleteAccountAssignments () throws Exception {
+  @Test
+  public void documentGetIncompleteAccountAssignments() throws Exception {
 
-        final Product product = createAdjustedProduct(x -> {});
+    final Product product = createAdjustedProduct(x -> {
+    });
 
-        this.mockMvc.perform(get("/products/" + product.getIdentifier()+"/incompleteaccountassignments")
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                .andExpect(status().isOk())
-                .andDo(document(
-                        "document-get-incomplete-account-assignments", preprocessRequest(prettyPrint()),
-                        responseFields(
-                               )));
+    this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/incompleteaccountassignments")
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+            .andExpect(status().isOk())
+            .andDo(document(
+                    "document-get-incomplete-account-assignments", preprocessRequest(prettyPrint()),
+                    responseFields(
+                    )));
 
-    }
-
-
-
+  }
 
 
 }
diff --git a/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java b/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
index ee2f358..a3d62ed 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/portfolio/TaskDefinitionApiDocumentation.java
@@ -1,3 +1,21 @@
+/*
+ * 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.fineract.cn.portfolio;
 
 import com.google.gson.Gson;
@@ -27,140 +45,140 @@
 
 public class TaskDefinitionApiDocumentation extends AbstractPortfolioTest {
 
-    @Rule
-    public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-taskdefinition");
+  @Rule
+  public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/doc/generated-snippets/test-taskdefinition");
 
-    @Autowired
-    private WebApplicationContext context;
+  @Autowired
+  private WebApplicationContext context;
 
-    private MockMvc mockMvc;
+  private MockMvc mockMvc;
 
-    @Before
-    public void setUp ( ) {
+  @Before
+  public void setUp() {
 
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
-                .apply(documentationConfiguration(this.restDocumentation))
-                .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
-                .build();
+    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
+            .apply(documentationConfiguration(this.restDocumentation))
+            .alwaysDo(document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint())))
+            .build();
+  }
+
+  @Test
+  public void documentListTaskDefinitions() throws Exception {
+    final Product product = createProduct();
+
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/tasks/")
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-list-task-definitions", preprocessRequest(prettyPrint()),
+                      responseFields(
+                              fieldWithPath("identifier").type("String").description("task identifier's identifier"),
+                              fieldWithPath("name").type("String").description("task identifier's name"),
+                              fieldWithPath("description").type("String").description("task identifier's description"),
+                              fieldWithPath("actions").description("The task definition action"),
+                              fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
+                              fieldWithPath("mandatory").type("String").description("task identifier's identifier")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
-    @Test
-    public void documentListTaskDefinitions ( ) throws Exception {
-        final Product product = createProduct();
+  }
 
-        try {
-            this.mockMvc.perform(get("/products/" +product.getIdentifier()+"/tasks/")
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-list-task-definitions", preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    fieldWithPath("identifier").type("String").description("task identifier's identifier"),
-                                    fieldWithPath("name").type("String").description("task identifier's name"),
-                                    fieldWithPath("description").type("String").description("task identifier's description"),
-                                    fieldWithPath("actions").description("The task definition action"),
-                                    fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
-                                    fieldWithPath("mandatory").type("String").description("task identifier's identifier")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
 
+  @Test
+  public void documentGetTaskDefinition() throws Exception {
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+
+    try {
+      this.mockMvc.perform(get("/products/" + product.getIdentifier() + "/tasks/" + taskDefinition.getIdentifier())
+              .accept(MediaType.APPLICATION_JSON_VALUE)
+              .contentType(MediaType.APPLICATION_JSON_VALUE)
+              .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
+              .andExpect(status().isOk())
+              .andDo(document(
+                      "document-get-task-definition", preprocessRequest(prettyPrint()),
+                      responseFields(
+                              fieldWithPath("identifier").type("String").description("task identifier's identifier"),
+                              fieldWithPath("name").type("String").description("task identifier's name"),
+                              fieldWithPath("description").type("String").description("task identifier's description"),
+                              fieldWithPath("actions").description("The task definition action"),
+                              fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
+                              fieldWithPath("mandatory").type("String").description("task identifier's identifier")
+                      )
+              ));
+    } catch (Exception e) {
+      e.printStackTrace();
     }
 
+  }
 
-    @Test
-    public void documentGetTaskDefinition ( ) throws Exception {
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
+  @Test
+  public void documentChangeTaskDefinition() throws Exception {
 
-        try {
-            this.mockMvc.perform(get("/products/" +product.getIdentifier()+"/tasks/" +taskDefinition.getIdentifier())
-                    .accept(MediaType.APPLICATION_JSON_VALUE)
-                    .contentType(MediaType.APPLICATION_JSON_VALUE)
-                    .header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
-                    .andExpect(status().isOk())
-                    .andDo(document(
-                            "document-get-task-definition", preprocessRequest(prettyPrint()),
-                            responseFields(
-                                    fieldWithPath("identifier").type("String").description("task identifier's identifier"),
-                                    fieldWithPath("name").type("String").description("task identifier's name"),
-                                    fieldWithPath("description").type("String").description("task identifier's description"),
-                                    fieldWithPath("actions").description("The task definition action"),
-                                    fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
-                                    fieldWithPath("mandatory").type("String").description("task identifier's identifier")
-                            )
-                    ));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+    taskDefinition.setDescription("Describe task definition");
+    taskDefinition.setFourEyes(false);
 
-    }
+    Gson gson = new Gson();
+    this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/tasks/" + taskDefinition.getIdentifier())
+            .accept(MediaType.APPLICATION_JSON_VALUE)
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
+            .content(gson.toJson(taskDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document(
+                    "document-change-task-definition", preprocessRequest(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").type("String").description("task identifier's identifier"),
+                            fieldWithPath("name").type("String").description("task identifier's name"),
+                            fieldWithPath("description").type("String").description("task identifier's description"),
+                            fieldWithPath("actions").description("The task definition action"),
+                            fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
+                            fieldWithPath("mandatory").type("String").description("task identifier's identifier")
+                    )
 
-    @Test
-    public void documentChangeTaskDefinition () throws Exception {
+            ));
 
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-        taskDefinition.setDescription("Describe task definition");
-        taskDefinition.setFourEyes(false);
+  }
 
-        Gson gson = new Gson();
-        this.mockMvc.perform(put("/products/" + product.getIdentifier() + "/tasks/" +taskDefinition.getIdentifier() )
-                .accept(MediaType.APPLICATION_JSON_VALUE)
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .header(TENANT_HEADER, tenantDataStoreContext.getTenantName())
-                .content(gson.toJson(taskDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document(
-                        "document-change-task-definition", preprocessRequest(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").type("String").description("task identifier's identifier"),
-                                fieldWithPath("name").type("String").description("task identifier's name"),
-                                fieldWithPath("description").type("String").description("task identifier's description"),
-                                fieldWithPath("actions").description("The task definition action"),
-                                fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
-                                fieldWithPath("mandatory").type("String").description("task identifier's identifier")
-                        )
+  @Test
+  public void documentAddTaskDefinition() throws Exception {
 
-                        ));
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
+    taskDefinition.setIdentifier("ask");
 
-    }
+    Gson gson = new Gson();
+    this.mockMvc.perform(post("/products/" + product.getIdentifier() + "/tasks/")
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .content(gson.toJson(taskDefinition)))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-add-task-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
+                    requestFields(
+                            fieldWithPath("identifier").type("String").description("task identifier's identifier"),
+                            fieldWithPath("name").type("String").description("task identifier's name"),
+                            fieldWithPath("description").type("String").description("task identifier's description"),
+                            fieldWithPath("actions").description("The task definition action"),
+                            fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
+                            fieldWithPath("mandatory").type("String").description("task identifier's identifier"))));
+  }
 
-    @Test
-    public void documentAddTaskDefinition () throws Exception {
+  @Test
+  public void documentDeleteTaskDefinition() throws Exception {
+    final Product product = createProduct();
+    final TaskDefinition taskDefinition = createTaskDefinition(product);
 
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-        taskDefinition.setIdentifier("ask");
-
-        Gson gson = new Gson();
-        this.mockMvc.perform(post("/products/"+product.getIdentifier()+"/tasks/")
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .content(gson.toJson(taskDefinition)))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-add-task-definition", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()),
-                        requestFields(
-                                fieldWithPath("identifier").type("String").description("task identifier's identifier"),
-                                fieldWithPath("name").type("String").description("task identifier's name"),
-                                fieldWithPath("description").type("String").description("task identifier's description"),
-                                fieldWithPath("actions").description("The task definition action"),
-                                fieldWithPath("fourEyes").type("String").description("task identifier's identifier"),
-                                fieldWithPath("mandatory").type("String").description("task identifier's identifier"))));
-    }
-
-    @Test
-    public void documentDeleteTaskDefinition () throws Exception {
-        final Product product = createProduct();
-        final TaskDefinition taskDefinition = createTaskDefinition(product);
-
-        this.mockMvc.perform(delete("/products/"+product.getIdentifier()+"/tasks/" + taskDefinition.getIdentifier())
-                .contentType(MediaType.APPLICATION_JSON_VALUE)
-                .accept(MediaType.ALL_VALUE))
-                .andExpect(status().isAccepted())
-                .andDo(document("document-delete-task-definition", preprocessResponse(prettyPrint())));
-    }
+    this.mockMvc.perform(delete("/products/" + product.getIdentifier() + "/tasks/" + taskDefinition.getIdentifier())
+            .contentType(MediaType.APPLICATION_JSON_VALUE)
+            .accept(MediaType.ALL_VALUE))
+            .andExpect(status().isAccepted())
+            .andDo(document("document-delete-task-definition", preprocessResponse(prettyPrint())));
+  }
 }