View Javadoc
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  }