1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 20 package org.netbeans.modules.web.api.webmodule; 21 22 import java.util.ArrayList; 23 import java.util.Collections; 24 import java.util.List; 25 import org.openide.filesystems.FileObject; 26 import org.openide.filesystems.Repository; 27 import org.netbeans.modules.web.spi.webmodule.WebFrameworkProvider; 28 import org.openide.loaders.DataFolder; 29 import org.openide.loaders.FolderLookup; 30 import org.openide.util.Lookup; 31 32 /** 33 * 34 * @author Petr Pisl 35 */ 36 37 /** This class contains two static methods for obtaining all registerd 38 * {@link org.netbeans.modules.web.spi.webmodule.WebFrameworkProvider}s 39 * and for obtaining all registered {@link org.netbeans.modules.web.spi.webmodule.LibraryInfoProvider}s. 40 **/ 41 42 public final class WebFrameworkSupport { 43 44 /** 45 * This method looks for all {@link org.netbeans.modules.web.spi.webmodule.WebFrameworkProvider}s in the j2ee/webtier/framework folder. 46 * @return List of all {@link org.netbeans.modules.web.spi.webmodule.WebFrameworkProvider}s, which are registered in the layer - j2ee/webtier/framework folder. 47 */ 48 public static List/*<WebFrameworkProvider>*/ getFrameworkProviders(){ 49 FileObject f = Repository.getDefault().getDefaultFileSystem(). 50 findResource("j2ee/webtier/framework"); //NOI18N 51 if (f == null) 52 return Collections.EMPTY_LIST; 53 DataFolder folder = DataFolder.findFolder(f); 54 FolderLookup l = new FolderLookup(folder); 55 Lookup.Result result = l.getLookup().lookup(new Lookup.Template(WebFrameworkProvider.class)); 56 return new ArrayList(result.allInstances()); // since allInstances() returns a Collection 57 } 58 } 59