| /******************************************************************************* |
| * Copyright (c) 2009, 2010 EclipseSource and others. All rights reserved. This |
| * program and the accompanying materials are made available under the terms of |
| * the Eclipse Public License v1.0 which accompanies this distribution, and is |
| * available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * EclipseSource - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.equinox.p2.internal.repository.tools.analyzer; |
| |
| import java.util.Collection; |
| import org.eclipse.equinox.p2.metadata.*; |
| import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; |
| import org.eclipse.equinox.p2.repository.tools.analyzer.IUAnalyzer; |
| |
| /** |
| * This service checks that each Feature Jar IU has the unzip touchpoint |
| */ |
| public class UnzipFeatureJarAnalyzer extends IUAnalyzer { |
| |
| public void analyzeIU(IInstallableUnit iu) { |
| if (iu.getId().indexOf("feature.jar") > -1) { |
| Collection<ITouchpointData> touchpointData = iu.getTouchpointData(); |
| if (touchpointData.size() == 0) { |
| error(iu, "[ERROR] No unzip touchpoint for: " + iu.getId()); |
| } else { |
| boolean found = false; |
| for (ITouchpointData td : touchpointData) { |
| ITouchpointInstruction instruction = td.getInstruction("zipped"); |
| if (instruction.getBody().equals("true")) |
| found = true; |
| } |
| if (!found) { |
| error(iu, "[ERROR] No unzip touchpoint for: " + iu.getId()); |
| } |
| } |
| } |
| |
| } |
| |
| public void preAnalysis(IMetadataRepository repository) { |
| // Do nothing |
| } |
| |
| } |