1 /* 2 * Copyright (C) 2007-2012 Argeo GmbH 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.argeo.slc.rpmfactory; 17 18 import java.io.File; 19 import java.util.List; 20 21 import javax.jcr.Node; 22 23 /** 24 * Defines a build environment. This information is typically used by other 25 * components performing the various actions related to RPM build. 26 */ 27 public interface RpmFactory { 28 // 29 // DIRECT ACTIONS ON JCR REPOSITORY 30 // 31 public void indexWorkspace(String workspace); 32 33 public Node newDistribution(String distributionId); 34 35 // 36 // CONFIG FILES GENERATION 37 // 38 /** Creates a mock config file. */ 39 public File getMockConfigFile(String arch, String branch); 40 41 /** Creates a yum config file. */ 42 public File getYumRepoFile(String arch); 43 44 // 45 // WORKSPACES 46 // 47 public String getStagingWorkspace(); 48 49 /** 50 * @return the name of the testing workspace, or null if and only if the 51 * testing workspace was not enabled. 52 */ 53 public String getTestingWorkspace(); 54 55 public String getStableWorkspace(); 56 57 public File getWorkspaceDir(String workspace); 58 59 // 60 // ARCH DEPENDENT INFOS 61 // 62 public List<String> getArchs(); 63 64 public String getMockConfig(String arch); 65 66 public String getIdWithArch(String arch); 67 68 public File getResultDir(String arch); 69 70 // 71 // DEPLOYMENT 72 // 73 public String getGitBaseUrl(); 74 75 public Boolean isDeveloperInstance(); 76 77 }