Clean the chicken and then soak in clean water for 30 minutes. Drain.
And then add all the marinating ingredients and marinate for 2-3 hours (the inner side should be well marinated too).
Transfer only the chicken to a large pot, add enough water to cover. Add all the spices, green onion, sugar and soy sauce. Bring to a boil and then simmer for 30 minutes. Turn off the fire and let the chicken soak in the liquid overnight. Re-heat the content to a boiling and pick the chicken out and air dry naturally.
Then pre-heat oven to 180 degree C, brush a small layer of honey (optional) and roast in middle rack for 15 minutes.