/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * 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 *******************************************************************************/ package org.ebayopensource.turmeric.eclipse.repositorysystem.utils; import java.util.Arrays; import java.util.List; import java.util.Properties; import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants; import org.ebayopensource.turmeric.eclipse.resources.model.AssetInfo; import org.ebayopensource.turmeric.eclipse.resources.model.IAssetInfo; import org.ebayopensource.turmeric.eclipse.resources.model.ProjectInfo; import org.ebayopensource.turmeric.eclipse.resources.util.SOAIntfUtil; import org.ebayopensource.turmeric.eclipse.utils.plugin.WorkspaceUtil; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; /** * The Class RepositoryUtils. * * @author smathew * * Util class for Repo */ public class RepositoryUtils { /** * returns the projects which has the nature in the workspace as an * AssetInfo Collection. If the natures is empty , this api returns all * projects in workspace * * @param natureIds the nature ids * @return Set * @throws CoreException the core exception * @see AssetInfo */ public static Set<AssetInfo> getProjectInfoProjectsFromWorkSpace( String... natureIds) throws CoreException { Set<AssetInfo> projectSet = new TreeSet<AssetInfo>(); List<IProject> projects = WorkspaceUtil.getProjectsByNature(natureIds); if (natureIds.length == 0) { projects = Arrays.asList(WorkspaceUtil.getAllProjectsInWorkSpace()); } for (IProject project : projects) { if (project.isOpen()) { AssetInfo assetInfo = new AssetInfo(project.getName(), IAssetInfo.TYPE_PROJECT); projectSet.add(assetInfo); } } return projectSet; } /** * Gets the interface projects from work space. * * @return the interface projects from work space * @throws Exception the exception */ public static Set<ProjectInfo> getInterfaceProjectsFromWorkSpace() throws Exception { Set<ProjectInfo> projectSet = new TreeSet<ProjectInfo>(); IProject[] projects = WorkspaceUtil.getAllProjectsInWorkSpace(); for (IProject project : projects) { if (project.isAccessible()) { if (TurmericServiceUtils.isSOAInterfaceProject(project)) { final Properties props = SOAIntfUtil.loadMetadataProps( project, project.getName()); if (props != null) { final String adminName = props.containsKey(SOAProjectConstants.PROP_KEY_ADMIN_NAME) ? props.getProperty(SOAProjectConstants.PROP_KEY_ADMIN_NAME) : props.getProperty(SOAProjectConstants.PROP_KEY_SERVICE_NAME); final ProjectInfo info = new ProjectInfo( StringUtils.trim(adminName), StringUtils.trim(props.getProperty(SOAProjectConstants.PROP_KEY_SERVICE_VERSION)), project.getLocation().toString(), StringUtils.trim(props.getProperty(SOAProjectConstants.PROP_KEY_SERVICE_LAYER)), IAssetInfo.TYPE_SERVICE_LIBRARY); projectSet.add(info); } } } } return projectSet; } }