Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.facebook.presto.metadata;
 
 
 
 import java.io.File;
 import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.Maps.fromProperties;
 
 public class CatalogManager
 {
     private static final Logger log = Logger.get(CatalogManager.class);
     private final ConnectorManager connectorManager;
     private final File catalogConfigurationDir;
     private final AtomicBoolean catalogsLoading = new AtomicBoolean();
     private final AtomicBoolean catalogsLoaded = new AtomicBoolean();
 
     @Inject
     public CatalogManager(ConnectorManager connectorManagerCatalogManagerConfig config)
     {
         this(connectorManagerconfig.getCatalogConfigurationDir());
     }
 
     public CatalogManager(ConnectorManager connectorManagerFile catalogConfigurationDir)
     {
         this. = connectorManager;
         this. = catalogConfigurationDir;
     }
 
     public boolean areCatalogsLoaded()
     {
         return .get();
     }
 
     public void loadCatalogs()
             throws Exception
     {
         if (!.compareAndSet(falsetrue)) {
             return;
         }
 
         for (File file : listFiles()) {
             if (file.isFile() && file.getName().endsWith(".properties")) {
                 loadCatalog(file);
             }
         }
 
         .set(true);
     }
 
     private void loadCatalog(File file)
             throws Exception
     {
         .info("-- Loading catalog %s --"file);
         Map<StringStringproperties = new HashMap<>(loadProperties(file));
 
         String connectorName = properties.remove("connector.name");
         checkState(connectorName != null"Catalog configuration %s does not contain conector.name"file.getAbsoluteFile());
 
         String catalogName = Files.getNameWithoutExtension(file.getName());
 
         .createConnection(catalogNameconnectorName, ImmutableMap.copyOf(properties));
         .info("-- Added catalog %s using connector %s --"catalogNameconnectorName);
     }
 
     private static List<FilelistFiles(File installedPluginsDir)
     {
         if (installedPluginsDir != null && installedPluginsDir.isDirectory()) {
             File[] files = installedPluginsDir.listFiles();
             if (files != null) {
                 return ImmutableList.copyOf(files);
             }
         }
        return ImmutableList.of();
    }
    private static Map<StringStringloadProperties(File file)
            throws Exception
    {
        checkNotNull(file"file is null");
        Properties properties = new Properties();
        try (FileInputStream in = new FileInputStream(file)) {
            properties.load(in);
        }
        return fromProperties(properties);
    }
New to GrepCode? Check out our FAQ X