Skip to content

Commit

Permalink
fix: [DHIS2-18690] Re-add TESchemaDescriptor to avoid in-memory query…
Browse files Browse the repository at this point in the history
… planner (2.41) (#19553)

* fix: [DHIS2-18690] Re-add TESchemaDescriptor to avoid in-memory query planner (2.41)

* fix integration test schema based controller to ignore TEISchemaDescriptor

* Re-add Enrollment and Event Schema descriptor

* Checkstyle fix
  • Loading branch information
ameenhere authored Dec 23, 2024
1 parent 02545ed commit 8a6f820
Show file tree
Hide file tree
Showing 5 changed files with 150 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,13 @@
import org.hisp.dhis.schema.descriptors.DataSetNotificationTemplateSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.DataSetSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.DocumentSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EnrollmentSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventChartSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventFilterSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventHookSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventRepetitionSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventReportSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.EventVisualizationSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.ExpressionDimensionItemSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.ExpressionSchemaDescriptor;
Expand Down Expand Up @@ -167,6 +169,7 @@
import org.hisp.dhis.schema.descriptors.TrackedEntityDataElementDimensionSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.TrackedEntityFilterSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.TrackedEntityProgramIndicatorDimensionSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.TrackedEntitySchemaDescriptor;
import org.hisp.dhis.schema.descriptors.TrackedEntityTypeAttributeSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.TrackedEntityTypeSchemaDescriptor;
import org.hisp.dhis.schema.descriptors.UserAccessSchemaDescriptor;
Expand Down Expand Up @@ -281,6 +284,7 @@ private void init() {
register(new SqlViewSchemaDescriptor());
register(new TrackedEntityAttributeSchemaDescriptor());
register(new TrackedEntityAttributeValueSchemaDescriptor());
register(new TrackedEntitySchemaDescriptor());
register(new TrackedEntityFilterSchemaDescriptor());
register(new TrackedEntityTypeSchemaDescriptor());
register(new TrackedEntityTypeAttributeSchemaDescriptor());
Expand Down Expand Up @@ -312,6 +316,8 @@ private void init() {
register(new OrganisationUnitGroupSetDimensionSchemaDescriptor());
register(new RelationshipSchemaDescriptor());
register(new KeyJsonValueSchemaDescriptor());
register(new EnrollmentSchemaDescriptor());
register(new EventSchemaDescriptor());
register(new EventFilterSchemaDescriptor());
register(new VisualizationSchemaDescriptor());
register(new ApiTokenSchemaDescriptor());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* Copyright (c) 2004-2022, University of Oslo
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* Neither the name of the HISP project nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hisp.dhis.schema.descriptors;

import org.hisp.dhis.program.Enrollment;
import org.hisp.dhis.schema.Schema;
import org.hisp.dhis.schema.SchemaDescriptor;

public class EnrollmentSchemaDescriptor implements SchemaDescriptor {
public static final String SINGULAR = "programInstance";

public static final String PLURAL = "programInstances";

public static final String API_ENDPOINT = "/" + PLURAL;

@Override
public Schema getSchema() {
return new Schema(Enrollment.class, SINGULAR, PLURAL);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* Copyright (c) 2004-2022, University of Oslo
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* Neither the name of the HISP project nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hisp.dhis.schema.descriptors;

import org.hisp.dhis.program.Event;
import org.hisp.dhis.schema.Schema;
import org.hisp.dhis.schema.SchemaDescriptor;

public class EventSchemaDescriptor implements SchemaDescriptor {
public static final String SINGULAR = "programStageInstance";

public static final String PLURAL = "programStageInstances";

public static final String API_ENDPOINT = "/" + PLURAL;

@Override
public Schema getSchema() {
return new Schema(Event.class, SINGULAR, PLURAL);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Copyright (c) 2004-2022, University of Oslo
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* Neither the name of the HISP project nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hisp.dhis.schema.descriptors;

import org.hisp.dhis.schema.Schema;
import org.hisp.dhis.schema.SchemaDescriptor;
import org.hisp.dhis.trackedentity.TrackedEntity;

/**
* @author Morten Olav Hansen <[email protected]>
*/
public class TrackedEntitySchemaDescriptor implements SchemaDescriptor {

public static final String SINGULAR = "trackedEntityInstance";

public static final String PLURAL = "trackedEntityInstances";

public static final String API_ENDPOINT = "/" + PLURAL;

@Override
public Schema getSchema() {
Schema schema = new Schema(TrackedEntity.class, SINGULAR, PLURAL);
schema.setRelativeApiEndpoint(API_ENDPOINT);

return schema;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ class SchemaBasedControllerTest extends DhisControllerIntegrationTest {
"programStageWorkingList", // same reason as programStage
"dataElement", // non-postgres SQL in deletion handler
"predictor", // NPE in preheat when creating objects
"aggregateDataExchange" // required JSONB objects not working
"aggregateDataExchange", // required JSONB objects not working
"trackedEntityInstance" // needs TrackedEntityType
);

/**
Expand Down

0 comments on commit 8a6f820

Please sign in to comment.