Faits: Faits: A. Le 28 octobre 2002, le Ministère public de la Confédération a ouvert une enquête préliminaire contre le ressortissant kosovar A._ pour infraction grave à la loi fédérale sur les stupéfiants et participation à une organisation criminelle. Le 10 décembre 2002, la prévention a été étendue au blanchiment d'argent. A._ est soupçonné d'avoir mis sur pied, avec des membres de sa famille et des tiers, un trafic international estimé à plusieurs centaines de kilos d'héroïne et de cocaïne, avec des ramifications en Suisse. Il a été arrêté en Macédoine le 2 août 2003 et extradé à la Suisse le 29 octobre 2003. Il se trouve depuis lors en détention préventive. Le 26 mars 2004, le Ministère public de la Confédération a rejeté une première demande de libération provisoire formée par A._. La Cour des plaintes du Tribunal pénal fédéral (ci-après: la Cour des plaintes) a confirmé cette décision au terme d'un arrêt rendu le 17 mai 2004. Le 9 juillet 2004, le Tribunal fédéral a rejeté, dans la mesure où il était recevable, le recours interjeté contre cet arrêt par A._ (cause 1S.1/2004). Le 15 septembre 2005, le Juge d'instruction fédéral a ordonné l'ouverture d'une instruction préparatoire à l'encontre de A._, de deux de ses frères et de leur père pour présomption de participation à une organisation criminelle, de blanchiment d'argent et d'infraction grave à la loi fédérale sur les stupéfiants. Par décision du 6 octobre 2005, il a rejeté la requête de mise en liberté de A._ et maintenu la détention en raison des risques de fuite et de collusion. La Cour des plaintes a confirmé cette décision sur plainte du prévenu au terme d'un arrêt rendu le 10 novembre 2005. Le 24 janvier 2006, le Tribunal fédéral a rejeté le recours formé par A._ contre cet arrêt (cause 1S.51/2005). Le 8 août 2006, A._ a requis sa mise en liberté provisoire en invoquant une violation des principes de la célérité et de la proportionnalité. Le Juge d'instruction fédéral a refusé de faire droit à cette requête au terme d'une décision prise le 15 août 2006 que la Cour des plaintes a confirmée sur plainte du prévenu par arrêt du 7 septembre 2006. Le Tribunal fédéral a rejeté le recours interjeté contre cet arrêt le 6 novembre 2006 (cause 1S.25/2006). Le 16 mai 2007, A._ a sollicité à nouveau sa mise en liberté en faisant valoir une nouvelle fois une violation des principes de la célérité et de la proportionnalité. Le Juge d'instruction fédéral a refusé de faire droit à cette requête au terme d'une décision prise le 30 mai 2007 que la Cour des plaintes a confirmée sur plainte du prévenu par arrêt du 26 juin 2007. Elle a estimé que la procédure n'avait pas connu de retards inadmissibles depuis le dernier arrêt rendu par le Tribunal fédéral, qui imposeraient la libération immédiate de A._; elle a cependant imparti un délai au 15 août 2007 au Juge d'instruction fédéral pour mettre un terme à l'instruction préparatoire et déposer son rapport de clôture de manière à ce que le prévenu puisse être jugé cette année encore. Le 16 mai 2007, A._ a sollicité à nouveau sa mise en liberté en faisant valoir une nouvelle fois une violation des principes de la célérité et de la proportionnalité. Le Juge d'instruction fédéral a refusé de faire droit à cette requête au terme d'une décision prise le 30 mai 2007 que la Cour des plaintes a confirmée sur plainte du prévenu par arrêt du 26 juin 2007. Elle a estimé que la procédure n'avait pas connu de retards inadmissibles depuis le dernier arrêt rendu par le Tribunal fédéral, qui imposeraient la libération immédiate de A._; elle a cependant imparti un délai au 15 août 2007 au Juge d'instruction fédéral pour mettre un terme à l'instruction préparatoire et déposer son rapport de clôture de manière à ce que le prévenu puisse être jugé cette année encore. B. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral de réformer cet arrêt en ce sens que sa mise en liberté immédiate est ordonnée. Il conclut subsidiairement à l'annulation de l'arrêt attaqué et au renvoi de la cause à l'autorité inférieure pour nouvelle décision dans le sens des considérants. Il requiert l'assistance judiciaire. La Cour des plaintes se réfère à son arrêt. Le Juge d'instruction fédéral et le Ministère public de la Confédération concluent au rejet du recours. A._ a répliqué.