About 15 years now.
Every season teams are forced to shed salary, trading away good players, in order to fit under the salary cap. Chicago is the most noteworthy example, where they had to move several players after winning a Cup because they could no longer afford them.
The Toronto Maple Leafs are struggling right now to sign their young players and fit them under the cap. They traded a player just this summer, and had to throw in a first round pick (as a deal sweetener), and basically got nothing in return aside from Carolina taking on the $6.25M salary. So much of the sport is about accounting now. I can't remember the last time there was a trade that was really just talent for talent. That rarely happens anymore...and it's unfortunate.