16
16
* under the License.
17
17
*/
18
18
19
- package org .wso2 .carbon .apimgt .impl . utils ;
19
+ package org .wso2 .carbon .apimgt .impl ;
20
20
21
21
import com .fasterxml .jackson .core .type .TypeReference ;
22
22
import org .apache .commons .lang3 .StringUtils ;
32
32
import org .apache .http .ssl .SSLContexts ;
33
33
import org .apache .http .util .EntityUtils ;
34
34
import org .wso2 .carbon .apimgt .api .APIConsumer ;
35
- import org .wso2 .carbon .apimgt .impl .APIConstants ;
36
- import org .wso2 .carbon .apimgt .impl .APIManagerConfiguration ;
37
- import org .wso2 .carbon .apimgt .impl .APIManagerFactory ;
38
35
import org .wso2 .carbon .apimgt .impl .dao .constants .DevPortalProcessingConstants ;
39
36
import org .wso2 .carbon .apimgt .api .APIManagementException ;
40
37
import org .wso2 .carbon .apimgt .api .model .API ;
60
57
/**
61
58
* This class used to handle newly introduced 2025 version of Developer Portal's configuration with APIM.
62
59
*/
63
- public class NewDevPortalHandler {
64
- private static final Log log = LogFactory .getLog (NewDevPortalHandler .class );
60
+ public class NewDevPortalHandlerImpl implements NewDevPortalHandler {
61
+
62
+ private static final Log log = LogFactory .getLog (NewDevPortalHandlerImpl .class );
65
63
private static final String baseUrl = getNewPortalURL ();
66
64
private static final ObjectMapper objectMapper = new ObjectMapper ();
67
65
private static final Map <String , String > orgIdCache = new ConcurrentHashMap <>();
66
+ private static volatile NewDevPortalHandlerImpl instance ;
67
+
68
+ private NewDevPortalHandlerImpl () {}
69
+
70
+ public static NewDevPortalHandlerImpl getInstance () {
71
+ if (instance == null ) {
72
+ synchronized (NewDevPortalHandlerImpl .class ) {
73
+ if (instance == null ) {
74
+ instance = new NewDevPortalHandlerImpl ();
75
+ }
76
+ }
77
+ }
78
+ return instance ;
79
+ }
80
+
68
81
69
82
private static class HttpResponseData {
70
83
private final int statusCode ;
@@ -84,11 +97,13 @@ private String getResponseBody() {
84
97
}
85
98
}
86
99
87
- public static boolean isNewPortalEnabled () {
100
+ @ Override
101
+ public boolean isNewPortalEnabled () {
88
102
return Boolean .parseBoolean (getConfigProperty (APIConstants .API_STORE_NEW_PORTAL_ENABLED , "false" ));
89
103
}
90
104
91
- public static void publish (String tenantName , ApiTypeWrapper apiTypeWrapper ) {
105
+ @ Override
106
+ public void publish (String tenantName , ApiTypeWrapper apiTypeWrapper ) {
92
107
try {
93
108
SSLConnectionSocketFactory sslsf = generateSSLSF ();
94
109
publishAPI (apiTypeWrapper , tenantName , sslsf );
@@ -97,7 +112,8 @@ public static void publish(String tenantName, ApiTypeWrapper apiTypeWrapper) {
97
112
}
98
113
}
99
114
100
- public static void update (String tenantName , ApiTypeWrapper apiTypeWrapper ) {
115
+ @ Override
116
+ public void update (String tenantName , ApiTypeWrapper apiTypeWrapper ) {
101
117
try {
102
118
SSLConnectionSocketFactory sslsf = generateSSLSF ();
103
119
updateAPI (apiTypeWrapper , tenantName , sslsf );
@@ -106,7 +122,8 @@ public static void update(String tenantName, ApiTypeWrapper apiTypeWrapper) {
106
122
}
107
123
}
108
124
109
- public static void unpublish (String tenantName , API api ) {
125
+ @ Override
126
+ public void unpublish (String tenantName , API api ) {
110
127
try {
111
128
SSLConnectionSocketFactory sslsf = generateSSLSF ();
112
129
unpublishAPI (api , tenantName , sslsf );
0 commit comments