Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
_______________________________________________ sakai-dev mailing list sakai-dev@... http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;">
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;">
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
... I want to add a new page using gradebook service
into profile 2, I name this page "MyHello.html" and implement it in
MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service
by using cover (but I fell in using methods of adding bean in compponents.xml >"<).
But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) - add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version>
</dependency> - add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery">
<property name="gradebookService" ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> - coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList();
try { while (!courseList.isEmpty()) { String tmpString = courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString);
assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"
class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;">
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql ) I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ...
I tried to inject it follow these steps :( I use sakai 2.5.5 )
- add dependency in maven file <dependency>
<groupId>org.sakaiproject</groupId>
<artifactId>sakai-gradebook-service-api</artifactId>
<version>${sakai.version}</version>
</dependency>
- add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery"
class="org.sakaiproject.profile2.tool.mysql.MyQuery">
<property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*">
</property>
</bean> - coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id
public LinkedList<String> getAssignmentNameList(
LinkedList<String> courseList) {
LinkedList<Assignment> assignmentList = new LinkedList();
try {
while (!courseList.isEmpty()) {
String tmpString = courseList.remove();
List<Assignment> tmpList = gradebookService
.getAssignments(tmpString);
assignmentList.addAll(tmpList);
}
} catch (Exception e) {
e.printStackTrace();
}
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi,
In the components.xml, I added a bean for my class as :
<!-- MyPortfolios -->
<bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"
class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;">
Are you making an addition to Profile2 that you might like to contribute back? If so, thats great! Could you possibly Jira it here: http://jira.sakaiproject.org/browse/PRFL
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all,
I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites...
But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't )
This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd
ucer
file org\sakaiproject\entity\api\EntityProducer.class not found
courseSiteList = siteService.getSites(SelectionType.ACCE
SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio
s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit
file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ?
Thank you,
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService" ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some
expansion for the Profile2 project. At this time, we are creating a new
page in the display screen ( same as My profile, Connections,
Search....) this page is using for display all grades of student have
had. Whenever he come to this page, he can see all his grades profile.
Cause we do not want to change the original project, we created some
new class in the package org.sakaiproject.profile2.tool.pages . at this
time, we can get a LinkedList<String> of all site id of all
course that one user joined and display it on my new page. Cause the
siteId is also the gradebookUid, we try to use the GradebookService to
get all the Assignment of each site, and at this state we encountered
the problem.
I created a new class called
MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but
it seem the GradeBookService do not work, i created a cousre site, i
got its siteId, i created some sample Assignment, then in my page, i
called the method getNumberOfAss and try to display in my page, but
nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import
org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent: Fri, November 13, 2009 4:08:48 AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString =
courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency>
<groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other
tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not
found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called
MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import
org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List;
and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent: Fri, November 13, 2009 4:08:48 AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ...
I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId>
<artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList();
try { while (!courseList.isEmpty()) { String tmpString =
courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) {
e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"
class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency>
<groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other
tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found
courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit
file org\sakaiproject\entity\api\Edit.class not
found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, --
Regards, Tran Trung Kien
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String
gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not
exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class
org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Hai Vo Thanh <v0thanhhai@...> Cc: sakai-dev <sakai-dev@...> Sent: Fri, November 13, 2009 5:41:14 AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
Hi,
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we
encountered the problem.
I created a new class called
MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import
org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List;
and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent: Fri, November 13, 2009 4:08:48 AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ...
I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId>
<artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList();
try { while (!courseList.isEmpty()) { String tmpString =
courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) {
e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"
class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency>
<groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other
tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found
courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit
file org\sakaiproject\entity\api\Edit.class not
found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, --
Regards, Tran Trung Kien
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev <sakai-dev@...> Sent:Fri, November 13, 2009 5:41:14 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
Hi,
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh<v0thanhhai@...>wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){ LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent:Fri, November 13, 2009 4:08:48 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService" ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
The Gradebook dev's are based in the US and their day is just beginning, so when people have had a chance to look over our discussion and reply, you should be set.
cheers,
Steve
On 13/11/2009, at 8:44 PM, Steve Swinsburg wrote:
Looks good, one more thing to do and that is to add the appropraite GradebookService dependency to the impl/pom.xml.
I'm still waiting to hear back on which GradebookService is meant to be used, as looking through the Javadocs there are a few.
cheers,
Steve
On 13/11/2009, at 5:01 PM, Hai Vo Thanh wrote:
i've just injected GradebookService in to SakaiProxy like this:
in SakaiProxy.java : add a prototype int getNumberOfAssignment(String gradebookUid);
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev <sakai-dev@...> Sent:Fri, November 13, 2009 5:41:14 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
Hi,
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh<v0thanhhai@...>wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){ LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent:Fri, November 13, 2009 4:08:48 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService" ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
I added the GradebookService dependency to impl/pom.xml. when i run the command "mvn clean install sakai:deploy", it was built successful, but then, tomcat startup failed.It stoped after this stage:
From: Steve Swinsburg <steve.swinsburg@...> To: Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev@... Sent: Fri, November 13, 2009 4:44:11 PM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
Looks good, one more thing to do and that is to add the appropraite GradebookService dependency to the impl/pom.xml.
I'm still waiting to hear back on which GradebookService is meant to be used, as looking through the Javadocs there are a few.
cheers,
Steve
On 13/11/2009, at 5:01 PM, Hai Vo Thanh wrote:
i've just injected GradebookService
in to SakaiProxy like this:
in SakaiProxy.java : add a prototype int getNumberOfAssignment(String gradebookUid);
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return
gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package
org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai
Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev <sakai-dev@...> Sent:Fri, November 13, 2009 5:41:14 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
Hi,
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh<v0thanhhai@...>wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we
are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import
org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent:Fri, November 13, 2009 4:08:48 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at
6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow
these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove();
List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added
: <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access
org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung
Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
Can you show the dependency block you added and the full error from the beginning?
Cheers
~ steve
(sent from my ipod)
On 14/11/2009, at 3:31 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
I added the GradebookService dependency to impl/pom.xml. when i run the command "mvn clean install sakai:deploy", it was built successful, but then, tomcat startup failed.It stoped after this stage:
From: Steve Swinsburg <steve.swinsburg@...> To: Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev@... Sent: Fri, November 13, 2009 4:44:11 PM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
Looks good, one more thing to do and that is to add the appropraite GradebookService dependency to the impl/pom.xml.
I'm still waiting to hear back on which GradebookService is meant to be used, as looking through the Javadocs there are a few.
cheers,
Steve
On 13/11/2009, at 5:01 PM, Hai Vo Thanh wrote:
i've just injected GradebookService
in to SakaiProxy like this:
in SakaiProxy.java : add a prototype int getNumberOfAssignment(String gradebookUid);
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return
gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package
org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai
Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev <sakai-dev@...> Sent:Fri, November 13, 2009 5:41:14 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
Hi,
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
cheers,
Steve
On Fri, Nov 13, 2009 at 8:48 AM, Hai Vo Thanh<v0thanhhai@...>wrote:
Hi Mr Steve Swinsburg, i am his co-worker, we
are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import
org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
Thanks and regards ======== Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Small Cat <shadowless4288@...> Cc:sakai-dev@... Sent:Fri, November 13, 2009 4:08:48 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at
6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow
these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove();
List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added
: <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access
org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung
Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
i added this block <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>2.5.5</version> </dependency> into the place <!-- GENERIC SAKAI DEPENDENCIES --> and this block <dependency>
<groupId>org.sakaiproject</groupId>
<artifactId>sakai-gradebook-service-api</artifactId>
<version>2.5.5</version> <scope>provided</scope>
</dependency> into the place <!-- Sakai 2.5.x specific dependencies --> Can you tell me how to get the log for tomcat? i'm using windows 7 + tomcat 5.2.26 zip version. i start tomcat by the command line "c:\tomcat\bin\startup.bat" . Thanks ---------------- Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Hai Vo Thanh <v0thanhhai@...> Cc: "sakai-dev@..." <sakai-dev@...> Sent: Sat, November 14, 2009 4:58:29
AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
Can you show the dependency block you added and the full error from the beginning?
Cheers
~ steve
(sent from my ipod)
On 14/11/2009, at 3:31 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
I added the GradebookService dependency to impl/pom.xml. when i run the command "mvn clean install sakai:deploy", it was built successful, but then, tomcat startup failed.It stoped after this stage:
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return
gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package
org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai
Vo
You'll need a setter for the gradebookService API that you are injecting. Might
be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
Hi Mr Steve Swinsburg, i am his co-worker, we
are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){
LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import
org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at
6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow
these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove();
List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible
inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService"
ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added
: <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation
details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access
org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung
Kien
Sure, the log should be at c:\tomcat\logs\catalina.out
I'm not sure of the Windows equivalent to 'tail -f catalina.out' which will show you the log messages are they are written to the file. You might need to open it up in a text editor and just send the relevant output from the latest startup failure.
cheers,
Steve
On 14/11/2009, at 10:28 AM, Hai Vo Thanh wrote:
i added this block <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>2.5.5</version> </dependency> into the place <!-- GENERIC SAKAI DEPENDENCIES --> and this block <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>2.5.5</version> <scope>provided</scope> </dependency> into the place <!-- Sakai 2.5.x specific dependencies --> Can you tell me how to get the log for tomcat? i'm using windows 7 + tomcat 5.2.26 zip version. i start tomcat by the command line "c:\tomcat\bin\startup.bat" . Thanks ---------------- Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:"sakai-dev@..." <sakai-dev@...> Sent:Sat, November 14, 2009 4:58:29 AM Subject:Re: [Building Sakai] A question about how to use some APIs in project Profile2
Can you show the dependency block you added and the full error from the beginning?
Cheers
~ steve
(sent from my ipod)
On 14/11/2009, at 3:31 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
I added the GradebookService dependency to impl/pom.xml. when i run the command "mvn clean install sakai:deploy", it was built successful, but then, tomcat startupfailed.Itstoped after this stage:
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int getNumberOfAssignment(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai Vo
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){ LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); } return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService gradebookService;
Did i miss any step? Could you give me some advices please?
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService" ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove(); List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService" ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy :
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien
Some parts of this message have been removed.
Learn more about Nabble's security policy.
Dear Mr Swinsburg, I still can't get the log file, so i send you my source code. I hope you will check it and see the problem yourself. I am using Sakai 2.5.5. if you are using a different version, you can tell me which version you are using, i will change my source and send it again. These are what i had change in your original profile2 project: In package org.sakaiproject.profile2.tool.pages: create a new page called "MyHello" --> new files(MyHello.java + MyHello.html). In tool/src/java: Create two new packages package org.sakaiproject.profile2.tool.myapi, at this time, this package is using for injecting some
gradebookService to use. package org.sakaiproject.profile2.tool.mysql, at this time, this package is using for doing some querry. i used this to get a LinkedList<String> of all course siteId, and a LinkedList<String> of all course site name. I create new packages and classes because i tried not to change much in the original source files. With these, the tool deployed successful, but the gradebookService did not work. Because you told me that it's easier to use the services by injecting them into SakaiProxy. I tried yesterday, and now tomcat can not start up. Hope you can help. Thank you. Feel free to give me any request. Thanks and regards ----------------------- Hai Vo
From: Steve Swinsburg <steve.swinsburg@...> To: Hai Vo Thanh <v0thanhhai@...> Cc:sakai-dev@... Sent: Sat, November 14, 2009 6:57:22 AM Subject: Re: [Building Sakai] A question about how to use some APIs in project Profile2
Sure, the log should be at c:\tomcat\logs\catalina.out
I'm not sure of the Windows equivalent to 'tail -f catalina.out' which will show you the log messages are they are written to the file. You might need to open it up in a text editor and just send the relevant output from the latest startup
failure.
cheers,
Steve
On 14/11/2009, at 10:28 AM, Hai Vo Thanh wrote:
i added this block <dependency> <groupId>org.sakaiproject</groupId>
<artifactId>sakai-gradebook-service-api</artifactId> <version>2.5.5</version> </dependency> into the place <!-- GENERIC SAKAI DEPENDENCIES --> and this block <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>2.5.5</version>
<scope>provided</scope> </dependency> into the place <!-- Sakai 2.5.x specific dependencies --> Can you tell me how to get the log for tomcat? i'm using windows 7 + tomcat 5.2.26 zip version. i start tomcat by the command line "c:\tomcat\bin\startup.bat" . Thanks ---------------- Hai Vo
From:Steve Swinsburg <steve.swinsburg@...> To:Hai Vo Thanh <v0thanhhai@...> Cc:"sakai-dev@..." <sakai-dev@...> Sent:Sat, November 14, 2009 4:58:29 AM Subject:Re: [Building Sakai] A
question about how to use some APIs in project Profile2
Can you show the dependency block you added and the full error from the beginning?
Cheers
~ steve
(sent from my ipod)
On 14/11/2009, at 3:31 AM, Hai Vo Thanh <v0thanhhai@...> wrote:
I added the GradebookService dependency to
impl/pom.xml. when i run the command "mvn clean install sakai:deploy", it was built successful, but then, tomcat startupfailed.Itstoped after this stage:
create a setter for the GradebookService : private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService){ this.gradebookService = gradebookService; }
implement the api: public int
getNumberOfAssignment(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
in components.xml: add the following line into the bean. <property name="gradebookService"><ref bean="org.sakaiproject.service.gradebook.shared.GradebookService"/></property>
and when i deploy. These errors appeared: [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[40,0] package
org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[41,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[42,49] package org.sakaiproject.service.gradebook.shared does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[44,0] package org.sakaiproject.assignment.api does not exist
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[913,16] cannot find symbol symbol : class GradebookService location: class org.sakaiproject.profile2.logic.SakaiProxyImpl
C:\sakai\myprofile2\impl\src\java\org\sakaiproject\profile2\logic\SakaiProxyImpl .java:[914,40] cannot find symbol symbol : class GradebookService location:
class org.sakaiproject.profile2.logic.SakaiProxyImpl
Did i miss any stage? Thanks --------------- Hai Vo
You'll need a setter for the gradebookService API that you are injecting. Might be easiest to inject into SakaiProxy, you can see the config in components.xml already. Then add a setter to it like the rest of the Sakai services are. Then add your method stub to SakaiProxy.java and implement it in SakaiProxyImpl.java
I posted a message about which service to use in a different thread, keep an eye on responses there as well.
Hi Mr Steve Swinsburg, i am his co-worker, we are doing some expansion for the Profile2 project. At this time, we are creating a new page in the display screen ( same as My profile, Connections, Search....) this page is using for display all grades of student have had. Whenever he come to this page, he can see all his grades profile. Cause we do not want to change the original project, we created some new class in the package
org.sakaiproject.profile2.tool.pages . at this time, we can get a LinkedList<String> of all site id of all course that one user joined and display it on my new page. Cause the siteId is also the gradebookUid, we try to use the GradebookService to get all the Assignment of each site, and at this state we encountered the problem.
I created a new class called MyGradebookApi to inject the GradebookService in to our application. For testing i've create two method
public int getNumberOfAss(String gradebookUid){ return gradebookService.getAssignments(gradebookUid).size(); }
and......
public LinkedList<String> getAssNameList(String gradebookUid){ LinkedList<String> assNameList =new LinkedList(); LinkedList<Assignment> assList = new LinkedList(); List<Assignment> tempList = gradebookService.getAssignments(gradebookUid); assList.addAll(tempList); while(!assList.isEmpty()){ Assignment tempAss = assList.remove(); String name = tempAss.getName(); assNameList.add(name); }
return assNameList; } but it seem the GradeBookService do not work, i created a cousre site, i got its siteId, i created some sample Assignment, then in my page, i called the method getNumberOfAss and try to display in my page, but nothing happened.
The tool deployed sucessful, cause i modified the pom.xml to add some dependencies. In my class i imported: import org.sakaiproject.service.gradebook.shared.*; import org.sakaiproject.service.gradebook.shared.Assignment; //import org.sakaiproject.tool.gradebook.Assignment; import org.sakaiproject.assignment.api.*; import java.util.LinkedList; import java.util.List; and create a private variable: private GradebookService
gradebookService;
Did i miss any step? Could you give me some advices please?
If using Spring, inject the actual API, not the static cover. However, don't inject into the tool.
Since you seem to be modifying Profile2, inject the GradebookService into SakaiProxy.java which is where I have kept all Sakai related API calls. That is already injected into all Tool pages so you can just call sakaiProxy.someMethod() to do things.
Could you let me know what additions you are making to Profile2? Are you wanting to contribute them back to the main release of Profile2?
cheers,
Steve
On 13/11/2009, at 6:26 AM, Small Cat
wrote:
... I want to add a new page using gradebook service into profile 2, I name this page "MyHello.html" and implement it in MyHello.java & MyQuery.java (this class in a new package org.sakaiproject.profile2.tool.mysql )
I've already use some other service like database api, site service by using cover (but I fell in using methods of adding bean in compponents.xml >"<). But the problem is that I can't found gradebook cover ... I tried to inject it follow these steps :( I use
sakai 2.5.5 ) -add dependency in maven file <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-gradebook-service-api</artifactId> <version>${sakai.version}</version> </dependency> -add bean in components <bean id="org.sakaiproject.profile2.tool.mysql.MyQuery" class="org.sakaiproject.profile2.tool.mysql.MyQuery"> <property name="gradebookService"
ref="org.sakaiproject.service.gradebook.shared.*"> </property> </bean> -coding...and this is a test function to get some assignment name ( I think gradebookId = coursesiteID , it is right ? ) // courseList is a list of course site id public LinkedList<String> getAssignmentNameList( LinkedList<String> courseList) { LinkedList<Assignment> assignmentList = new LinkedList(); try { while (!courseList.isEmpty()) { String tmpString = courseList.remove();
List<Assignment> tmpList = gradebookService .getAssignments(tmpString); assignmentList.addAll(tmpList); } } catch (Exception e) { e.printStackTrace(); }
You've got a ; in the bean definitions, not sure if that matters too much though. But as for the dependency in the pom, if matters if you are on 2.5 or 2.6+. If 2.6 then you don't need that dependency as its in the kernel but for 2.5 you will.
Also, are you modifying the current Profile2 tool? ie
I am currently polishing up release of Profile2 for possible
inclusion in 2.7 so it would be good to coordinate efforts here.
cheers,
Steve
On 06/11/2009, at 3:47 PM, Small Cat wrote:
Hi, In the components.xml, I added a bean for my class as : <!-- MyPortfolios --> <bean id = "org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;" class="org.sakaiproject.profile2.tool.myportfolios.MyPortfolios;"> <property name="siteService"
ref="org.sakaiproject.site.api.SiteService"/> </bean> In relevant pom.xml , I added : <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-site-api</artifactId> <scope>provided</scope> </dependency>
For your issue, it's most likely an API injection issue. You'll need to make sure you have the dependency in the relevant POM and
in the components.xml so Spring can inject it into the beans. However if you Jira this task we can go over the goal and implementation details.
cheers,
Steve
On 06/11/2009, at 1:51 AM, Small Cat wrote:
Dear all, I want to add some functions for Profile2, and one of them can show all scores of assigments in all course sites... But I can't use some APIs as getSites.... ( I can use it in other tools, but in Profile2 I don't know why it can't ) This is error when I deploy
:
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[22,52] cannot access org.sakaiproject.entity.api.EntityProd ucer file org\sakaiproject\entity\api\EntityProducer.class not found courseSiteList = siteService.getSites(SelectionType.ACCE SS,
C:\sakai\profile2-1.2.1\tool\src\java\org\sakaiproject\profile2\tool\myportfolio s\MyPortfolios.java:[35,60] cannot access org.sakaiproject.entity.api.Edit file org\sakaiproject\entity\api\Edit.class not found
courseList.add(courseSiteList.remove(0).getTitle());
How to use getSites in Profile2 , if can not, what methods I can use to replace ? Thank you, -- Regards, Tran Trung Kien