mirror of https://github.com/apache/cloudstack.git
Merge branch 'master' of git.cloud.com:/var/lib/git/cloudstack-oss
This commit is contained in:
commit
bf747a4a2e
|
|
@ -218,14 +218,19 @@ Requires: jpackage-utils
|
|||
Requires: %{name}-daemonize
|
||||
Requires: /sbin/service
|
||||
Requires: /sbin/chkconfig
|
||||
|
||||
%if 0%{?rhel} >= 6
|
||||
Requires: cloud-kvm
|
||||
%else
|
||||
Requires: kvm
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} >= 12
|
||||
Requires: qemu-cloud-system-x86
|
||||
Requires: qemu-cloud-img
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} >= 6
|
||||
Requires: cloud-qemu-kvm
|
||||
Requires: cloud-qemu-img
|
||||
%endif
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>deps</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
|
@ -201,10 +201,10 @@ public class ApiXmlDocWriter {
|
|||
regularUserSorted.close();
|
||||
|
||||
//gzip directory with xml doc
|
||||
zipDir(dirName + "xmldoc.zip", xmlDocDir);
|
||||
//zipDir(dirName + "xmldoc.zip", xmlDocDir);
|
||||
|
||||
//Delete directory
|
||||
deleteDir(new File(xmlDocDir));
|
||||
//deleteDir(new File(xmlDocDir));
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
|
|
|
|||
|
|
@ -32,25 +32,26 @@ import com.cloud.deploy.DeployDestination;
|
|||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.network.LoadBalancerVO;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.Capability;
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.RemoteAccessVpn;
|
||||
import com.cloud.network.VpnUser;
|
||||
import com.cloud.network.Network.Capability;
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.dao.LoadBalancerDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.lb.LoadBalancingRule;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.lb.LoadBalancingRulesManager;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
||||
import com.cloud.network.rules.PortForwardingRule;
|
||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
||||
import com.cloud.network.vpn.RemoteAccessVpnElement;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
import com.cloud.offerings.dao.NetworkOfferingDao;
|
||||
|
|
@ -63,8 +64,8 @@ import com.cloud.vm.NicProfile;
|
|||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
|
||||
|
|
@ -96,6 +97,7 @@ public class VirtualRouterElement extends AdapterBase implements NetworkElement,
|
|||
if (!canHandle(guestConfig.getGuestType(), dest.getDataCenter())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
_routerMgr.deployVirtualRouter(guestConfig, dest, context.getAccount());
|
||||
|
||||
return true;
|
||||
|
|
@ -111,6 +113,30 @@ public class VirtualRouterElement extends AdapterBase implements NetworkElement,
|
|||
@SuppressWarnings("unchecked")
|
||||
VirtualMachineProfile<UserVm> uservm = (VirtualMachineProfile<UserVm>)vm;
|
||||
|
||||
DomainRouterVO router = _routerDao.findById(uservm.getVirtualMachine().getDomainRouterId());
|
||||
if(router != null) {
|
||||
State state = router.getState();
|
||||
if ( state == State.Starting ) {
|
||||
// wait 300 seconds
|
||||
for ( int i = 0; i < 300; ) {
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
i += 2;
|
||||
|
||||
state = router.getState();
|
||||
if ( state != State.Starting ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: need to find a better exception to throw!
|
||||
if(state != State.Running)
|
||||
throw new ResourceUnavailableException("Virtual router is not available", Host.class, router.getHostId());
|
||||
}
|
||||
|
||||
return _routerMgr.addVirtualMachineIntoNetwork(config, nic, uservm, dest, context, false) != null;
|
||||
} else {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -72,10 +72,9 @@ import com.cloud.configuration.ConfigurationManager;
|
|||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.configuration.dao.ResourceLimitDao;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.DataCenter.NetworkType;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.HostPodVO;
|
||||
import com.cloud.dc.Vlan;
|
||||
import com.cloud.dc.DataCenter.NetworkType;
|
||||
import com.cloud.dc.dao.AccountVlanMapDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.dc.dao.HostPodDao;
|
||||
|
|
@ -105,18 +104,18 @@ import com.cloud.network.IPAddressVO;
|
|||
import com.cloud.network.IpAddress;
|
||||
import com.cloud.network.LoadBalancerVO;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.NetworkVO;
|
||||
import com.cloud.network.Networks.BroadcastDomainType;
|
||||
import com.cloud.network.Networks.IsolationType;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.RemoteAccessVpn;
|
||||
import com.cloud.network.SshKeysDistriMonitor;
|
||||
import com.cloud.network.VirtualNetworkApplianceService;
|
||||
import com.cloud.network.VpnUser;
|
||||
import com.cloud.network.VpnUserVO;
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.Networks.BroadcastDomainType;
|
||||
import com.cloud.network.Networks.IsolationType;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.addr.PublicIp;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
|
|
@ -127,8 +126,8 @@ import com.cloud.network.dao.NetworkRuleConfigDao;
|
|||
import com.cloud.network.dao.RemoteAccessVpnDao;
|
||||
import com.cloud.network.dao.VpnUserDao;
|
||||
import com.cloud.network.lb.LoadBalancingRule;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.lb.LoadBalancingRulesManager;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.ovs.GreTunnelException;
|
||||
import com.cloud.network.ovs.OvsNetworkManager;
|
||||
import com.cloud.network.router.VirtualRouter.Role;
|
||||
|
|
@ -177,11 +176,11 @@ import com.cloud.vm.ReservationContext;
|
|||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineGuru;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineName;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
|
|
@ -1034,24 +1033,9 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
|||
} else {
|
||||
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_CREATE, "router creation failed", startEventId);
|
||||
}
|
||||
|
||||
}
|
||||
State state = router.getState();
|
||||
|
||||
if ( state == State.Starting ) {
|
||||
// wait 300 seconds
|
||||
for ( int i = 0; i < 300; ) {
|
||||
try {
|
||||
Thread.sleep(2);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
i += 2;
|
||||
state = router.getState();
|
||||
if ( state != State.Starting ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
State state = router.getState();
|
||||
if (state != State.Starting && state != State.Running) {
|
||||
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, owner.getId(), EventTypes.EVENT_ROUTER_START, "Starting router : " +router.getName());
|
||||
router = this.start(router, _accountService.getSystemUser(), _accountService.getSystemAccount());
|
||||
|
|
@ -1061,11 +1045,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
|||
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_START, "failed to start router", startEventId);
|
||||
}
|
||||
}
|
||||
state = router.getState();
|
||||
if ( state == State.Running ) {
|
||||
return router;
|
||||
}
|
||||
throw new CloudRuntimeException(router.getName() + " is not running , it is in " + state);
|
||||
|
||||
return router;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
|||
|
||||
protected final SearchBuilder<UserVmVO> DestroySearch;
|
||||
protected SearchBuilder<UserVmVO> AccountDataCenterVirtualSearch;
|
||||
protected SearchBuilder<UserVmVO> UserVmSearch;
|
||||
protected final Attribute _updateTimeAttr;
|
||||
|
||||
protected final UserVmDetailsDaoImpl _detailsDao = ComponentLocator.inject(UserVmDetailsDaoImpl.class);
|
||||
|
|
@ -323,18 +324,18 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
|||
|
||||
@Override
|
||||
public List<UserVmVO> listByNetworkId(long networkId) {
|
||||
if (AccountDataCenterVirtualSearch == null) {
|
||||
if (UserVmSearch == null) {
|
||||
NicDao _nicDao = ComponentLocator.getLocator("management-server").getDao(NicDao.class);
|
||||
SearchBuilder<NicVO> nicSearch = _nicDao.createSearchBuilder();
|
||||
nicSearch.and("networkId", nicSearch.entity().getNetworkId(), SearchCriteria.Op.EQ);
|
||||
nicSearch.and("ip4Address", nicSearch.entity().getIp4Address(), SearchCriteria.Op.NNULL);
|
||||
|
||||
AccountDataCenterVirtualSearch = createSearchBuilder();
|
||||
AccountDataCenterVirtualSearch.join("nicSearch", nicSearch, AccountDataCenterVirtualSearch.entity().getId(), nicSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER);
|
||||
AccountDataCenterVirtualSearch.done();
|
||||
UserVmSearch = createSearchBuilder();
|
||||
UserVmSearch.join("nicSearch", nicSearch, UserVmSearch.entity().getId(), nicSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER);
|
||||
UserVmSearch.done();
|
||||
}
|
||||
|
||||
SearchCriteria<UserVmVO> sc = AccountDataCenterVirtualSearch.create();
|
||||
SearchCriteria<UserVmVO> sc = UserVmSearch.create();
|
||||
sc.setJoinParameters("nicSearch", "networkId", networkId);
|
||||
|
||||
return listBy(sc);
|
||||
|
|
|
|||
|
|
@ -174,12 +174,9 @@ function bindStartVMButton() {
|
|||
inProcessText: "Starting Instance....",
|
||||
asyncJobResponse: "startvirtualmachineresponse",
|
||||
afterActionSeccessFn: function(json, $midmenuItem1, id) {
|
||||
var jsonObj = json.queryasyncjobresultresponse.jobresult.virtualmachine;
|
||||
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
if( ($("#right_panel_content #tab_content_details").length > 0)
|
||||
&& ($("#right_panel_content #tab_content_details").data("jsonObj") != null )
|
||||
&& (jsonObj.id == $("#right_panel_content #tab_content_details").data("jsonObj").id))
|
||||
var jsonObj = json.queryasyncjobresultresponse.jobresult.virtualmachine;
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
if(jsonObj.id.toString() == $("#right_panel_content #tab_content_details").find("#id").text())
|
||||
vmToRightPanel($midmenuItem1);
|
||||
}
|
||||
}
|
||||
|
|
@ -225,10 +222,8 @@ function bindStopVMButton() {
|
|||
afterActionSeccessFn: function(json, $midmenuItem1, id) {
|
||||
var jsonObj = json.queryasyncjobresultresponse.jobresult.virtualmachine;
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
if( ($("#right_panel_content #tab_content_details").length > 0)
|
||||
&& ($("#right_panel_content #tab_content_details").data("jsonObj") != null )
|
||||
&& (jsonObj.id == $("#right_panel_content #tab_content_details").data("jsonObj").id))
|
||||
vmToRightPanel($midmenuItem1);
|
||||
if(jsonObj.id.toString() == $("#right_panel_content #tab_content_details").find("#id").text())
|
||||
vmToRightPanel($midmenuItem1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -273,10 +268,8 @@ function bindRebootVMButton() {
|
|||
afterActionSeccessFn: function(json, $midmenuItem1, id) {
|
||||
var jsonObj = json.queryasyncjobresultresponse.jobresult.virtualmachine;
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
if( ($("#right_panel_content #tab_content_details").length > 0)
|
||||
&& ($("#right_panel_content #tab_content_details").data("jsonObj") != null )
|
||||
&& (jsonObj.id == $("#right_panel_content #tab_content_details").data("jsonObj").id))
|
||||
vmToRightPanel($midmenuItem1);
|
||||
if(jsonObj.id.toString() == $("#right_panel_content #tab_content_details").find("#id").text())
|
||||
vmToRightPanel($midmenuItem1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -321,10 +314,8 @@ function bindDestroyVMButton() {
|
|||
afterActionSeccessFn: function(json, $midmenuItem1, id) {
|
||||
var jsonObj = json.queryasyncjobresultresponse.jobresult.virtualmachine;
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
if( ($("#right_panel_content #tab_content_details").length > 0)
|
||||
&& ($("#right_panel_content #tab_content_details").data("jsonObj") != null )
|
||||
&& (jsonObj.id == $("#right_panel_content #tab_content_details").data("jsonObj").id))
|
||||
vmToRightPanel($midmenuItem1);
|
||||
if(jsonObj.id.toString() == $("#right_panel_content #tab_content_details").find("#id").text())
|
||||
vmToRightPanel($midmenuItem1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -399,14 +399,14 @@ function doActionToMidMenu(id, apiInfo, apiCommand) {
|
|||
$("body").stopTime(timerKey);
|
||||
$midmenuItem1.find("#content").removeClass("inaction");
|
||||
$midmenuItem1.find("#spinning_wheel").hide();
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText);
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText, $midmenuItem1);
|
||||
if (result.jobstatus == 1) { // Succeeded
|
||||
$midmenuItem1.find("#info_icon").removeClass("error").show();
|
||||
$midmenuItem1.data("afterActionInfo", (label + " action succeeded."));
|
||||
afterActionSeccessFn(json, $midmenuItem1, id);
|
||||
} else if (result.jobstatus == 2) { // Failed
|
||||
$midmenuItem1.find("#info_icon").addClass("error").show();
|
||||
$midmenuItem1.data("afterActionInfo", (label + " action failed. Reason: " + fromdb(result.jobresult.errortext)));
|
||||
} else if (result.jobstatus == 2) { // Failed
|
||||
var errorMsg = label + " action failed. Reason: " + fromdb(result.jobresult.errortext);
|
||||
handleErrorInMidMenu2(errorMsg, $midmenuItem1, id, inProcessText);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -438,7 +438,7 @@ function doActionToMidMenu(id, apiInfo, apiCommand) {
|
|||
$midmenuItem1.find("#spinning_wheel").hide();
|
||||
$midmenuItem1.find("#info_icon").removeClass("error").show();
|
||||
$midmenuItem1.data("afterActionInfo", (label + " action succeeded."));
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText);
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText, $midmenuItem1);
|
||||
afterActionSeccessFn(json, $midmenuItem1, id);
|
||||
},
|
||||
error: function(XMLHttpResponse) {
|
||||
|
|
@ -449,29 +449,34 @@ function doActionToMidMenu(id, apiInfo, apiCommand) {
|
|||
//Sync job (end) *****
|
||||
}
|
||||
|
||||
function handleErrorInMidMenu(XMLHttpResponse, $midmenuItem1, id, inProcessText) {
|
||||
$midmenuItem1.find("#content").removeClass("inaction");
|
||||
$midmenuItem1.find("#spinning_wheel").hide();
|
||||
$midmenuItem1.find("#info_icon").addClass("error").show();
|
||||
$midmenuItem1.find("#first_row").text("Action failed");
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText);
|
||||
|
||||
function handleErrorInMidMenu(XMLHttpResponse, $midmenuItem1, id, inProcessText) {
|
||||
var errorMsg = "";
|
||||
if(XMLHttpResponse.responseText != null & XMLHttpResponse.responseText.length > 0) {
|
||||
errorMsg = parseXMLHttpResponse(XMLHttpResponse);
|
||||
}
|
||||
handleErrorInMidMenu2(errorMsg, $midmenuItem1, id, inProcessText);
|
||||
}
|
||||
|
||||
function handleErrorInMidMenu2(errorMsg, $midmenuItem1, id, inProcessText) {
|
||||
$midmenuItem1.find("#content").removeClass("inaction");
|
||||
$midmenuItem1.find("#spinning_wheel").hide();
|
||||
$midmenuItem1.find("#info_icon").addClass("error").show();
|
||||
//$midmenuItem1.find("#first_row").text("Action failed");
|
||||
$midmenuItem1.data("afterActionInfo", errorMsg);
|
||||
hideDetailsTabActionSpinningWheel(id, inProcessText, $midmenuItem1);
|
||||
|
||||
if(errorMsg.length > 0)
|
||||
$midmenuItem1.find("#second_row").text(fromdb(errorMsg));
|
||||
else
|
||||
$midmenuItem1.find("#second_row").html(" ");
|
||||
}
|
||||
|
||||
function hideDetailsTabActionSpinningWheel(id, inProcessText) {
|
||||
function hideDetailsTabActionSpinningWheel(id, inProcessText, $midmenuItem1) {
|
||||
var $detailsTab = $("#right_panel_content #tab_content_details");
|
||||
var jsonObj = $detailsTab.data("jsonObj");
|
||||
var $spinningWheel = $detailsTab.find("#spinning_wheel");
|
||||
if(jsonObj != null && ("id" in jsonObj) && jsonObj.id == id && ($spinningWheel.find("#description").text() == inProcessText)) {
|
||||
$spinningWheel.hide();
|
||||
if((id == $detailsTab.find("#id").text()) && (inProcessText == $spinningWheel.find("#description").text())) {
|
||||
copyActionInfoFromMidMenuToRightPanel($midmenuItem1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -506,14 +511,17 @@ function copyActionInfoFromMidMenuToRightPanel($midmenuItem1) {
|
|||
}
|
||||
|
||||
var $midMenuSpinningWheel = $midmenuItem1.find("#spinning_wheel");
|
||||
if($midMenuSpinningWheel.css("display") != "none") {
|
||||
var $detailsTabSpinningWheel = $("#right_panel_content #tab_content_details").find("#spinning_wheel");
|
||||
var $detailsTabSpinningWheel = $("#right_panel_content #tab_content_details").find("#spinning_wheel");
|
||||
if($midMenuSpinningWheel.css("display") != "none") {
|
||||
if($detailsTabSpinningWheel.css("display") == "none") {
|
||||
var inProcessText = $midMenuSpinningWheel.data("inProcessText");
|
||||
$detailsTabSpinningWheel.find("#description").text(inProcessText);
|
||||
$detailsTabSpinningWheel.show();
|
||||
}
|
||||
}
|
||||
else {
|
||||
$detailsTabSpinningWheel.hide();
|
||||
}
|
||||
}
|
||||
|
||||
//***** actions for middle menu (end) **************************************************************************
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/log4j-1.2.15.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/cglib-nodep-2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/ehcache-1.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/commons-dbcp-1.2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/commons-pool-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/junit-4.8.1.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/log4j-1.2.15.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/cglib-nodep-2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/ehcache-1.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/commons-dbcp-1.2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/commons-pool-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/thirdparty/junit-4.8.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/cloud-bcprov-jdk16-1.45.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/cloud-jsch-0.1.42.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/cloud-commons-codec-1.4.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
|||
Loading…
Reference in New Issue