88import java .lang .reflect .Modifier ;
99import java .nio .file .Files ;
1010import java .nio .file .Path ;
11- import java .util .ArrayList ;
12- import java .util .Collections ;
13- import java .util .HashMap ;
14- import java .util .Iterator ;
15- import java .util .List ;
16- import java .util .Map ;
11+ import java .util .*;
1712import java .util .Map .Entry ;
13+ import java .util .concurrent .ConcurrentLinkedQueue ;
1814import java .util .regex .Pattern ;
19- import java .util .Queue ;
20- import java .util .Set ;
2115
2216import javax .validation .constraints .NotNull ;
2317
18+ import io .antmedia .statistic .*;
2419import org .apache .commons .io .FileUtils ;
2520import org .apache .commons .io .FilenameUtils ;
2621import org .apache .commons .lang3 .RandomStringUtils ;
7267import io .antmedia .settings .ServerSettings ;
7368import io .antmedia .shutdown .AMSShutdownManager ;
7469import io .antmedia .shutdown .IShutdownListener ;
75- import io .antmedia .statistic .DashViewerStats ;
76- import io .antmedia .statistic .HlsViewerStats ;
77- import io .antmedia .statistic .ViewerStats ;
7870import io .antmedia .statistic .type .RTMPToWebRTCStats ;
7971import io .antmedia .statistic .type .WebRTCAudioReceiveStats ;
8072import io .antmedia .statistic .type .WebRTCAudioSendStats ;
@@ -97,6 +89,7 @@ public class AntMediaApplicationAdapter extends MultiThreadedApplicationAdapter
9789 public static final String HOOK_ACTION_END_LIVE_STREAM = "liveStreamEnded" ;
9890 public static final String HOOK_ACTION_START_LIVE_STREAM = "liveStreamStarted" ;
9991 public static final String HOOK_ACTION_VOD_READY = "vodReady" ;
92+
10093 public static final String HOOK_ACTION_PUBLISH_TIMEOUT_ERROR = "publishTimeoutError" ;
10194 public static final String HOOK_ACTION_ENCODER_NOT_OPENED_ERROR = "encoderNotOpenedError" ;
10295 public static final String HOOK_ACTION_ENDPOINT_FAILED = "endpointFailed" ;
@@ -151,7 +144,7 @@ public class AntMediaApplicationAdapter extends MultiThreadedApplicationAdapter
151144
152145 protected StorageClient storageClient ;
153146
154- protected ArrayList <IStreamListener > streamListeners = new ArrayList <>();
147+ protected Queue <IStreamListener > streamListeners = new ConcurrentLinkedQueue <>();
155148
156149 IClusterStreamFetcher clusterStreamFetcher ;
157150
@@ -176,6 +169,7 @@ public boolean appStart(IScope app) {
176169 if (!result .isSuccess ()) {
177170 //Save App Setting
178171 this .shutdownProperly = false ;
172+
179173 // Reset Broadcast Stats
180174 resetBroadcasts ();
181175 }
@@ -241,7 +235,6 @@ else if (getServerSettings().getHostAddress().equals(storedSettings.getWarFileOr
241235
242236 setStorageclientSettings (appSettings );
243237
244-
245238 logger .info ("{} started" , app .getName ());
246239
247240 return true ;
@@ -357,7 +350,6 @@ public Result importVoDFolder(String vodFolderPath) {
357350 return result ;
358351 }
359352
360-
361353 public Result unlinksVoD (String directory )
362354 {
363355 //check the directory exist
@@ -1616,6 +1608,7 @@ public void setStorageclientSettings(AppSettings settings) {
16161608 storageClient .setEnabled (settings .isS3RecordingEnabled ());
16171609 storageClient .setPermission (settings .getS3Permission ());
16181610 storageClient .setStorageClass (settings .getS3StorageClass ());
1611+ storageClient .setCacheControl (settings .getS3CacheControl ());
16191612 storageClient .reset ();
16201613 }
16211614
0 commit comments