This might seem like a dumb question to ask but I need to know what criteria is used by companies to determine what a junior developer is. Is it based on your previous experience as a developer or based simply on the tasks they require you to perform? Can you become a senior developer, for example, by doing the same thing for five years?
For me, the line is more what are you capable of doing when given a challenge. Can you become a Senior if you do the same thing for 5 years? Maybe... But if you have to learn a new thing tomorrow (say for instance, going from Entity Framework to NHibernate), is it going to be a learning curve of hours, days, or weeks?
If its hours-days, you're a senior. If its days-weeks, you're a junior.
One of the ways I've seen this tested is by using a coding test during the interview process. At what point do you start saying "I don't know"? Then, how long does it take you to find the answer? If you're given homework, do you get it done in a couple hours, or do you drop off the face of the earth?
All of that helps to place a person's abilities on the scale of junior to senior.