Package org.jets3t.service.model.cloudfront

Examples of org.jets3t.service.model.cloudfront.DistributionConfig


        public void startDistributionConfig() {
            transferControlToHandler(new DistributionConfigHandler());
        }
       
        public void controlReturned(SimpleHandler childHandler) {
            DistributionConfig config =
                ((DistributionConfigHandler) childHandler).getDistributionConfig();
            this.distribution = new Distribution(id, status,
                lastModifiedTime, domainName, config);
        }
View Full Code Here


        public void endEnabled(String text) {
            this.enabled = "true".equalsIgnoreCase(text);
        }

        public void endDistributionConfig(String text) {
            this.distributionConfig = new DistributionConfig(
                origin, callerReference,
                (String[]) cnamesList.toArray(new String[cnamesList.size()]),
                comment, enabled);
            returnControlToParentHandler();
        }
View Full Code Here

            performRestRequest(httpMethod, 200);

            DistributionConfigHandler handler = (new CloudFrontXmlResponsesSaxParser())
                .parseDistributionConfigResponse(httpMethod.getResponseBodyAsStream());
           
            DistributionConfig config = handler.getDistributionConfig();
            config.setEtag(httpMethod.getResponseHeader("ETag").getValue());           
            return config;
        } catch (CloudFrontServiceException e) {
            throw e;
        } catch (Exception e) {
            throw new CloudFrontServiceException(e);
View Full Code Here

        if (log.isDebugEnabled()) {
            log.debug("Setting configuration of distribution with id: " + id);
        }

        // Retrieve the old configuration.
        DistributionConfig oldConfig = getDistributionConfig(id);
       
        // Sanitize parameters.
        if (cnames == null) {
            cnames = oldConfig.getCNAMEs();
        }
        if (comment == null) {
            comment = oldConfig.getComment();
        }       
       
        PutMethod httpMethod = new PutMethod(ENDPOINT + VERSION + "/distribution/" + id + "/config");
               
        try {
            XMLBuilder builder = XMLBuilder.create("DistributionConfig")
                .a("xmlns", XML_NAMESPACE)
                .e("Origin").t(oldConfig.getOrigin()).up()
                .e("CallerReference").t(oldConfig.getCallerReference()).up();
            for (int i = 0; i < cnames.length; i++) {
                builder.e("CNAME").t(cnames[i]).up();
            }
            builder
                .e("Comment").t(comment).up()
                .e("Enabled").t("" + enabled);
           
            httpMethod.setRequestEntity(
                new StringRequestEntity(builder.asString(null), "text/xml", Constants.DEFAULT_ENCODING));
            httpMethod.setRequestHeader("If-Match", oldConfig.getEtag());

            performRestRequest(httpMethod, 200);

            DistributionConfigHandler handler = (new CloudFrontXmlResponsesSaxParser())
                .parseDistributionConfigResponse(httpMethod.getResponseBodyAsStream());

            DistributionConfig config = handler.getDistributionConfig();
            config.setEtag(httpMethod.getResponseHeader("ETag").getValue());           
            return config;
        } catch (CloudFrontServiceException e) {
            throw e;
        } catch (Exception e) {
            throw new CloudFrontServiceException(e);
View Full Code Here

        if (log.isDebugEnabled()) {
            log.debug("Deleting distribution with id: " + id);
        }
       
        // Get the distribution's current config.
        DistributionConfig currentConfig = getDistributionConfig(id);

        DeleteMethod httpMethod = new DeleteMethod(ENDPOINT + VERSION + "/distribution/" + id);
               
        try {
            httpMethod.setRequestHeader("If-Match", currentConfig.getEtag());
            performRestRequest(httpMethod, 204);
        } catch (CloudFrontServiceException e) {
            throw e;
        } catch (Exception e) {
            throw new CloudFrontServiceException(e);
View Full Code Here

        assertNotNull(distribution.getDomainName());
        assertNotNull(distribution.getLastModifiedTime());
        assertEquals("InProgress", distribution.getStatus());
        assertEquals(0, distribution.getActiveTrustedSigners().size());
        // Check distribution config info
        DistributionConfig config = distribution.getConfig();
        assertEquals(callerId, config.getCallerReference());
        assertEquals(comment, config.getComment());
        assertEquals(false, config.isEnabled());
        assertEquals(Arrays.asList(cnames), Arrays.asList(config.getCNAMEs()));
        assertEquals(1, config.getOrigins().length);
        assertEquals(S3Origin.class, config.getOrigins()[0].getClass());
        S3Origin origin = (S3Origin) config.getOrigins()[0];
        assertEquals("default-origin-id", origin.getId());
        assertEquals(originBucket, origin.getDomainName());
        assertNull(origin.getOriginAccessIdentity());
        assertEquals(originBucket.split("\\.")[0], origin.getOriginAsBucketName());
        // Check cache behaviors
        CacheBehavior defaultCacheBehavior = config.getDefaultCacheBehavior();
        assertNull(defaultCacheBehavior.getPathPattern());
        assertEquals(origin.getId(), defaultCacheBehavior.getTargetOriginId());
        assertEquals(false, defaultCacheBehavior.isForwardQueryString());
        assertEquals(Long.valueOf(0), defaultCacheBehavior.getMinTTL());
        assertEquals(0, defaultCacheBehavior.getTrustedSignerAwsAccountNumbers().length);
        assertEquals(ViewerProtocolPolicy.ALLOW_ALL, defaultCacheBehavior.getViewerProtocolPolicy());
        // Check legacy distribution info (pre 2012-05-05 API version)
        assertEquals(comment, distribution.getComment());
        assertEquals(Arrays.asList(cnames), Arrays.asList(distribution.getCNAMEs()));
        assertEquals(false, distribution.isEnabled());
        assertTrue(distribution.getOrigin() instanceof S3Origin);
        origin = (S3Origin) distribution.getOrigin();

        // Update distribution to enable it, add a CNAME, update comment, enable logging,
        // set default root object, set default cache behavior, add additional cache behavior
        cnames = new String[] {callerId + originBucket, callerId + "2" + originBucket};
        comment = "Updated comment";
        LoggingStatus logging = new LoggingStatus("log-bucket.s3.amazonaws.com", "log-prefix/");
        DistributionConfig testDistributionConfig = new DistributionConfig(
            distribution.getConfig().getOrigins(),
            distribution.getConfig().getCallerReference(),
            cnames,
            comment,
            true, // Enabled
            logging,
            "index.html", // defaultRootObject
            // defaultCacheBehavior
            new CacheBehavior(
                distribution.getConfig().getOrigins()[0].getId(),
                false, // isForwardQueryString
                new String[] {"self"}, // trustedSignerAwsAccountNumbers
                ViewerProtocolPolicy.HTTPS_ONLY,
                3600l // minTTL
                ),
            // Additional cache behavior
            new CacheBehavior[] {
                new CacheBehavior(
                    "/https-only-path"// pathPattern
                    distribution.getConfig().getOrigins()[0].getId(),
                    true, // isForwardQueryString
                    null, // trustedSignerAwsAccountNumbers
                    ViewerProtocolPolicy.ALLOW_ALL,
                    1800l // minTTL
                    )}
            );
        config = getService().updateDistributionConfig(
            distribution.getId(), testDistributionConfig);

        // Check distribution config info
        assertEquals(testDistributionConfig.getCallerReference(), config.getCallerReference());
        assertEquals(testDistributionConfig.getComment(), config.getComment());
        assertEquals(testDistributionConfig.isEnabled(), config.isEnabled());
        List testConfigCNAMEs = Arrays.asList(testDistributionConfig.getCNAMEs());
        List configCNAMEs = Arrays.asList(config.getCNAMEs());
        // Collections.sort() returns null, bah!
        Collections.sort(testConfigCNAMEs);
        Collections.sort(configCNAMEs);
        assertEquals(testConfigCNAMEs, configCNAMEs);
View Full Code Here

        // List information about a distribution
        Distribution distribution = cloudFrontService.getDistributionInfo(testDistributionId);
        System.out.println("Distribution: " + distribution);

        // List configuration information about a distribution
        DistributionConfig distributionConfig = cloudFrontService.getDistributionConfig(testDistributionId);
        System.out.println("Distribution Config: " + distributionConfig);

        // Update a distribution's configuration to add an extra CNAME alias and enable logging.
        DistributionConfig updatedDistributionConfig = cloudFrontService.updateDistributionConfig(
            testDistributionId,
            null, // origin -- null for no changes
            new String[] {"test1.jamesmurty.com", "test2.jamesmurty.com"}, // CNAME aliases for distribution
            "Another comment for testing", // Comment
            true, // Distribution enabled?
            new LoggingStatus("log-bucket.s3.amazonaws.com", "log-prefix/"// Distribution logging
            );
        System.out.println("Updated Distribution Config: " + updatedDistributionConfig);

        // Update a distribution's configuration to require secure HTTPS
        // connections, using the RequiredProtocols feature
        updatedDistributionConfig = cloudFrontService.updateDistributionConfig(
            testDistributionId,
            null, // origin -- null for no changes
            new String[] {"test1.jamesmurty.com", "test2.jamesmurty.com"}, // CNAME aliases for distribution
            "HTTPS Only!", // Comment
            true, // Distribution enabled?
            new LoggingStatus("log-bucket.s3.amazonaws.com", "log-prefix/")// Distribution logging
            false, // URLs self-signing disabled
            null,  // No other AWS users can sign URLs
            new String[] {"https"}, // RequiredProtocols with HTTPS protocol
            "index.html" // Default Root Object
        );
        System.out.println("HTTPS only distribution Config: " + updatedDistributionConfig);

        // Update a distribution's configuration to change the time-to-live (MinTTL) setting.
        updatedDistributionConfig.setMinTTL(5L)// Set TTL to 5 seconds
        updatedDistributionConfig = cloudFrontService.updateDistributionConfig(
            testDistributionId, updatedDistributionConfig);
        System.out.println("Distribution Config with custom MinTTL: " + updatedDistributionConfig);

        // Disable a distribution, e.g. so that it may be deleted.
        // The CloudFront service may take some time to disable and deploy the distribution.
        DistributionConfig disabledDistributionConfig = cloudFrontService.updateDistributionConfig(
            testDistributionId, null, new String[] {}, "Deleting distribution", false, null);
        System.out.println("Disabled Distribution Config: " + disabledDistributionConfig);

        // Check whether a distribution is deployed
        distribution = cloudFrontService.getDistributionInfo(testDistributionId);
View Full Code Here

                actionButton.setText("New Distribution");
                actionButton.setActionCommand("NewDistribution");
                actionButton.setEnabled(true);
            } else {
                // Retrieve distribution's configuration to access current logging status settings.
                DistributionConfig distributionConfig = null;
                try {
                    distributionConfig = cloudFrontService.getDistributionConfig(distribution.getId());
                } catch (CloudFrontServiceException ex) {
                    String message = "Unable to retrieve configuration information "
                        + "for distribution: " + distribution.getId();
                    ErrorDialog.showDialog(ownerFrame, this, message, ex);
                    return;
                }

                if (distribution.getOrigin() instanceof S3Origin) {
                    bucketComboBox.setSelectedItem(
                        ((S3Origin)distribution.getOrigin()).getOriginAsBucketName());
                }
                bucketComboBox.setEnabled(false);
                enabledCheckbox.setSelected(distribution.isEnabled());
                httpsOnlyCheckbox.setSelected(distributionConfig.isHttpsProtocolRequired());
                defaultRootObjectTextField.setText(distributionConfig.getDefaultRootObject());
                if (distributionConfig.isStreamingDistributionConfig()) {
                    minTTLTextField.setEnabled(false);
                    minTTLTextField.setText("N/A");
                } else {
                    minTTLTextField.setEnabled(true);
                    Long minTTL = distributionConfig.getMinTTL();
                    if (minTTL == null) {
                        minTTLTextField.setText("0");
                    } else {
                        minTTLTextField.setText(minTTL.toString());
                    }
                }

                if (distributionConfig.getLoggingStatus() != null) {
                    loggingBucketComboBox.setSelectedItem(
                        distributionConfig.getLoggingStatus().getShortBucketName());
                    loggingPrefixTextField.setText(
                        distributionConfig.getLoggingStatus().getPrefix());
                } else {
                    loggingBucketComboBox.setSelectedIndex(0);
                    loggingPrefixTextField.setText("");
                }
View Full Code Here

TOP

Related Classes of org.jets3t.service.model.cloudfront.DistributionConfig

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.