// Path: Web/src/main/java/org/emerjoin/hi/web/exceptions/HiException.java
// public class HiException extends ServletException {
// 
//     public HiException(String m){
// 
//         super(m);
// 
//     }
// 
//     public HiException(String m, Throwable throwable){
// 
//         super(m,throwable);
// 
//     }
// 
// }


import org.emerjoin.hi.web.exceptions.HiException;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
package org.emerjoin.hi.web.boot;



/**
 * @author Mário Júnior
 */
public class BootManager {

    private static List<BootExtension> extensions = new ArrayList<>();

    static {

        ServiceLoader<BootExtension> extensionsSPI =  ServiceLoader.load(BootExtension.class);
        for(BootExtension e: extensionsSPI)
            extensions.add(e);

    }


// Path: Web/src/main/java/org/emerjoin/hi/web/exceptions/HiException.java
// public class HiException extends ServletException {
// 
//     public HiException(String m){
// 
//         super(m);
// 
//     }
// 
//     public HiException(String m, Throwable throwable){
// 
//         super(m,throwable);
// 
//     }
// 
// }


// Path: Web/src/main/java/org/emerjoin/hi/web/boot/BootManager.java
import org.emerjoin.hi.web.exceptions.HiException;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;

package org.emerjoin.hi.web.boot;



/**
 * @author Mário Júnior
 */
public class BootManager {

    private static List<BootExtension> extensions = new ArrayList<>();

    static {

        ServiceLoader<BootExtension> extensionsSPI =  ServiceLoader.load(BootExtension.class);
        for(BootExtension e: extensionsSPI)
            extensions.add(e);

    }


    public static List<BootExtension> getExtensions() throws HiException {