// Path: springboot-sample/sample-provider/src/main/java/com/bytesvc/provider/interfaces/IAccountService.java
// public interface IAccountService {
// 
// 	public void increaseAmount(String accountId, double amount);
// 
// 	public void decreaseAmount(String accountId, double amount);
// 
// }
// 
// Path: springboot-sample/sample-provider/src/main/java/com/bytesvc/provider/model/Account.java
// @Entity
// @Table(name = "tb_account_one")
// public class Account implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	@Column(name = "acct_id", nullable = false)
// 	private String identifier;
// 	@Column(name = "amount", nullable = false)
// 	private double amount;
// 	@Column(name = "frozen", nullable = false)
// 	private double frozen;
// 
// 	public String getIdentifier() {
// 		return identifier;
// 	}
// 
// 	public void setIdentifier(String identifier) {
// 		this.identifier = identifier;
// 	}
// 
// 	public double getFrozen() {
// 		return frozen;
// 	}
// 
// 	public void setFrozen(double frozen) {
// 		this.frozen = frozen;
// 	}
// 
// 	public double getAmount() {
// 		return amount;
// 	}
// 
// 	public void setAmount(double amount) {
// 		this.amount = amount;
// 	}
// 
// }


import org.bytesoft.compensable.Compensable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.bytesvc.provider.dao.IAccountDao;
import com.bytesvc.provider.interfaces.IAccountService;
import com.bytesvc.provider.model.Account;
package com.bytesvc.provider.controller;



@Compensable(interfaceClass = IAccountService.class, cancellableKey = "accountServiceCancel")
@RestController
public class ProviderController {
	@Autowired
// Path: springboot-sample/sample-provider/src/main/java/com/bytesvc/provider/interfaces/IAccountService.java
// public interface IAccountService {
// 
// 	public void increaseAmount(String accountId, double amount);
// 
// 	public void decreaseAmount(String accountId, double amount);
// 
// }
// 
// Path: springboot-sample/sample-provider/src/main/java/com/bytesvc/provider/model/Account.java
// @Entity
// @Table(name = "tb_account_one")
// public class Account implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	@Column(name = "acct_id", nullable = false)
// 	private String identifier;
// 	@Column(name = "amount", nullable = false)
// 	private double amount;
// 	@Column(name = "frozen", nullable = false)
// 	private double frozen;
// 
// 	public String getIdentifier() {
// 		return identifier;
// 	}
// 
// 	public void setIdentifier(String identifier) {
// 		this.identifier = identifier;
// 	}
// 
// 	public double getFrozen() {
// 		return frozen;
// 	}
// 
// 	public void setFrozen(double frozen) {
// 		this.frozen = frozen;
// 	}
// 
// 	public double getAmount() {
// 		return amount;
// 	}
// 
// 	public void setAmount(double amount) {
// 		this.amount = amount;
// 	}
// 
// }


// Path: springboot-sample/sample-provider/src/main/java/com/bytesvc/provider/controller/ProviderController.java
import org.bytesoft.compensable.Compensable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.bytesvc.provider.dao.IAccountDao;
import com.bytesvc.provider.interfaces.IAccountService;
import com.bytesvc.provider.model.Account;

package com.bytesvc.provider.controller;



@Compensable(interfaceClass = IAccountService.class, cancellableKey = "accountServiceCancel")
@RestController
public class ProviderController {
	@Autowired
	private IAccountDao accountDao;