diff --git a/fbpcs/infra/cloud_bridge/server/build.gradle b/fbpcs/infra/cloud_bridge/server/build.gradle index 04573937a..c7a3a83b1 100644 --- a/fbpcs/infra/cloud_bridge/server/build.gradle +++ b/fbpcs/infra/cloud_bridge/server/build.gradle @@ -18,6 +18,7 @@ plugins { id 'org.springframework.boot' version '2.7.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' + id 'io.freefair.lombok' version '5.1.0' } group = 'com.facebook' @@ -39,6 +40,8 @@ dependencies { implementation 'org.apache.commons:commons-lang3' implementation platform('com.amazonaws:aws-java-sdk-bom:1.12.+') testImplementation group: 'junit', name: 'junit', version: '4.13.2' + compileOnly 'org.projectlombok:lombok:1.18.26' + annotationProcessor 'org.projectlombok:lombok:1.18.26' } test { diff --git a/fbpcs/infra/cloud_bridge/server/lombok.config b/fbpcs/infra/cloud_bridge/server/lombok.config new file mode 100644 index 000000000..6aa51d71e --- /dev/null +++ b/fbpcs/infra/cloud_bridge/server/lombok.config @@ -0,0 +1,2 @@ +# This file is generated by the 'io.freefair.lombok' Gradle plugin +config.stopBubbling = true diff --git a/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/cache/ThreadSafeCache.java b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/cache/ThreadSafeCache.java new file mode 100644 index 000000000..1b86c1ba1 --- /dev/null +++ b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/cache/ThreadSafeCache.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.business.cloudbridge.pl.server.deployment.cache; + +import java.util.concurrent.ConcurrentHashMap; + +public class ThreadSafeCache { + private ConcurrentHashMap map; + + public ThreadSafeCache() { + map = new ConcurrentHashMap(); + } + + public void put(K key, V value) { + map.put(key, value); + } + + public V get(K key) { + return map.get(key); + } + + public void remove(K key) { + map.remove(key); + } + + public boolean containsKey(K key) { + return map.containsKey(key); + } + + public int size() { + return map.size(); + } + + public void clear() { + map.clear(); + } +} diff --git a/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentMeta.java b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentMeta.java new file mode 100644 index 000000000..79d31e8fa --- /dev/null +++ b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentMeta.java @@ -0,0 +1,18 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.business.cloudbridge.pl.server.deployment.models; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class DeploymentMeta { + private String deploymentId; + private DeploymentStatus deploymentStatus; +} diff --git a/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentStatus.java b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentStatus.java new file mode 100644 index 000000000..df0c3b4bd --- /dev/null +++ b/fbpcs/infra/cloud_bridge/server/src/main/java/com/facebook/business/cloudbridge/pl/server/deployment/models/DeploymentStatus.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.business.cloudbridge.pl.server.deployment.models; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum DeploymentStatus { + NOT_STARTED("NOT_STARTED"), + STARTED("STARTED"), + ERROR("ERROR"), + COMPLETED("COMPLETED"); + + private final String status; +}