public void addApplication( Application application ) { applications.add( application ); List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { applicationMap.put( fixApplicationUrl( application.getName() ), application ); } else { for( String url : application.getUrls() ) { applicationMap.put( fixApplicationUrl( url ), application ); } } }
public void addApplication( Application application ) { applications.add( application ); List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { applicationMap.put( fixApplicationUrl( application.getName() ), application ); } else { for( String url : application.getUrls() ) { applicationMap.put( fixApplicationUrl( url ), application ); } } }
static List<Application> findApplicationsByUrl( Topology topology, String url ) { List<Application> foundApps = new ArrayList<>(); if( topology != null ) { url = Urls.trimLeadingAndTrailingSlash( url ); Collection<Application> searchApps = topology.getApplications(); if( searchApps != null ) { for( Application searchApp : searchApps ) { List<String> searchUrls = searchApp.getUrls(); if( searchUrls == null || searchUrls.isEmpty() ) { searchUrls = new ArrayList<>(1); searchUrls.add( searchApp.getName() ); } for( String searchUrl : searchUrls ) { if( url.equalsIgnoreCase( Urls.trimLeadingAndTrailingSlash( searchUrl ) ) ) { foundApps.add( searchApp ); break; } } } } } return foundApps; }
static List<Application> findApplicationsByUrl( Topology topology, String url ) { List<Application> foundApps = new ArrayList<>(); if( topology != null ) { url = Urls.trimLeadingAndTrailingSlash( url ); Collection<Application> searchApps = topology.getApplications(); if( searchApps != null ) { for( Application searchApp : searchApps ) { List<String> searchUrls = searchApp.getUrls(); if( searchUrls == null || searchUrls.isEmpty() ) { searchUrls = new ArrayList<>(1); searchUrls.add( searchApp.getName() ); } for( String searchUrl : searchUrls ) { if( url.equalsIgnoreCase( Urls.trimLeadingAndTrailingSlash( searchUrl ) ) ) { foundApps.add( searchApp ); break; } } } } } return foundApps; }
private static Map<String,ServiceDeploymentContributor> selectContextApplications( GatewayConfig config, Topology topology ) { Map<String,ServiceDeploymentContributor> contributors = new HashMap<>(); if( topology != null ) { for( Application application : topology.getApplications() ) { String name = application.getName(); if( name == null || name.isEmpty() ) { throw new DeploymentException( "Topologies cannot contain an application without a name." ); } ApplicationDeploymentContributor contributor = new ApplicationDeploymentContributor( config, application ); List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { urls = new ArrayList<>( 1 ); urls.add( "/" + name ); } for( String url : urls ) { if( url == null || url.isEmpty() || url.equals( "/" ) ) { if( !topology.getServices().isEmpty() ) { throw new DeploymentException( String.format(Locale.ROOT, "Topologies with services cannot contain an application (%s) with a root url.", name ) ); } } contributors.put( url, contributor ); } } } return contributors; }
private static Map<String,ServiceDeploymentContributor> selectContextApplications( GatewayConfig config, Topology topology ) { Map<String,ServiceDeploymentContributor> contributors = new HashMap<>(); if( topology != null ) { for( Application application : topology.getApplications() ) { String name = application.getName(); if( name == null || name.isEmpty() ) { throw new DeploymentException( "Topologies cannot contain an application without a name." ); } ApplicationDeploymentContributor contributor = new ApplicationDeploymentContributor( config, application ); List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { urls = new ArrayList<>( 1 ); urls.add( "/" + name ); } for( String url : urls ) { if( url == null || url.isEmpty() || "/".equals(url) ) { if( !topology.getServices().isEmpty() ) { throw new DeploymentException( String.format(Locale.ROOT, "Topologies with services cannot contain an application (%s) with a root url.", name ) ); } } contributors.put( url, contributor ); } } } return contributors; }
private synchronized void internalDeployApplications( Topology topology, File topoDir ) throws IOException, ZipException, ParserConfigurationException, TransformerException, SAXException { if( topology != null ) { Collection<Application> applications = topology.getApplications(); if( applications != null ) { for( Application application : applications ) { List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { internalDeployApplication( topology, topoDir, application, application.getName() ); } else { for( String url : urls ) { internalDeployApplication( topology, topoDir, application, url ); } } } } } }
private synchronized void internalDeployApplications( Topology topology, File topoDir ) throws IOException, ZipException, ParserConfigurationException, TransformerException, SAXException { if( topology != null ) { Collection<Application> applications = topology.getApplications(); if( applications != null ) { for( Application application : applications ) { List<String> urls = application.getUrls(); if( urls == null || urls.isEmpty() ) { internalDeployApplication( topoDir, application, application.getName() ); } else { for( String url : urls ) { internalDeployApplication( topoDir, application, url ); } } } } } }
static void validateNoAppsWithDuplicateUrlsInTopology( Topology topology ) { if( topology != null ) { Collection<Application> apps = topology.getApplications(); if( apps != null ) { for( Application app : apps ) { List<String> urls = app.getUrls(); if( urls == null || urls.isEmpty() ) { urls = new ArrayList<>(1); urls.add( app.getName() ); } for( String url : urls ) { List<Application> dups = findApplicationsByUrl( topology, url ); if( dups != null ) { for( Application dup : dups ) { if( dup != app ) { throw new DeploymentException( "Topology " + topology.getName() + " contains applications " + app.getName() + " and " + dup.getName() + " with the same url: " + url ); } } } } } } } }
static void validateNoAppsWithDuplicateUrlsInTopology( Topology topology ) { if( topology != null ) { Collection<Application> apps = topology.getApplications(); if( apps != null ) { for( Application app : apps ) { List<String> urls = app.getUrls(); if( urls == null || urls.isEmpty() ) { urls = new ArrayList<>(1); urls.add( app.getName() ); } for( String url : urls ) { List<Application> dups = findApplicationsByUrl( topology, url ); if( dups != null ) { for( Application dup : dups ) { if( dup != app ) { //NOPMD - check for exact same object throw new DeploymentException( "Topology " + topology.getName() + " contains applications " + app.getName() + " and " + dup.getName() + " with the same url: " + url ); } } } } } } } }
private static Application getApplication( org.apache.knox.gateway.topology.Application application) { Application applicationResource = new Application(); applicationResource.setRole(application.getRole()); applicationResource.setName(application.getName()); Version version = application.getVersion(); if (version != null) { applicationResource.setVersion(version.toString()); } Collection<org.apache.knox.gateway.topology.Param> paramsList = application.getParamsList(); if (paramsList != null && !paramsList.isEmpty()) { for ( org.apache.knox.gateway.topology.Param param : paramsList ) { applicationResource.getParams().add(getParam(param)); } } for ( String url : application.getUrls() ) { applicationResource.getUrls().add( url ); } return applicationResource; }
private static org.apache.knox.gateway.topology.Application getApplication(Application application) { org.apache.knox.gateway.topology.Application applicationResource = new org.apache.knox.gateway.topology.Application(); applicationResource.setRole(application.getRole()); applicationResource.setName(application.getName()); if (application.getVersion() != null) { applicationResource.setVersion(new Version(application.getVersion())); } for ( Param param : application.getParams() ) { applicationResource.addParam( getParam(param) ); } for ( String url : application.getUrls() ) { applicationResource.getUrls().add( url ); } return applicationResource; }